Как закодировать символ # в URL + php + Joomla - PullRequest
2 голосов
/ 16 июля 2010

Я пытаюсь получить переменный адрес из моего текущего URL, используя метод JRequest::getVar('address'). Но если значение адреса имеет символ (#), часть после символа # не извлекается.

Я понимаю, что URI является комбинацией запроса + фрагмента, а часть после символа хеш-функции рассматривается как фрагмент. Я пытался использовать метод urlencode, но он все еще не решил проблему.

Может кто-нибудь сказать, пожалуйста, как решить проблему?

Ответы [ 5 ]

6 голосов
/ 16 июля 2010

В чем проблема с использованием urlencode? Он должен заменить # на %23 и все должно быть хорошо. Вы можете попробовать JRequest::getVar(str_replace('#', '%23', 'address')), что должно сработать. Можете ли вы опубликовать пример URL, который не получает должным образом urlencode d?

2 голосов
/ 16 июля 2010

Полагаю, вам придется заменить хеш-символ самостоятельно.Например:

str_replace($the_url, '#', '-');

Я не знаю, где именно вы должны это сделать, потому что я не знаю, как Joomla! -Framework обрабатывает ссылки и URL-адреса.Но я уверен, что кто-то еще может помочь здесь дальше ...

1 голос
/ 27 октября 2013

Кодирование хэша в URL с заменой% 23

http://twitter.com/home?status=I+believe+in+%23love

"Я верю в #love"

0 голосов
/ 16 июля 2010

Проверьте это Joomla doc out. Вы можете получить то, что Joomla называет «фрагментом», выполнив:

$uri = 'http://fredbloggs:itsasecret@www.example.com:8080/path/to/Joomla/index.php?task=view&id=32#anchorthis';
$u =& JURI::getInstance( $uri );
echo 'Fragment is ' . $u->getFragment();
0 голосов
/ 16 июля 2010

Часть после # никогда не отправляется в Apache / PHP, и поэтому не может быть получена с помощью сценария PHP.Что вам нужно сделать, так это URL-кодирование параметра ADDRESS URL.

test.com/index.php?ADDRESS=<?= urlencode('101 Street #6 City') ?>

Этот код сгенерирует следующий URL

test.com/index.php?ADDRESS=101+Street+%236+City

Теперь по этому URL вы можете получитьадрес с JRequest::getVar('ADDRESS')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...