3 に答える
キスしない理由 (Keep It Simple, Stupid):
echo str_replace(
array('<pre>', '</pre>'),
array('<code>', '</code>'),
$your_html_with_pre_tags
);
マニュアルを見てください。<pre>タグの変更<code>は次のように簡単です。
$str = '<pre lang="php">
echo "test";
</pre>
<pre lang="html4strict">
<div id="test">Hello</div>
</pre>';
require_once("simplehtmldom/simple_html_dom.php");
$html = str_get_html($str);
foreach($html->find("pre") as $pre) {
$pre->tag = "code";
$pre->lang = null; // remove lang attribute?
}
echo $html->outertext;
// <code>
// echo "test";
// </code>
// <code>
// <div id="test">Hello</div>
// </code>
"PS: 入力で,<および>文字をエンコードする必要があります。
preタグをタグに置き換えるだけで、要素内のcodeようなブロックレベルの要素がある場合、意味とレンダリングが本質的に変わり、マークアップが無効になりますdiv。そのため、目標を修正する必要があります。実際に使い続けられるかチェックしてみましょうpre。そうでない場合は、代わりに、レンダリング<div class=pre>のように動作させるスタイル シートと一緒に使用します。タグをタグにpre置き換えるだけでは、構文エラーは発生しません ( のコンテンツ モデルでは、許可されるものは何でも許可されます)。predivdivpre
lang属性に関しては、lang="php"正しくありません (HTML 仕様では、属性は標準言語コードを使用して、コンテンツの人間のlang言語を指定します)、コンピューター言語に関する情報をコーディングするという考えは良いです。後でスタイリングやスクリプト作成に役立つ場合があります。HTML5 ドラフトでは、このような情報は、class="language-php pre"'など、で始まるクラス名を使用してコーディングできると述べています。language-class="language-php"' (or, when combined with another class name,