Использование PHP для разделения URL-адреса

Я создаю прокси-сервер 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 для поиска \. это обеспечило мне протекцию, которую я искал. Спасибо, парни.