まとめ ブログ ダウンロード 掲示板 メール

れぶろぐ

< 2006-05-15 (月) 2006-05-18 (木) > 最新


2006-05-17 (水)

PHP のソースコードの整形 (2)

一昨日 の試みの続き。

php-mode.el

php-mode.el をインストール。

# tar xvfz php-mode-1.2.0.tgz
# cp php-mode.el /usr/share/emacs/site-lisp/
# emacs -batch -f batch-byte-compile /usr/share/emacs/site-lisp/php-mode.el

~/.emacs に以下の設定を追加。

;;;php-mode
(load-library "php-mode")
(require 'php-mode)
(custom-set-variables '(php-mode-force-pear t))

emacs を起動して PHP のファイルを読みこみ、 C-x h ESC C-\ と入力。

C-x h (mark-whole-buffer)
現在のバッファ全体を region にする
ESC C-\ (indent-region)
region 内の全ての行をインデントし直す

以下のような変換結果になる。

<?

if($a==TRUE){
    echo "TRUE";
}
else {
    echo "FALSE";
}

?>

スペースを1つ入れるといった細かい調整はしてくれないが、 インデントだけ直すのなら完璧。 Emacs で編集した時にインデントが崩れないようにするためにも、 インストールはしておいた方がいいな。

Tags: PHP | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink

複数ファイルの行末の空白を除去

結局、 phpCodeBeautifier で整形を行うことにしたが、 } の後に必ず空白が入ってしまうのが気持ち悪い。 ということで、 行末の空白を取り除く PHP スクリプトを作成した。

以下のコードを rtrim という名前でファイルに保存。 (改行コードは \n にすることに決めうち)

#!/usr/bin/php
<?php

array_shift($argv);
foreach ($argv as $filename) {
    $file = file($filename);
    $fp = fopen($filename, 'w');
    foreach ($file as $line) {
        fwrite($fp, rtrim($line) . "\n");
    }
    fclose($fp);
}

?>

実行属性を与える。

$ chmod 744 rtrim

一応、バックアップを取って、

$ mkdir backup
$ cp -p *.php backup/

行末の空白を一気に取り除く。

$ rtrim *.php

これでよし、と。

Tags: PHP | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink
本日のリンク元

編集