У меня есть код ниже: -PHP, чтобы получить элемент из ссылки
$link = 'http://www.domain.com/go.php?id=545&url=http://www.example.com/about
Я хочу URL элемент, - http://www.example.com/about
У меня есть код ниже: -PHP, чтобы получить элемент из ссылки
$link = 'http://www.domain.com/go.php?id=545&url=http://www.example.com/about
Я хочу URL элемент, - http://www.example.com/about
$link = 'http://www.domain.com/go.php?id=545&url=http://www.example.com/about';
$url = explode("&url=", $link)[1];
echo $url; //http://www.example.com/about
это не будет работать должным образом, когда 'url' не является последним параметром строки запроса – billyonecan
Попробуйте это:
$link = 'http://www.domain.com/go.php?id=545&url=http://www.example.com/about';
$uri=explode("url=",$link);
$uri=$uri[count($uri)-1];
echo $uri;
You может использовать встроенные PHP parse_url
и parse_str
functio нс.
$link = 'http://www.domain.com/go.php?id=545&url=http://www.example.com/about';
parse_str(parse_url($link,PHP_URL_QUERY),$url);
echo $url['url'];
, это вернет всю строку запроса, поэтому требуется дополнительный синтаксический анализ – billyonecan
@billyonecan. Я должен был проверить его. –
function getSomething($url) {
if (!(strpos($url, 'url=') !== false)) return false;
$parse = explode('url=', $url);
$code = $parse[1];
return $code;
}
echo getSomething("http://www.domain.com/go.php?id=545&url=http://www.example.com/about");
это будет работать, даже если URL помещается где-то еще в качестве параметра
$link = 'http://www.domain.com/go.php?id=545&url=http://www.example.com/about';
$url = "";
$params = explode("&", $link);
for($params as $param){
if(substr($param, 0, 4) === 'url='){
$url = explode("=", $param)[1];
break;
}
}
echo $url; //http://www.example.com/about
Могу ли я предложить вам UrlEncode параметры строки запроса? Таким образом, вы можете использовать ['parse_str'] (http://php.net/manual/en/function.parse-str.php), однако это может не сработать, когда у вас нет действительного URL-адреса. – apokryfos