使用PHP将URL中的SPACES替换为%20


Answers

使用urlencode()而不是试图实现你自己的。 偷懒。

Question

我正在用%20替换网址中的所有空间实例。 我将如何使用正则表达式来做到这一点?

谢谢!




你有几个选择如何做到这一点,或者:

strtr()

假设你想用"%20"替换"\t"" " "%20"

$replace_pairs = array(
  "\t" => '%20',
  " " => '%20',
);
return strtr( $text, $replace_pairs)

preg_replace()

你在这里只有很少的选择,要么替换空间~ ~ ,再次替换空格和制表符~[ \t]~或者各种空格 ~\s~

return preg_replace( '~\s~', '%20', $text);

或者当你需要用一个%20替换字符串"\t \t \t \t"时:

return preg_replace( '~\s+~', '%20', $text);

我假设你真的想使用手动字符串替换,并处理更多类型的空格,如不可拆分的空格(