Во многих приложениях я получаю & вместо & в URL, поэтому определенные ссылки не работают? - PullRequest
0 голосов
/ 22 июня 2011

Когда я нажимаю на ссылку, я получаю URL: вот так:

adipiscing-elit.&Sort=popular

Могу ли я изменить это на:

adipiscing-elit.&;Sort=popular

Работает.

Это проблема браузера или php? Это потому, что я работаю в locahost ?

(сейчас я использую программное обеспечение форума Vanilla )

Ответы [ 2 ]

1 голос
/ 22 июня 2011

URL-адреса в HTML-ссылке должны содержать &, а не голые &.Но в вашем случае это, безусловно, с двойным экранированием & на сгенерированной странице.Где-то в используемом вами программном обеспечении URL дважды экранируется с помощью htmlentities или htmlspecialchars.Найдите все случаи и установите четвертый функциональный параметр $double_encode = false.

Другой обходной путь будет состоять в изменении настройки php.ini arg_separator.input = ";&"
Это будетразрешить & работать в качестве разделителя случайно («amp» станет пустым элементом, потому что URL разбивается на & и ; тогда).Но делайте это, только если вы не можете найти ошибку.

0 голосов
/ 22 июня 2011

Не уверен, что ваш вопрос.Общим разделителем параметров URI является амперсанд '&', в то время как '&' является сущностью HTML / XML для того же символа, амперсанда '&'.Если у вас есть такой URI:

adipiscing-elit.&Sort=popular

Это примерно соответствует параметрам;

 adipiscing-elit = (blank)
 amp;Sort = 'popular'

Вот почему ваш URI не работает;'amp; Sort' - это имя параметра, где оно должно быть просто 'Sort'.

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