例えば。
<html>
<head></head>
<body>
<div>
<h1>-----> hello! ----< </h1>
</div>
</body>
h1タグ内の>と<を対応する>と<に置き換えたい
正しいパターンはどれですか?
前もって感謝します!
例えば。
<html>
<head></head>
<body>
<div>
<h1>-----> hello! ----< </h1>
</div>
</body>
h1タグ内の>と<を対応する>と<に置き換えたい
正しいパターンはどれですか?
前もって感謝します!
「そもそもなぜこの壊れたHTMLが生成されるのか」というコメントに同意して、このようなドキュメントを表現すると、現在発生しているこれらの問題が正確に発生します。2つの有効な状況があります
したがって、ソースデータ(文字列、データベース)からHTMLドキュメントを生成するときは、それらをエスケープする必要があります(たとえば、別の回答者が正しく指摘したようにhtmlspecialcharsを使用します)。
HTMLタグとエスケープされていないテキストを含む、現在のような文字列がある状況を絶対に回避する必要があります。
たとえば、テキストにテキストが含まれて<b>text</b>
いて、そのテキストをHTMLドキュメントに文字通り表示したい場合、つまり、テキストを太字にするのではなく、山かっこを表示したい場合(たとえば、プログラミング方法に関するドキュメントを作成している場合) HTML)このようなドキュメントを作成すると、実際のHTMLコードと区別する方法がなくなります。
私はそれをきちんと通過させます。
あなたはそれを投げてtidy
(ドキュメントを参照)、それがエラーを修正できるかどうかを確認することができます。正規表現を使用して自分で「正しいこと」を実行しようとするよりもはるかに優れています。
$html = <<<EOT
<html>
<head></head>
<body>
<div>
<h1>-----> hello! ----< </h1>
</div>
</body>
EOT;
$config = array (
'clean' => true,
'drop-proprietary-attributes' => true,
'output-xhtml' => false,
'show-body-only' => false,
'wrap' => '0'
);
$tidy = new tidy();
$tidy->parseString($html, $config, 'utf8');
$tidy->cleanRepair();
echo tidy_get_output($tidy);
PHP環境で最初にtidyを有効にする必要があるかもしれません。