我从数据库获取内容:
$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"
无法弄明白该怎么做..
答案 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);