PHP preg_replace exclude<和>

时间:2013-04-25 07:34:39

标签: php regex preg-replace

我需要更改此代码:

$output = preg_replace("#&lt;a ([^&gt;]*)&gt;([^&lt;]*)&lt;\/a&gt;#", "<a href=\"$1\">$2</a>", $output)

&lt;a some.url&gt;description&lt;/a&gt;转换为HTML代码<a href="some.url">description</a>,但在我将< and >更改为&lt; and &gt;后,它无法实现我想要的效果。

感谢您的帮助。

修改

我不会使用html_entity_decode(),因为我希望这能够启用略微简化的HTML标记,但是大多数HTML都会被禁用。

我的函数输入是一个变量,从表格中获取:

首先,代码会将所有<>替换为&lt;&gt;

它会更改一些修改文本的静态HTML标记,例如<b></b>

但最后,我想将<a some.url>link</a>(而不是代码更改为&lt;a some.url&gt;link&lt;/a&gt;)的每个链接更改为preg_replace()更改为标准HTML代码{{1 }}

1 个答案:

答案 0 :(得分:2)

http://php.net/manual/en/function.html-entity-decode.php

$str = "this 'quote' is &lt;b&gt;bold&lt;/b&gt;"
html_entity_decode($output)
// output This 'quote' is <b>bold</b>

http://php.net/manual/en/function.htmlentities.php

$str = "This 'quote' is <b>bold</b>";
htmlentities($output);
// output this 'quote' is &lt;b&gt;bold&lt;/b&gt;