[PHP-users 13375] Re: PHPとJavaScript との連携
Mashiki
php-users@php.gr.jp
Tue, 18 Feb 2003 09:37:06 +0900
Mashikiです。
>ところで、ヒアドキュメントですが、
>便利な反面、段下げできないので個人的には使ってませんが、
>コードのレイアウトを乱さずに、かといってファイルを分けたり、
>テンプレートを使うまでもないような場合に、
>お勧めの方法ってありませんか?
自分は見やすいようにラベルに
「____EOF____」
や
「___o___o___o___o___」
など目立つ文字を使ったりしてたのですが、あまり見やすくなりませんね。
やはりタブでしょう。phpの文法で
$html = <<< HERE, 2
<tr><td>$no</td>
<td>$name</td>
</tr>
HERE;
と書くと、各行の行頭2つのタブが削除できるとうれしいんですけど、
できないので、共通のインクルードファイルに
----------------------------------------------
/**
* タブ削除
*
* 各行より指定された数のtabを取り除く
* @param integer
* @param string
* @return string
*/
function UTab($nTab, $sBuf) {
return ereg_replace("(^|\n)\t{{$nTab}}", '\\1', $sBuf);
}
----------------------------------------------
なる関数を定義しておいて、実際ののソースに
以下のようにインデントして書いています。
-------------------------------------------------
:
:
$sNotice = $NoticeList->Display('NOTICE');
echo UTab(2, <<< _
<HTML><HEAD>$header</HEAD><BODY>
$menu
<CENTER>
<B><font size=+3>$welcome</font></B>
<BR><BR><BR>
$sLoginInfo
<table width='95%'><tr><td>
$list
<TABLE border=1 width=100% cellspacing=0 cellpadding=1>
<TR><TD>
<TABLE border=0 width=100% cellspacing=3 cellpadding=0>
<TR><TH nowrap><b>■ お知らせ ■</b></FONT>
<TR><TD>$sNotice
</TABLE>
</TABLE>
</table>
</CENTER>
</body></html>
_
);
:
:
----------------------------------------------------
実行時に僅かのCPUを食われてしまうことを気にしなければ見やすいですよ。
# このメールではタブをスペース3つに置き換えて書いています