我有几个编码字段,如下所示:
317+NALON++RD%2C%2BGananoque%2C%2BNtario%2C%2BCanada
简单的部分是用空格代替"+"。
我的挑战是用空格替换"%2C"或"%2B"。
有时,"%"后面的文本可能不同,但始终是两个字符。
我尝试使用str_replace("%**"、"、urlencode($string)),但没有成功。
有什么想法吗?
str_replace()
不处理通配符。您可以使用正则表达式来代替(只要您确定要将ALL%**更改为空格):
preg_replace("/(%..|'+)+/", ' ', $string);
这将占用您的$string
(我认为它已经是URL编码的),并用空格替换所有的"+"answers"%**" 请注意,它将用两个空格替换序列"%2C%2B"(用于两个匹配)EDIT:正则表达式现在匹配任意数量的空格替换项,并用一个空格替换所有空格。