ホームページ php教程 php手册 Smarttemplate テンプレート ハンドラー フレームワークを生成する

Smarttemplate テンプレート ハンドラー フレームワークを生成する

Jun 21, 2016 am 09:07 AM
array lf quot

プログラム

/**
* Smarttemplate テンプレート ハンドラー フレームワークを生成します
*
* Smarttemplate テンプレート クラスは、作業効率が非常に高く、コード サイズが小さいです。
* 彼の拡張可能なテンプレート機能はさらにユニークです。
*
* 方法は少ないですが、使い方はとても簡単です。
* ただし、テンプレートファイルを調整しすぎると、ハンドラーをテンプレートに対応させるのに時間がかかります。

* このプログラムは、テンプレート ファイルを分析し、テンプレート処理プログラムのフレームワークを提供するために使用されます
**/

ob_start();

$Template_name = "include/main.html";
$str = file_get_contents($Template_name);
preg_match_all("/|{w.*}/U​​",$str,$regs);

$stack = array();
$vars = array();
$functions = array();
$key = 0; // = chr(ord("i")+count($stack));
$LF = "rn";
$outstr = "";
foreach($regs[0] as $v) {
if( preg_match_all("//",$v, $r)) {
array_push($stack,$r[1][0]);
$k = chr( ord("i")+$key++);
$outstr .= str_repeat(chr(9), $key-1)."/* 对数组 ${$r[1][0]} 赋值 */$LF ";
$outstr .= str_repeat(chr(9), $key-1)."for($$k=0;$$k<1;$$k++) {$LF";
}elseif(preg_match_all( "//",$v, $r)) {
$v = array_pop($stack);
$outstr .= str_repeat(chr(9), -- $key)."}$LF";
if($key) {
$k = chr(ord("i")+$key-1);
$p = $stack[$key-1];
$outstr .= str_repeat(chr(9), $key)."${$p}[$$k][$v] = $$v;$LF";
}else
$outstr .= "$data [$v] = $$v;$LF";
}elseif(preg_match_all("/{(w+)}/",$v, $r)) {
if(count($stack)) {
$v = $stack[$key-1];
$k = chr(ord("i")+$key-1);
$outstr .= str_repeat(chr(9), count($stack))."$ {$v}[$$k][{$r[1][0]}] = '{$r[1][0]}测试';$LF";
$ch = "$data[". join("][][",$stack)."][{$r[1][0]}]";
if(! in_array($ch, $vars))
$vars[] = $ch;
}else
if(! in_array("$data[{$r[1][0]}]", $vars)) {
$vars[] = "$data[{$r[1][0]}]";
$outstr .= "$data[{$r[1][0]}] = '{$r[1] [0]}测试';$LF";
}
}elseif(preg_match_all("/{(w+):([^}]+)/",$v, $r)) {
$ch = $r [1][0]."({$r[2][0]})";
$define = true;
if(! @include("smarttemplate_extensions/smarttemplate_extension_serverr.php"))
$define = false;
$functions[] = array(name=>$ch,define=>$define);
foreach(split(",",$r[2][0]) as $v)
if($v [0] != '"')
if(! in_array($v, $vars)) {
$vars[] = "$data[$v]";
$outstr .= "$data[$v] = '$v测试';$LF";
}
}elseif(preg_match_all("/

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

頂上決戦! LFは2023年のOPL秋季決勝で「10冠」獲得を目指す 頂上決戦! LFは2023年のOPL秋季決勝で「10冠」獲得を目指す Jan 07, 2024 am 10:58 AM

青年は夢を追い、高みへ到達し、最後は決戦で勝敗を決める。 2023 OPL オータムファイナルは 12 月 23 日の夜、無事終了しました。ダブル L の戦いはエキサイティングで、観客から歓声が上がりました。結局、LFチームはミラーを突き破って光となり、LNGMチームに復讐し、「十冠」の獲得を目指し、伝説のチームの歴史を書き続けることに成功した。秋の決勝で再びLNGMと対戦したLFチームは、敗者グループ敗退の重圧にも耐え、決勝の第1試合で敗れた後は3連勝し、2023年OPL秋の決勝戦のスコアを3対1まで追い上げた。 . 先にマッチポイントを奪い、熾烈な決闘が始まる。秋の決勝第5回戦では、序盤から地震ナマズ2体と巫女オロチ1体のLFチームに勝敗が傾き始めた。誰もがLFが優勝すると思っていたとき、LNGは

C# の Array.Sort 関数を使用して配列を並べ替える C# の Array.Sort 関数を使用して配列を並べ替える Nov 18, 2023 am 10:37 AM

タイトル: Array.Sort 関数を使用して C# で配列を並べ替える例 本文: C# では、配列は一般的に使用されるデータ構造であり、多くの場合、配列を並べ替える必要があります。 C# には Array クラスが用意されており、このクラスには配列を簡単に並べ替えるための Sort メソッドがあります。この記事では、C# で Array.Sort 関数を使用して配列を並べ替える方法を示し、具体的なコード例を示します。まず、Array.Sort 関数の基本的な使用法を理解する必要があります。 Array.So

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

PHPのarray_merge_recursive()関数を使用するシンプルで明確な方法 PHPのarray_merge_recursive()関数を使用するシンプルで明確な方法 Jun 27, 2023 pm 01:48 PM

PHP でプログラミングする場合、多くの場合、配列をマージする必要があります。 PHP には、配列のマージを完了するための array_merge() 関数が用意されていますが、配列内に同じキーが存在する場合、この関数は元の値を上書きします。この問題を解決するために、PHP は配列をマージして同じキーの値を保持できる array_merge_recursive() 関数を言語で提供し、プログラム設計をより柔軟にします。配列マージ

PHP で array_combine 関数を使用して 2 つの配列を結合して連想配列にする方法 PHP で array_combine 関数を使用して 2 つの配列を結合して連想配列にする方法 Jun 26, 2023 pm 01:41 PM

PHP には、配列操作をより便利かつ高速にする強力な配列関数が多数あります。 2 つの配列を結合して連想配列にする必要がある場合、PHP の array_combine 関数を使用してこの操作を実行できます。この関数は、実際には、ある配列のキーを別の配列の値として新しい連想配列に結合するために使用されます。次に、PHP の array_combine 関数を使用して 2 つの配列を結合して連想配列にする方法を説明します。 array_comb について学ぶ

PHPのarray_fill()関数の使い方の詳しい説明 PHPのarray_fill()関数の使い方の詳しい説明 Jun 27, 2023 am 08:42 AM

PHP プログラミングにおいて、配列は大量のデータを簡単に処理できる非常に重要なデータ構造です。 PHP は配列関連の関数を多数提供しており、array_fill() はその 1 つです。この記事では、array_fill() 関数の使い方と実際の応用におけるヒントを詳しく紹介します。 1. array_fill() 関数の概要 array_fill() 関数の機能は、同じ値で構成される指定された長さの配列を作成することです。具体的には、この関数の構文は次のとおりです。

Python で Array モジュールを使用する方法 Python で Array モジュールを使用する方法 May 01, 2023 am 09:13 AM

Python の配列モジュールは事前定義された配列であるため、標準のリストよりもメモリ内で使用するスペースがはるかに少なく、追加、削除、インデックス付け、スライスなどの要素レベルの操作を高速に実行することもできます。さらに、配列内のすべての要素は同じ型であるため、平均値、最大値、最小値の計算など、配列が提供する効率的な数値演算関数を使用できます。さらに、配列モジュールは、配列オブジェクトのバイナリ ファイルへの直接の書き込みと読み取りもサポートしているため、大量の数値データを処理する際の効率が向上します。したがって、大量の同種データを処理する必要がある場合は、Python の配列モジュールを使用してコードの実行効率を最適化することを検討してください。配列モジュールを使用するには、まず次のことを行う必要があります。

Java での ArrayStoreException の一般的な原因は何ですか? Java での ArrayStoreException の一般的な原因は何ですか? Jun 25, 2023 am 09:48 AM

Java プログラミングでは、配列は重要なデータ構造です。配列は 1 つの変数に複数の値を格納できます。さらに重要なのは、インデックスを使用して各値にアクセスできることです。ただし、配列を操作しているときに、いくつかの例外が発生する場合があります。そのうちの 1 つは ArrayStoreException です。この記事では、ArrayStoreException 例外の一般的な原因について説明します。 1. 型の不一致 配列の作成時に要素の型を指定する必要があります。互換性のないデータ型を配列に格納しようとすると、

See all articles