Я #ccc
URL-адрес файла PHP, в котором можно изменить некоторые цвета и т. Д. Один из цветов – #ccc
и передается как &background=#ccc
который разбивает мой PHP-файл (он останавливает мои параметры $_GET
в этом хэштеге, все после этого не проходит)
Я пробовал кодировать свой url как encodeURIComponent(url)
который также кодирует мой? и & я использую для строки $ _GET. При использовании encodeURI()
хэштег вообще не закодирован.
Любые идеи, как передать все мои вары в мой 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">
encodeURIComponent
является правильным, но вы хотите использовать его только на бит #ccc
. Если вы делаете это вручную (например, в hardcoding в <link>
), используйте %23
вместо #
.
Вы можете реализовать запатентованную систему кодирования. Например, говоря, что «#» равно «! -!» например.
Затем в своем PHP-коде на стороне сервера вы можете запустить оператор str_replace("!-!", "#", $getVar)
чтобы правильно использовать цветовой код. Не идеально.
Кроме того, попробуйте: htmlentities
и html_entity_decode
: http://php.net/htmlentities
Хэш-теги не передаются на сервер, поэтому они нарушают ваш скрипт. Что касается кодирования, если работает encodeURIComponent (), вам, вероятно, придется кодировать каждое значение в URL-адресе. Кроме того, вы можете просто заменить символ # в URL-адресе на% 23, используя замену простой строки.