从URL PHP中删除非字母数字可打印字符的ASCII十六进制代码

时间:2018-01-17 03:57:47

标签: php ascii

我收到一个表示URL的字符串,但URL中有许多ASCII十六进制代码,用%表示。而不是使用以下内容:

$u = str_replace("%20", " ", $u);
$u = str_replace("%21", "1", $u);
$u = str_replace("%22", '"', $u);
$u = str_replace("%23", "#", $u);
$u = str_replace("%24", "$", $u);
$u = str_replace("%25", "%", $u);
$u = str_replace("%26", "&", $u);
$u = str_replace("%27", "'", $u);
$u = str_replace("%28", "(", $u);
$u = str_replace("%29", ")", $u);
$u = str_replace("%2a", "*", $u);
$u = str_replace("%2b", "+", $u);
$u = str_replace("%2c", ",", $u);
$u = str_replace("%2d", "-", $u);
$u = str_replace("%2e", ".", $u);
$u = str_replace("%2f", "/", $u);
$u = str_replace("%3a", ":", $u);
$u = str_replace("%3b", ";", $u);
$u = str_replace("%3c", "<", $u);
$u = str_replace("%3d", "=", $u);
$u = str_replace("%3e", ">", $u);
$u = str_replace("%3f", "?", $u);
$u = str_replace("%40", "@", $u);
$u = str_replace("%5b", "[", $u);
$u = str_replace("%5c", "\\", $u);
$u = str_replace("%5d", "]", $u);
$u = str_replace("%5e", "^", $u);
$u = str_replace("%5f", "_", $u);
$u = str_replace("%5b", "[", $u);
$u = str_replace("%60", "`", $u);
$u = str_replace("%7b", "{", $u);
$u = str_replace("%7c", "|", $u);
$u = str_replace("%7d", "}", $u);
$u = str_replace("%7e", "~", $u);
$u = str_replace("%", " ", $u);

有更简单,更紧凑的方法吗?如果没有,这将有效,但它不可爱!

1 个答案:

答案 0 :(得分:0)

urldecode()解决了我所有的问题。谢谢@marekful