简体   繁体   中英

Remove ASCII Hex Codes for Non-Alphanumeric Printable Characters from URL PHP

I am getting a string that represents a URL, but the URL has many ASCII Hex codes in them represented with %. Instead of using the following:

$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);

is there a simpler, more compact way to do this? If not this will work, but it's not cute!

urldecode() solved all my problems. Thanks @marekful

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM