テンプレート
これは比較的使いやすいテンプレートで、Smarty、FastTemplate、PHPLIB Template よりも使いやすいです
中国語ファイル http://www.cqlc.net/cn_cqlctpl.txt
デモのアドレスは次のとおりです: http:// www.cqlc .net/web/tml.php
以下に示す 3 つのファイルのダウンロード アドレスは、著者の陣痛結果を尊重してください: http://www.cqlc.net/cqlctpl.zip
私のホームページは http://www.cqlc.net/cqlctpl.zip です。 :// www.cqlc.net
1 タグ:
(1)、変数: {$key} は一般変数、配列、クラス メンバーにすることができますが、文字は " にすることはできません。一重引用符のみにすることができます'
例: { $value} ,{$a[0]} ,{$this->a['color']} {$this->["color"]}と書くのは間違いです
(2)、ループ: {loop:loop ステートメント}その他のコード{/loop} は for ループと while ループをサポートします
例: {loop:for($i=10;$i<=20;$i++)} test {$ i} {/loop} 数値 20~30 を出力(テスト)します
{loop:while($i++<10)} test {$a[$i]} {/loop} 配列 20 を出力(テスト)します~30
(3 )、ロジック: {logi: 条件文} その他のコード {/logi} は if、elseif、else をサポートします
例: {logi:if($i==1)} test {$i} { /logi}
{logi :elseif($i==2)} テスト {$a[$i]} {/logi}
{logi:else} テスト {$a[$i]} {/logi}
(4)、プログラム: {exec: ステートメント} プログラム セグメント。これは関数にすることができます。文字は ' のみであることに注意してください。「
例: {exec:$a='hello'.$i}」 正しい {exec :$a="hello$i" }エラー
{exec:echo $a}
{exec:echo time()}
{exec:$this->outpage(1,2,'index.php')}
(5),{*テンプレート注意事項*} 例: {*ここでは出力されません*}
2, テンプレート出力:
出力のみ: eval(cqlctpl(テンプレートファイル)) 例: eval(cqlctpl( "1.tml"))
テンプレートのセット: {exec:eval(cqlctpl(template file))} 例: {exec:eval(cqlctpl($Templatefile))}
{*テンプレートで使用される他のテンプレートファイルはこちら*}
3、元の関数コード:
function cqlctpl($file) /*関数作成者、cqlc、ホームページ: http://www.cqlc.net,
中国語ファイル http://www.cqlc.net/ cn_cqlctpl.txt */
{
$fp =fopen($file,"r");
$msg="echo"".str_replace(""","\"",fread($fp,filesize($file) )))."";";
fclose($fp);
$oldstr=array(0=>"/{loop:([^}]+)}(.+){/loop}/si" ,
1=>"/{logi :([^}]+)}(.+){/logi}/si",
2=>"/{exec:([^}]+)}/ si",
3=>"/ ({*[^*]+*})/si"
);
$newstr=array(0=>"";\1{echo"\2";} echo"",
1=>" ";\1{echo"\2";}echo"",
2=>"";\1;echo"",
3=>""
) ;
return preg_replace($oldstr,$newstr ,$msg);
}
4, テンプレートの例:
テンプレート ファイル: 1.tml
{$array[$i]} {* メッセージ出力*}
{logi:if($i>5)}
{$i} は 5 より大きいです {*logic start*}
{/ logi} {*ログイン終了*}
{/loop} {*ループ終了*}
{exec:$time=time()} {*実行開始と終了*}
{exec:echo '
< h1>これは他の tml(2.tml){ exec:test()}
デモ php スクリプト
tml.php:
function cqlctpl($file) /*関数作成者、cqlc、ホームページ: http://www.cqlc.net,
中国語ファイル http://www.cqlc.net/cn_cqlctpl.txt */
{
$fp=fopen( $file,"r");
$msg="echo"".str_replace(""","\"",fread($fp,filesize($file)))."";";
fclose($ fp);
$oldstr=array (0=>"/{loop:([^}]+)}(.+){/loop}/si",
1=>"/{logi:([ ^}]+)}(. +){/logi}/si",
2=>"/{exec:([^}]+)}/si",
3=>"/({* [^*]+*}) /si"
);
$newstr=array(0=>"";\1{echo"\2";}echo"",
1=>"";\ 1{echo"\2" }echo"",
2=>"";\1;echo"",
3=>""
);
return preg_replace($oldstr,$newstr,$msg );
}
function test (){echo"
これは 2 番目のテンプレート ファイルです。テストへようこそ";} /*関数を定義します*/
$title="これは最初のテンプレート ファイルです" ;
$ body="ここから出力が開始されました";
for($i=0;$i
eval(cqlctpl ("1.tml"));
5、テンプレートの出力結果、デモを参照: http://www.cqlc.net/web/tml.php
これは最初のテンプレート ファイル (1.tml)
すでにここにあります hello world 0 の出力を開始しました
is hello world 1 の出力はここで開始されました
is hello world 2 の出力はここで開始されました
is hello world 3 の出力はここで開始されました
is hello world 4 の出力はここで開始されました
出力の出力はここから始まりました hello world 5
の出力は hello world 6 です
6 は 5 より大きいです
の出力は hello world 7 です
7 は 5 より大きいです
の出力は hello world 8 です開始されました
8 は 5 より大きいです
ここで出力が開始されました は hello world 9 です
9 は 5 より大きいです
時刻は 1059227729 です
これは他の tml(2.tml) です
これは 2 番目のテンプレート ファイルですやあ、テストへようこそ