Я создаю прокси-сервер PHP, где он принимает URL-адрес и подтверждает, что он находится в моем списке серверов.
При импорте url из приложения я запустил его в проблему, где мне понадобилось 2 тега парсера. Мне нужно, чтобы он разделился вдоль "\"? тег, а также строку, в моем случае, «экспорт»?
Я использую preg для первого тега. Принимает ли это строки, подобные моему тегу экспорта, или есть какой-то другой способ для этого?
пожалуйста, я знаю, как это выполняется или у вас есть больше вопросов.
Как уже указывал ircmaxell в комментариях , PHP уже имеет функцию для разбора URL-адреса: parse_url
.
И когда у вас есть путь к URL (я предполагаю ваш export?
Суффикс пути плюс индикатор запроса), вы можете использовать explode
для разделения пути на его сегменты пути:
$path = parse_url($url, PHP_URL_PATH); $segments = explode('/', $path);
Затем вы можете получить последний сегмент пути одним из следующих:
end($segments) $segments[count($segments)-1]
Чтобы справиться с завершающими косыми чертами, вы можете использовать rtrim($path, '/')
чтобы удалить их.
Все вместе:
$url = 'http://www.example.com/subfolders/export?'; $path = parse_url($url, PHP_URL_PATH); $segments = explode('/', rtrim($path, '/')); echo end($segments);
Регулярное выражение должно делать трюк, что-то вроде ниже будет работать. Это то, что Django использует в своем диспетчере URL-адресов
r'^export/$'
Регулярные выражения – это совпадения строк, которые также могут включать совпадения переменных. Потому что ?
включен в ?
, вы должны сделать свой раскол дважды. Однажды на export?
во-первых, и второй проход по каждому из них ?
как ваш разделитель. Как написано ниже, вы просто раскалываетесь на любую из двух строк.
$first = preg_split('export\?', ...); for ($first) { array_push ($second,preg_split('\?', ...)'); }
Это не совсем корректный PHP, но я надеюсь, что он достаточно близок к псевдокоду.
Эй, ребята, я закончил использовать взрыв, который искал строку (export?), А затем я использовал команду preg split для поиска \. это обеспечило мне протекцию, которую я искал. Спасибо, парни.