Я получаю закодированный URL через строку запроса. Мне нужно снова передать его на следующую страницу. Когда я получаю его в первый раз, используя $_REQUEST['url']
, декодируются только косые черты, например:
http://example.com/search~S10?/Xllamas&searchscope=10&SORT=D/Xllamas&searchscope=10&SORT=D&SUBKEY=llamas/51%2C64%2C64%2CB/browse
Страница php docs для urldecode не советует декодировать данные запроса и говорит, что они уже будут декодированы. Мне нужно, чтобы он был полностью декодирован, чтобы я мог снова его кодировать без двойного кодирования некоторых частей, или вообще не декодировал.
Я не уверен, почему мой опыт использования этих данных несовместим с документами php. Цени любую помощь или указатели на то же самое !!
РЕДАКТИРОВАТЬ: попытка опубликовать соответствующий код, который разбросан по:
URL кодируется и добавляется в строку запроса (в html-файле с использованием шаблона smarty):
<a class="button" href="{$baseurl}search_nojs?searcharg={$searcharg|escape:'url'}&url={$next|escape:'url'}"><span>Next>></span></a>
если эта ссылка была пройдена, я возвращаю URL-адрес из строки запроса (в файле php):
if(array_key_exists('url', $_REQUEST)) {
$sm->assign("searchurl", $_REQUEST['url']);
}
Тогда я бы хотел вставить URL-адрес обратно в строку запроса для следующей ссылки (в другом HTML-файле):
href="{$baseurl}detail?bibid={$res.bibid}&searcharg={$searcharg}{if $searchurl}&searchurl={$searchurl}{/if}"
Я также печатаю {$searchurl}
прямо на странице и получаю тот же полу-экранированный результат.
Вот еще один пример строки запроса и данных, которые я получаю $_REQUEST
:
первоначально закодированный URL в строке запроса:
searcharg=mammals&url=http%3A%2F%2Fexample.com%2Fsearch%7ES10%3F%2FXmammals%26searchscope%3D10%26SORT%3DD%2FXmammals%26searchscope%3D10%26SORT%3DD%26SUBKEY%3Dmammals%2F51%252C1114%252C1114%252CB%2Fbrowse
данные получены из $_REQUEST
:
searcharg=mammals&searchurl=http://example.com/search~S10?/Xmammals&searchscope=10&SORT=D/Xmammals&searchscope=10&SORT=D&SUBKEY=mammals/51%2C1114%2C1114%2CB/browse
Я знаю, что этот метод может показаться любопытным - я пытаюсь сделать мобильный дисплей, работая с базой данных черного ящика. Еще раз спасибо за любую помощь !!