PHP обрезает ссылку после знака &?

Всем привет!

PHP должен брать ссылку из браузерной строки:
<?php
$url = isset($_REQUEST['url']) ? $_REQUEST['url'] : '';
if(preg_match('#(http?|ftp)://\S+[^\s.,>)\];\'\"!?]#i',$url)){
    sleep(0);
}
?>

Вот пример ссылки в браузерной строке:
http://test.ru/dw/?url=https://backit.me/ru/cashback?inviter=002mgt7&ref_type=epnbz

Но почему то ссылка берётся только до знака &, в результате получаю:
https://backit.me/ru/cashback?inviter=002mgt7

Подскажите как исправить ?

PS. PHP 7.3
  • Вопрос задан
  • 157 просмотров
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Вообще изначальная проблема в том какие у вас исходные ссылки и что & не закодирован
Но если решать именно поставленную задачу с исходными данными вопроса, то ответ такой:

<?php
$qs = $_SERVER['QUERY_STRING'] ?? '';

preg_match('#url=(.+)#i', $qs, $out);
$url = $out[1] ?? "";
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы