Кодирование URL-адреса javascript для передачи # (hashtag)

Я #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"> 

Related of "Кодирование URL-адреса javascript для передачи # (hashtag)"

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

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

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

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

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