这里有很多类似的问题,但我找不到任何帮助我的问题.
基本上,我有一个像这样的字符串:
Collections/Linkin Park/Dead By Sunrise (2009) %2B Album Cover
该字符串是较长URL的一部分,该特定部分通过.htaccess RewriteRule分配给$_GET数组.当我回显$_GET中存储的字符串时,我得到:
Collections/Linkin Park/Dead By Sunrise (2009) Album Cover
+刚刚消失(在网页源中,它显示三个空格).这是为什么?我该如何预防呢?
这只是一个错误.我知道php视为一个空格,但它不应该在编码时使用.
最佳答案 您应该在规则中使用
B
flag,它指示RewriteRule在应用转换之前转义非字母数字字符:
RewriteRule ^Entertainment/Music/(.*)/$?sub=Entertainment&page=Music&e1=$1 [B,QSA,NC,L]
现在当您转储$_GET数组时,您将得到:
Array
(
[sub] => Entertainment
[page] => Music
[e1] => Collections/Linkin Park/Dead By Sunrise (2009) + Album Cover
)
注意Album Cover之前的外观.