Предполагая URL-адрес www.domain.org?x=1&y=2&z=3
, что было бы разумным методом для выделения элементов запроса URL-адреса в php без использования GET или REQUEST?
$url = parse_url($url); echo $url[fragment];
Я не думаю, что можно вернуть части запроса отдельно? Из того, что я могу сказать, запрос просто скажет x=1&y=2&z=3
но, пожалуйста, дайте мне знать, если я ошибаюсь. В противном случае, что бы вы сделали, чтобы проанализировать $url[query]
?
Изменить: Фрагмент должен быть запрошен. Извините за путаницу, я учусь!
Вы можете сделать второй шаг и проанализировать строку запроса, используя parse_str .
$url = 'www.domain.org?x=1&y=2&z=3'; $url_parts = parse_url($url); parse_str($url_parts['query'], $query_parts); var_dump($query_parts);
Я предположил, что вы использовали строку запроса вместо фрагмента, потому что для фрагментов нет стандартного шаблона.
Функция parse_url
возвращает несколько компонентов, включая query
. Для его анализа вы должны запустить parse_str
.
$parsedUrl = parse_url($url); $parsedQueryString = parse_str($result['query']);
Если вы собираетесь просто проанализировать URL-адрес вашего HTTP-запроса:
используйте $_REQUEST['x']
, $_REQUEST['y']
, $_REQUEST['z']
для доступа к параметрам x, y, z;
используйте $_SERVER['QUERY_STRING']
чтобы получить целую цепочку URL-адресов.
Я получил ошибки с некоторыми из ответов выше, но они привели меня к правильному ответу. Спасибо, парни.
$url = 'www.domain.org?x=1&y=2&z=3'; $query = $url[query]; parse_str($query); echo "$x &y $z";
И этот результат: 1 2 3
, что я и пытался выяснить.
Как один вкладыш без проверки ошибок
parse_str(parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY), $query);
$query
будет содержать параметры строки запроса
в отличие от PHP $_GET
, это будет работать с параметрами запроса любой длины
Я настоятельно рекомендую использовать эту url-обертку https://github.com/weew/url (которую я написал)
Он способен анализировать URL-адреса сложности, такие как protocol://username:password@subdomain.domain.tld:80/some/path?query=value#fragment
и имеет много других полезных свойств .