我有这样的字符串:
<a href="http://google.com"> link </a>
[code lang="html" anotherargument="foo"...]
<a href="http://google.com"> link </a>
[/code]
如何将[code...]
和[/code]
之间的代码转换为HTML字符?
<a href="http://google.com"> link </a>
[code lang="html" anotherargument="foo"...]
<a href="http://google.com"> link </a>
[/code]
答案 0 :(得分:1)
我认为htmlspecialchars
或htmlentities
具有您正在寻找的功能。两者都将字符转换为HTML实体。
答案 1 :(得分:1)
你可以使用带有回调的正则表达式 - 所以匹配代码标签之间的内容,然后通过运行函数替换。
像这个未经测试的代码:
$str = preg_replace_callback('/(\[code.+?\])(.+?)(\[\/code\])/', create_function(
'$m',
'return $m[1] . htmlentities($m[2]) . $m[3];'
),$str)
答案 2 :(得分:1)
试试这个
preg_match_all('`\[code[^\]]*+]([^\[]*+)\[/code\]`i', $html, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
$html = str_replace($match[1], htmlentities($match[1]), $html);
}