Получить параметр URL

У меня простая проблема. Мне нужно получить значение параметра из URL.

URL выглядит так:

http://www.example.com/index.php?someUrl=http://www.example.com/folder/index.htm#<id=18025>>newwnd=false

Мне нужно получить значение someUrl в php.

Что я попробовал:

$_GET['someUrl'];

Вывод я получаю это http://www.example.com/folder/index.htm

Выход нужно получить:

http://www.example.com/folder/index.htm#<id=18025>>newwnd=false

Замечания: Я не могу разделить URL после # в новый параметр.

Я надеюсь, что смогу прояснить вопрос.

РЕДАКТИРОВАТЬВ соответствии с ценным отзывом, я закодировал строку перед отправкой в ​​качестве параметра URL.

Я сделал кодирование с помощью функции JavaScript encodeURIComponent
Теперь URL-адрес становится таким, как показано ниже:

http://www.example.com/index.php?someUrl=http%3A%2F%2Fexample.com%folder%2Ftallyhelp.htm%23%253Cid%3D18025%253E%253Enewwnd%3Dfalse

После декодирования в php urldecode функция, я получаю результат http://www.example.com/folder/index.htm#>newwnd=false
‘id’ удалить из результата.

3

Решение

Ваша проблема в том, что если ваш запрос к вашей странице это:

http://www.example.com/index.php?someUrl=http://www.example.com/folder/index.htm#<id=18025>>newwnd=false

тогда что бы ни было после # является тегом привязки, это означает, что все, что следует, не является параметром, который вы можете $_GETэто просто якорный тег. так что вам нужно закодировать это # (и некоторые другие странные символы, которые могут вызвать больше проблем)

так что если вам удастся сделать запрос на свою страницу, как это:

http://www.example.com/index.php?someUrl=http%3A%2F%2Fwww.example.com%2Ffolder%2Findex.htm%23%3Cid%3D18025%3E%3Enewwnd%3Dfalse

тогда вы сможете использовать $_GET['someUrl']; чтобы получить значение, которое вы хотите, потому что # будет закодирован (среди других символов тоже)

так как сделать так, чтобы ваш запрос был таким? просто используйте urlencode закодировать ваш someUrl параметр.

посмотри, как это работает

echo urlencode('http://www.example.com/folder/index.htm#<id=18025>>newwnd=false');

поэтому после кодирования ваших ссылок указание на эту страницу будет таким

<a href="http://www.example.com/index.php?someUrl=http%3A%2F%2Fwww.example.com%2Ffolder%2Findex.htm%23%3Cid%3D18025%3E%3Enewwnd%3Dfalse">my link</a>

как вы можете видеть # будет закодирован, и это не позволит ему возиться с URL-адресом запроса, и вы сможете получить эту строку через $_GET['someUrl'];

ОБНОВЛЕНИЕ для нового редактирования OP:

если вы закодировали с JS encodeURIComponent затем используйте rawurldecode() в PHP. увидеть Как декодировать URL в php, где URL кодируется с помощью encodeURIComponent () который также имеет другой ответ, который может помочь.

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector