用PHP中的%20替换href中的空格

时间:2013-11-22 19:50:06

标签: php html escaping preg-replace href

我想用%20替换链接中的每个空格。

<a href="Replace the spaces here">Some text</a>

我想得到这个:

<a href="Replace%20the%20spaces%20here">Some text</a>

不是这个:

<a%20href="Replace%20the%20spaces%20here">Some%20text</a>

怎么做? preg_replace函数? 解决方案(因为我无法发布答案):

$search= '(href="(.*?)")s';
$replace= '';
$newstring= preg_replace_callback($search,create_function('$treffer','urlencode($treffer[0]);'),$string);

3 个答案:

答案 0 :(得分:3)

您应该使用urlencode()函数作为href部分。

http://php.net/urlencode

答案 1 :(得分:2)

对于笔记,每个现代浏览器都会处理以下内容:

<a href="Replace the spaces here">Some text</a>

如果您坚持不顾这样做,并且假设您无法在输出之前urlencode()链接,则需要使用以下任一项:

  • preg_replace_callback()
  • DOM解析器

使用其中之一只允许您在需要的地方应用urlencode()

答案 2 :(得分:0)

你可以试试这个:

<a href="<? echo(urlencode("Replace the spaces here")); ?>">Some text</a>