以小弟我之代码示例驳斥此等评语,看看什么叫模板引擎。
以我之代码示例驳斥此等评语,看看什么叫模板引擎。。
【既然知道评价中肯,就应该明白差距在哪里了吧,每次运行都进行替换,相当程度上降低了系统性能,这样的模板引擎还有什么优势??】
【的确是有差距的,我看了一下,按照你说的一年多了,你已经累计有5次下载,和1毛钱的运营盈利。跟他这个只是会发个帖子,贴些代码,又没人下载,又没盈利的情况,差距实在太大了。】
- PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?phpclass IndexAction extends YouYaX{ public function index() { header("Content-type: text/html; charset=utf-8"); $this->assign("csdn","csdner,大家中午好") ->assign("head",array("来自","xxx")) ->assign("greet",array("<h2 id="PHP技术">PHP技术</h2>","基础编程","开放资源","framework")) ->assign("foot",array( array("id"=>'1',"foot"=>"这是底部测试1"), array("id"=>'2',"foot"=>"这是底部测试2"), array("id"=>'3',"foot"=>"这是底部测试3") )) ->assign("bye","88,good bye"); $this->display("index.html"); }}?>
- HTML code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> <title>welcome YouYaX</title> <center> <table width="400"> <!-- 普通替换 --> <tr> <td>{csdn}</td> </tr> <!-- 一维数组替换 --> <tr> <td> <loop> {head} ———— </loop> 发表在【{greet->1}】</td> </tr> <!-- 一维数组替换 --> <loop> <tr><td>{greet}</td></tr> </loop> </table> <hr> <!-- 二维数组替换 --> <list> <h3 id="foot-foot"> {foot.foot} </h3> </list> <!-- 普通替换 --> {bye} <hr> 比较测试 , 让我们在html中使用PHP吧 , 模板变量上要写上双引号 <br> <?php if( "{bye}"=="88,good bye" ){ echo "<font color=red>看吧 , 果然正确吧, 测试结束,测试者:{head->1}"; }else{ echo "错了"; } ?> </center>
------解决方案--------------------
你晒的不是模板引擎啊
------解决方案--------------------
那么你的模板引擎做了什么呢
- PHP code
//——普通替换 //单个输出数组值 // var_dump($this->array_array);exit; $return=preg_match_all('/\{[^{]*->[^{}]*}/',$txt,$single); if($return){ foreach($single[0] as $v){ $x=strlen($v); $y=$x-2; $z=substr($v,1,$y); //title->0 $z1 = preg_split('/->/', $z, -1, PREG_SPLIT_NO_EMPTY); $txt=str_replace($v,$this->array_array[$z1[0]][$z1[1]],$txt); } } //数组替换 $return=preg_match_all("/\s*(.+?)\s*/s",$txt,$match); if($return){ try{ foreach($match[1] as $lv){ if(eregi("",$lv)){ throw new Exception(htmlspecialchars("<loop>标签不能嵌套<loop>!"),"304"); break; } } }catch(Exception $e){ $this->exception($e); } $result0=$match[0]; //<loop><tr><td>{array}</td></tr></loop> 系列数组 <loop>{array2}</loop> $result1=$match[1]; //<tr><td>{array}</td></tr> 系列数组{array2} //var_dump($result1);exit; foreach($result1 as $r1){ preg_match_all("/\{(.*)\}/",$r1,$match2); $result2=$match2[0][0];//{array} $result3=$match2[1][0];//array $result4=$this->array_array[$result3];//得到的数组 try{ if(!is_array($result4)) throw new Exception(htmlspecialchars("<loop>标签解析出错,仅支持一维数组!"),"306"); /* if(empty($result4)) throw new Exception(htmlspecialchars("<loop>解析一维数组值为空!"),"308"); */ }catch(Exception $e){ $this->exception($e); } $result5=''; // unset($result5); //result5 清零 foreach($result4 as $v){ $result5.=str_replace("{".$result3."}",$v,$r1); } foreach($result0 as $r0){ if(ereg($result2,$r0)) $txt=str_replace($r0,$result5,$txt); } } } //--数组替换 //include替换 $return=preg_match_all("//",$txt,$inc); if($return){ $inc1=$inc[0];//<include file="top.html">系列数组 $inc2=$inc[1];//top.html 系列数组 foreach($inc2 as $v){ if(file_exists($v)){ $sub=file_get_contents($v); foreach($inc1 as $v1){ //区分大小写匹配 if(ereg($v,$v1)){ $txt=str_replace($v1,$sub,$txt); } } }else{ exit("include标签解析出错!"); } } }<div class="clear"> </div></include></loop></loop></loop></loop>

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

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

パート 1: 最初のトラブルシューティング手順 Apple のシステムステータスを確認する: 複雑な解決策を掘り下げる前に、基本から始めましょう。問題はデバイスにあるのではなく、Apple のサーバーがダウンしている可能性があります。 Apple のシステム ステータス ページにアクセスして、AppStore が適切に動作しているかどうかを確認してください。問題があれば、Apple が修正してくれるのを待つしかありません。インターネット接続を確認します。「AppStore に接続できません」問題は接続不良が原因である場合があるため、安定したインターネット接続があることを確認してください。 Wi-Fi とモバイル データを切り替えるか、ネットワーク設定をリセットしてみてください ([一般] > [リセット] > [ネットワーク設定のリセット] > [設定])。 iOS バージョンを更新します。

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

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

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

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