如何在url编码的字段上替换php通配符


How do to a php wildcard replace on a urlencoded field

我有几个编码字段,如下所示:

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:正则表达式现在匹配任意数量的空格替换项,并用一个空格替换所有空格。