トップページPHP > PHPバッファリング関数でValidな(X)HTMLにしてやる

2007年10月12日

PHPバッファリング関数でValidな(X)HTMLにしてやる

Category : PHP

 ちょっと姑息なやり方なような気もするが・・・・・

 PHPの出力バッファリング関数で(X)HTMLをValidなものに近づけようと試みてみた。その前に「no Valid」な部分はValidな記述に修正しておく、というのは言うまでもない。

 で、肝心のやり方ですが、HTMLコードやテンプレートなどに、以下のようにコードを挿入しておく。


<?php
function callback($buffer)
{
    $buffer = ereg_replace("&", "&#38;", $buffer);//*1
    $buffer = ereg_replace("IMG", "img", $buffer);//*2
    $buffer = preg_replace("!<img(.*?)\">!", "<img\\1\" />",$buffer);//*3

return $buffer;
}

ob_start("callback");
?>

(もともとのHTML部分)

<?php
ob_end_flush();
?>


  • *1の部分は、URLのパラメータ等でよく使いますが、それが実体参照文字の関係でnot Validとなります。なので、「&」を「$#38;」に変換してます。
  • *2の部分の「IMG」は、画像を表示するときに使うタグですが、小文字じゃないとダメ!と怒られるので、小文字に変換してます。
  • *3の部分は画像表示のタグの最後が「/」スラッシュで終わっていないと行けないので、それを追加しています。
    (ただし。。上記の正規表現でうまくいかない場合があります。。。)


 他にも正規表現さえ追加していけば、いろいろ変換できます。

 やり方がコソクですか??(^^;)


関連エントリー

トラックバックURL

このエントリーのトラックバックURL:

コメント

実体参照文字で&を使ってたら?

>(ai)さん

そうですよね(^^;)
それは考えてました。。。

やはり&は正規表現でやった方が良さそうですね。

コメントする