小なり記号 (<) や、大なり記号 (>) など、HTML テキスト内で特別な意味を持つ文字を出力する場合は、HTML エスケープ処理を行ってから出力する必要があります。
PHP の htmlspecialchars 関数を使用すると、一連のエスケープ処理をまとめて行ってくれます。
htmlspecialchars('<strong>', ENT_QUOTES); //==> '<strong>'
htmlspecialchars() はデフォルトで以下のような変換を行います。
< → <> → >& → &" → "さらに、以下のようにシングルクォートを '(あるいは ')に変換するには、第二引数 ($flags) に ENT_QUOTES を指定しておく必要があります。
' → ' or 'PHP プログラムから、フォームの input 要素や textarea 要素の内容を出力する場合、その内容が不定なときは必ず htmlspecialchars() でエスケープ処理を行っておく必要があります。
<?php
echo "<textarea name='content'>\n";
echo htmlspecialchars($content) . "\n";
echo "</textarea>\n";
?>
<?php
echo '<input type="text" name="title" value="' . htmlspecialchars($title) . '" />' . "\n";
?>