HTML整形ツールを修正しました

HTML整形ツールを下記の通り修正しました。

◆整形対象外の仕様を変更

これまで、整形対象外の部分を全て「タグ」として扱い、インデント対象にしてきました。
変更後は整形対象外を単に文字として扱い、インデント対象から外せる機能を追加した

インデント対象
<!--  -->            :htmlコメント
<?php  ?>            :PHPソース
<%  %>               :ASPソース
<script>  </script>  :scripteタグ
<style>  </style>    :styleタグ
<pre>  </pre>        :preタグ

インデント対象外 (追加)
"  "                 :ダブルクオーテーション
'  '                 :シングルクオーテーション
<?  ?>               :PHPソース
<![CDATA[  ]]>       :XML CDATAセクション

◆タグ内の属性を縦に改行する機能を追加

タグ内に2個以上の属性があった場合、縦に改行します
属性改行をオンに整形してみてください

◆整形後の行数が不正確だったバグを修正

ようやくバグ修正できました(^^)/

※ソース:こちらです

 

HTML整形ツールを修正しました” への7件のフィードバック

  1. すいません。
    少しだけ気になったので、また出しゃばります。
     
    ソース(htmlseikei.txt)が EUC で書かれていて、
    通常テキストなのでブラウザがキャラクタセット
    を理解できずGoogle Chrome では一般的に化けます。
    ( Content-Type:text/plain )しかないせいです
     
    Google Chrome 39.0.2146.0 canary でも同じです。

  2. そういえば、Google Chrome は Shift_JISという判断
    を下していましたので、Chrome が全く何もしていない
    事は無く、判断に失敗しているようです。

  3. 1人でやってると、くじけそうになる時があるんですが、コメントいただけると非常に助かります。
    ソースは、なんちゃってビュワーで表示する様に直しました。

  4. これはとてもすばらしい!!!
    自作のフレームワークにHTML整形の機能をつけたいと思って探していました。なかなか思うものが見つからず、自分で作るしかないかなと思っていたところ、こちらを発見しました。

    利用方法としては、Smarty の Outputfilter プラグインに組み込んで利用させてもらおうかと思っております。

  5. shibuyaさん、コメントありがとうございます。
    昨年、ソースをクラスを使って書き直しているので、他のツールへの移植も可能かとおもいますので、是非使ってみてください。
    何か不具合、改良点などはコメントいただけると助かります。

  6. SMARTYプラグイン移植の際にこちらで修正した点がいくつかあったので、ご報告いたします。

    ・1クラスにつき1ファイルに分割しました。(__autoload使用しているため)
    HtmlFormat.class.php
    PatternConverte.class.php

    ・ElapsTimeクラスはフレームワークには不要でしたので削除しました。

    ・エスケープはSMARTYで行うので、クラス内でhtmlspecialchars関数を使用しているところは削除しました。

    ・HtmlFormatクラスに以下の定数を定義しました
    const INDENT_NONE = 0; // インデントをしない設定を追加(html軽量化に利用可能?)
    const INDENT_TAB = 1;
    const INDENT_SPACE_1 = 2;
    const INDENT_SPACE_2 = 3;
    const INDENT_SPACE_4 = 4;

    処理速度向上のために以下のことを行いました
    ・for ($i = 0; $i foreach ($list as $i => $li)に変更(ロジックに影響のない部分のみ)
    ・while (list($key, $val) = each($list)) -> foreach ($list as $key => $val)に変更
    ・配列の添字の引用符をダブルクォーテーションからシングルクォーテーションに変更
    ・if () {}; if () {}; -> if – else に書き直し可能な部分を変更。
    ・$var = $var + 1; などインクリメントを $var++; や ++$var; に変更

    こちらの環境では焼く20%程度の処理速度の改善が確認できました。

    今のところ検証は十分ではないのですが、ご報告まで。

  7. shibuyaさん
    phpはあまり使い込んでいない為、情報いただけて非常に助かります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です