/**
*関数data_box
* 機能: テンプレートに従ってデータソースのコンテンツを出力します
*パラメータ
* $fun コールバック関数を指定する必要があります。その機能は、データ ソースからデータを読み取ることです。返すのに最適なのは連想配列です
* $source データ ソースを指定する必要があります。配列またはクエリ結果にすることができます
* $template テンプレート、オプション。テンプレートが提供されていない場合、データは標準形式で出力されます
* テンプレート形式:
* 配列(top=>"",block=>"",fool=>"")
* その中には:
* 冒頭部分
* ブロックは繰り返し可能な部分であり、変数は $IN_varname の形式の連想配列のキーです。先頭のIN_は省略可能です
*愚か者の終わり
*/
関数 data_box($_fun,$_source,$_template="") {
$_ar = $_fun(&$_source);
if($_template == "") {
while(list($k,) = each($_ar)) {
$th .= "$k";
$td .= "$IN_$k";
}
$_template = array(top=>"$th",block=>"$td",fool=>"
");
}else if(! preg_match("/$IN_w+/",$_template[block]))
$_template[block] = preg_replace("/[$](w*)/U","$IN_1",$_template[block]);
$buf = eval("return "$_template[top]";");
やります{
extract($_ar, EXTR_PREFIX_ALL, "IN");
$buf .= eval("return "$_template[block]";");
}while($_ar = $_fun(&$_source));
$buf .= eval("return "$_template[fool]";");
$buf を返します;
}
関数 get_data($source) {
if(list($k,$v) = each($source))
$v を返します;
false を返します;
}
$arr = 配列(
配列(a=>1,b=>2,c=>3,11,12,31),
配列(a=>11,b=>12,c=>13,11,12,131)
);
echo data_box("get_data",$arr);
echo data_box("get_data",$arr,array(top=>"列表测试
)
"));
http://www.bkjia.com/PHPjc/445594.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/445594.html技術記事 /** * 関数 data_box * モジュールに基づいてデータ ソース内の内容を出力する * パラメータ * $fun を返す関数であり、必須です。機能はデータ ソースからデータを取得します。