PHP Url Encode删除所有编码

时间:2014-02-06 16:54:13

标签: php regex str-replace

我有以下代码用于替换URL编码。我想用str_replace()替换任何东西%**

*是狂野的角色。

我有以下代码,但希望它能按照我上面说的方式工作。

    $desc = urlencode($desc);

    $desc = str_replace('%95', '', $desc);
    $desc = str_replace('%92', '', $desc);
    $desc = str_replace('%A3', '', $desc);
    $desc = str_replace('%91', '', $desc);
    $desc = str_replace('%92', '', $desc);
    $desc = str_replace('%27', '', $desc);
    $desc = str_replace('%09', '', $desc);
    $desc = str_replace('%0A', '', $desc);
    $desc = str_replace('%0D', '', $desc);
    $desc = str_replace('%2C', '', $desc);

    $desc = urldecode($desc); // remove +

1 个答案:

答案 0 :(得分:1)

如果您确定%后跟两个字符是网址转义序列,则可以使用

$desc = preg_replace("@%.{2}@", '', $desc);

但更准确一点

$desc = preg_replace("@%[\dA-F]{2}@", '', $desc);