前に書いた仕様書をCSVで書き出し、雛形ファイルを用意すると、仕様書の内容をいれて、プログラムが自動生成するという話。
■■ 手順的にはこんなかんじ
・仕様書をCSV書き出ししたものと、
・雛形を用意して、
↓
・このPHPを実行すると、
↓
・ブラウザ上に、雛形の指定したところへ、仕様書の値を入れて
ソースを書き出す。
前のブログで、「このPHPを実行すると」のPHPと、それを呼び出す実行画面について、書いたので、今回は、「雛形を用意して」の雛形ファイルの書き方です
■■ 雛形ファイルのつくりかた
(1)てきとーにプログラムを書いてください
もちろん、PHPプログラムでなくてもいいです。
例には、SQLを示しましたが、JavaプログラムでもPHPプログラムでも、
もちろん、一般的な文章、つまり、「あんたくび!」というドキュメントでもOKです。
(2)半角の< > &を、変換します
雛形にある、< は <に > は >に & は &に変換したほうがいいです
(なお、上の行の&は、本当は半角)
(3)ここで、あたまとおわりに、じゅもんをつけてください。
頭に付ける呪文は、こんなかんじ
<? //==============================// // 文頭の呪文 // //==============================// session_start(); $data = $_SESSION['data']; ?> <html> <BODY> <pre> |
(上記の< >は、実際には半角です)
おわりにつける呪文はこんな感じ
</pre> </BODY> </HTML> |
(上記の< >は、実際には半角です)
(4)CSVファイルのデータが入るところを指定します
・値が直接入るところには、
<?=$data[0][1]?>のように
<?=$data[行番号][列番号]?>を指定してください
(どこも空白を空けないでください)
なお、はじめの行は0行目、列も0列目からはじまります
(1スタートでなく、0スタートです)
・繰り返しのところは
<?for($i = 開始行; $i < count($data) ; $i++){ ?>
<?}?>
で囲ってください。開始行のところは、データファイルで、繰り返し部分のところが
はじまる行を指定します。つまり、見出し行の次の行です。
(上記のなかで、実際に指定するのは、開始行だけです)
・繰り返しの中で、ある列の値を表示するには
<?=$data[$i][列番号]?>
として、行のところに$iを書きます。
・条件のときは、
<?if (条件文) { ?>
<?}else { ?>
<?}?>
でかきます。そうすると、条件文が成立したときに、かきだします。
(elseの行は、なくてもOK)
条件式の中で、データファイルの値を利用するときは、$data[行番号][列番号]、繰り返しの中で利用するときは$data[$i][列番号]となります。
基本的にはこうなのですが、実は<? ?>のなかでは、好きにPHPプログラムを書いていただいて問題ありません。
(5)そして、このファイルを保存して拡張子をPHPにします。
今、じかんがないので、データファイルの構造と、なぜこれで、自動生成するのかについて、この方法のメリットについては、今度の機会に書きます。