2015-07-10 2 views
1

Я передаю URL-адрес файла PHP, в котором можно изменить некоторые цвета и т. Д. Один из цветов - #ccc и передается как &background=#ccc, который разбивает мой файл PHP (он останавливается мои параметры $_GET на этом хэштеге, все после этого не передано)Кодирование javascript url для передачи # (hashtag)

Я пробовал кодировать свой url как encodeURIComponent(url), который также кодирует мой? и & Я использую для строки $ _GET. При использовании encodeURI() hashtag не кодируется вообще.

Любые идеи, как передать все мои вары в мой PHP-файл, чтобы я мог их прочитать там?

Обратите внимание: что это таблица стилей href. Я не могу/не будет использовать $.get() метод JQuery, но просто разобрать тег и добавьте его в мой, как, например:

<link href="http://localhost:8888/test.php/layout.scss?primarycolor=hotpink&secondarycolor=white&background=#ccc&textcolor=black&linkcolor=black&font=Futura&" type="text/css" rel="stylesheet" id="custom-style"> 
+0

Не могли бы вы просто пройти background = ccc и в коде за добавить хэштег? – Buzka91

+0

Да, используйте 'ccc' и затем передайте хэштаг. люди всегда используют слишком сложные решения. –

+1

За исключением того факта, что люди могут пройти и «черный». Что бы потом преобразовать в "#black". Было бы намного сложнее обойти много вещей, для которых НЕ нужен хэштег;) – CaptainCarl

ответ

4

encodeURIComponent правильно, но вы хотите использовать его на #ccc бит. Если вы делаете это вручную (например, в hardcoding в теге <link>), используйте %23 вместо #.

+0

Вот как я его исправил; Я надеялся, что будет более сексуальный способ справиться с этим. Но, видя ответы до сих пор, я не думаю, что есть. – CaptainCarl

0

Вы можете реализовать запатентованную систему кодирования. Например, говоря, что «#» равно «! -!» например.

Затем в вашем PHP-коде на стороне сервера вы можете запустить оператор str_replace("!-!", "#", $getVar), чтобы правильно использовать цветовой код. Не идеально.

Кроме того, попробуйте: htmlentities и html_entity_decode: http://php.net/htmlentities

1

Хэш-теги не передаются на сервер, так вот почему они нарушая ваш сценарий. Что касается кодирования, если работает encodeURIComponent(), вам, вероятно, придется кодировать каждое значение в URL-адресе. Кроме того, вы можете просто заменить символ # в URL-адресе на% 23, используя замену простой строки.

Смежные вопросы