0

了解しました。<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はクリーンになったので、どうすればよいですか?

4

1 に答える 1

0

HTMLの解析に正規表現を使用するのは良くありません。PHPのDOMモジュールなどのDOMパーサーに精通することをお勧めします。

DOM拡張機能を使用すると、PHP5を使用したDOMAPIを介してXMLドキュメントを操作できます。

<code>DOMモジュールを使用して、ドキュメント内のタグから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 />";
}
?>
于 2013-01-17T12:35:02.003 に答える