如何在urlencoded字段上替换php通配符

时间:2012-07-20 16:53:04

标签: php replace wildcard urlencode

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

317 + ++纳隆河RD%2C%2BGananoque%2C%2BOntario%2C%2BCanada

简单的部分是用空格替换“+”。

我的挑战是用空格替换“%2C”或“%2B”。

有时“%”之后的文字可能会有所不同,但它总是两个字符。

我尝试使用str_replace(“%**”,“”,urlencode($ string)),但没有运气。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

str_replace()不处理通配符。您可以使用正则表达式(只要您确定要将所有%**更改为空格):

preg_replace("/(%..|\+)+/", ' ', $string);

这将使您的$string(我认为已经是URL编码)并用空格替换所有'+'和'%**'。 请注意,它将用两个空格(用于两个匹配)替换序列'%2C%2B'编辑:正则表达式现在匹配任意数量的空格替换,并为所有空格替换一个空格。