好吧,我有一些代码可以找到<code></code>
标记集并清理其中的任何代码,因此它显示而不是像常规代码一样运行。一切正常,但我的问题是如何在里面找到标签集/多个标签集,比如$content
。清理代码,但仍然包含所有其他内容?这是我的代码,问题是它检查匹配,当它找到一个它清理它。但在它清理之后,它无法将其重新置于原始位置$content
。 ($content
正在从表格中抓取)
<?php
preg_match_all("'<code>(.*?)</code>'si", $html, $match);
if ($match) {
foreach ($match[1] as $snippet) {
$fixedCode = htmlspecialchars($snippet, ENT_QUOTES);
}
}
?>
我怎么处理$ fixedCode,现在它已经干净了?
答案 0 :(得分:0)
使用regex for parsing HTML很糟糕。我建议熟悉DOM解析器,例如PHP's DOM module。
DOM扩展允许您使用PHP 5通过DOM API操作XML文档。
使用DOM模块,为了从文档中的<code>
标签获取HTML /数据,您需要执行以下操作:
<?php
//So many variables!
$html = "<div> Testing some <code>code</code></div><div>Nother div, nother <code>Code</code> tag</div>";
$dom_doc = new DOMDocument;
$dom_doc->loadHTML($html);
$code = $dom_doc->getElementsByTagName('code');
foreach ($code as $scrap) {
echo htmlspecialchars($scrap->nodeValue, ENT_QUOTES), "<br />";
}
?>