PHP запрещает htmlspecialchars преобразовывать числа в URL

У меня есть этот URL-адрес, который мне нужно передать в браузер, и я хотел бы его закодировать. Однако у меня есть числа в строке URL, которые также преобразуются и, таким образом, вызывают проблемы.

Вот моя струна.

"http://domain.com/?w=132&h=132&zc=1&q=90&a=c"

И если я использую htmlspecialchars, он преобразует 132 в 100, что неверно. Как это предотвратить?

ОБНОВЛЕНИЕ: возможно, я должен упомянуть, что моя строка выглядит так, потому что я использую скрипт timthumb.

Также я даже не уверен, нужно ли мне что-то кодировать? или URL-адрес, который я предоставил, безопасен?


person Community    schedule 15.02.2012    source источник
comment
я не знаю, как это у вас получилось, покажите код, как вы это сделали   -  person Ibu    schedule 16.02.2012


Ответы (3)


Простите меня, если я ошибаюсь, но не следует ли вам вместо этого использовать urlencode?

urlencode()? справочник по PHP.net

person Andrew    schedule 15.02.2012

htmlspecialchars не влияет на числа... Я понятия не имею, что вы делаете, чтобы получить это...

В любом случае, просто передайте его через urlencode().

person Niet the Dark Absol    schedule 15.02.2012

htmlspecialchars() преобразует только 5 символов:

'&' (ampersand) becomes '&'
'"' (double quote) becomes '"' when ENT_NOQUOTES is not set.
"'" (single quote) becomes ''' only when ENT_QUOTES is set.
'<' (less than) becomes '&lt;'
'>' (greater than) becomes '&gt;'

Он не касается цифр, букв или других символов.

person Xeoncross    schedule 15.02.2012