У меня есть этот URL:PHP: Получить параметр из закодированного URL
/?goto=%2Fr%2Faccount%2Findex%2Ecfm%3Fsite_id%3D87211
Как GET
site_id из этого URL?
У меня есть этот URL:PHP: Получить параметр из закодированного URL
/?goto=%2Fr%2Faccount%2Findex%2Ecfm%3Fsite_id%3D87211
Как GET
site_id из этого URL?
Если вы знаете, что ваш URL, всегда будет в этой структуре, вы можете разобрать его с RegEx так:
$url = '/?goto=%2Fr%2Faccount%2Findex%2Ecfm%3Fsite_id%3D87211';
preg_match('/site_id\%3D(\d+)/', $url, $matches);
$siteId = $matches[1];
Он ищет что-нибудь, что соответствует site_id%3D
и числовое значение, которое следует, что ,
$ url = $ _SERVER ["HTTP_HOST"]. $ _SERVER [ "REQUEST_URI"]; работает, спасибо! – Shin
Это довольно ужасный код. '\%' избыточно, потому что '%' не является метасимволом регулярного выражения. Он возвращает неверную строку, если другой параметр запроса заканчивается символом 'xyz_size_id' (или если путь содержит' site_id = '). Он также предполагает, что site_id состоит только из цифр и что ни одна из цифр не кодируется по URL-адресу. – melpomene
с помощью $ _GET [ 'Гото'] вы получите следующие URL:
/r/account/index.cfm?site_id=87211
Попробуйте эту
$uri = $_GET['goto'];
$site = explode("=", $uri);
echo $site[1];
Установите этот флажок путь,
<?php
$abc ="/?goto=%2Fr%2Faccount%2Findex%2Ecfm%3Fsite_id%3D87211";
$test = parse_url($abc);
$test = urldecode($test["query"]);
$url = parse_url($test);
parse_str($url['query'], $param);
print_r($param["site_id"]);
?>
Проверьте выход здесь : https://eval.in/621360
Что вы подразумеваете под "have этот url "? У вас есть этот текст в строковой переменной или это URL-адрес, используемый для доступа к вашему скрипту PHP? – melpomene