PHP:编码被替换为空格

这里有很多类似的问题,但我找不到任何帮助我的问题.

基本上,我有一个像这样的字符串:

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之前的外观.

点赞