我将URL传递给PHP文件,在其中更改某些颜色等。其中一种颜色是#ccc
,并以&background=#ccc
的形式传递,这会破坏我的PHP文件(它在该主题标签处停止我的$_GET
参数,之后的所有内容都不会传递)
我已经尝试将我的网址编码为encodeURIComponent(url)
,这也编码了我的网址?和&我用我的$ _GET字符串。使用encodeURI()
时,主题标签根本不会被编码。
任何想法如何将我的所有变量传递给我的PHP文件,以便我可以在那里阅读它们?
请注意它是样式表href。我不能/不会使用jQuery的$.get()
方法,但只需解析一个标记并将其附加到我的内容中:
<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 :(得分:4)
encodeURIComponent
是正确的,但您只想在#ccc
位上使用它。如果您是手动执行此操作(例如,在<link>
标记中进行硬编码),请使用%23
代替#
。
答案 1 :(得分:1)
哈希标签不会传递给服务器,因此这就是他们破坏你的脚本的原因。对于编码,如果encodeURIComponent()有效,您可能必须对URL中的每个值进行编码。或者,您可以使用简单的字符串替换替换您的网址中的#符号。
答案 2 :(得分:0)
您可以实施专有编码系统。例如,说“#”等于“! - !”例如。
然后在服务器端PHP代码中,您可以运行str_replace("!-!", "#", $getVar)
语句以正确使用颜色代码。然而,并不理想。
另外,请尝试:htmlentities
和html_entity_decode
:http://php.net/htmlentities