htmlspecialchars <pre> <code></code></pre>内的所有标记

时间:2012-08-13 19:27:04

标签: php htmlspecialchars

我从数据库获取内容:

$data="some markup <pre> <code> some code </code> </pre> some markup"

我想要做的是关注

如果$ data里面有<pre> <code> </code> </pre>,那么就做一些事情并通过htmlspecialchars()函数传递some code。然后像以前一样合并。类似的东西:

$data="some markup <pre> <code> htmlspecialchars(some code) </code> </pre> some markup"

无法弄明白该怎么做..

3 个答案:

答案 0 :(得分:0)

在进入途中对其进行消毒。然后,您只有一次机会将其搞砸并让您的网站被黑客入侵,而不必在任何地方使用数据。

答案 1 :(得分:0)

我认为您可能希望使用DOM解析HTML,然后找到<pre><code>代码之间存在代码的所有实例。

然后你可以把那个文字拿到str_replace()上。

答案 2 :(得分:-1)

$data = 'one<pre><code>two</code></pre>three';
$code = preg_match('~^(.*)<pre><code>(.*)</code></pre>(.*)$~', $data, $matches);
var_dump($matches);