ここにコードを投稿するのはこれが初めてです。このコードは主に PHP テンプレート エンジン テクノロジの研究用です。現在はコンパイルされたバージョンしかありません。さらに多くの意見や最適化のヒントを提供していただければ幸いです。
ファイルとしてフォーマットする方法がわからないので、コピーすることしかできません。
index.phpは設定ファイルです、見れば誰でも理解できます
index.html 使用例
Templates.class.php 基本クラス キャッシュの完全なバージョンが後でリリースされる予定ですが、友人や専門家の指導により、このテンプレート エンジンはコンパイルとキャッシュ、その他の考慮事項を処理するだけで済みます。当面は考慮されません。もちろん、通常の置換モードにも f、w などを追加する必要があります。 。 。 友達が私の Q: を研究してくれることを願っています
Copy_3_of_Templates.class.php ファイルにキャッシュ メソッドが追加されました。プロジェクト内の一部のページをキャッシュする必要があるかどうかは考慮されていません。将来、友達が私に参加できることを願っています。
header('Content-Type:text/html;charset=utf-8'); define('ROOT_HOST',dirname(__FILE__));define('HTML_DIR',ROOT_HOST. '/moban/');define('COMPILED_DIR',ROOT_HOST.'/data/compiled/');define('CACHE_DIR',ROOT_HOST.'/data/cache/');// buffer define('NEW_CACHE', false);//バッファを開くかどうかを決定します NEW_CACHE? ob_start(): null;//テンプレート クラスを導入します require ROOT_HOST.'/lib/Templates.class.php' ; $_moban = new Templates();$array = array(a=>'こんにちは',b=>'あまり上手ではありませんが、とても寂しいです',c=> 「みんなここにいるよ、家にいるのに、どうしてまだ私がいなくて寂しいの?」);$xcvu = 'こんにちは、XCVU です';
$zmq = "こんにちは";
$title = "これは XCVU ですテンプレートエンジンのカスタマイズ方法!" ;
$ling = "「関数」が変更されているため???????????????";
$_moban->assign('ling' , $ling);
$ _moban->assign('title',$title);
$_moban->assign('zmq', $zmq);
$_moban->assign('xcvu', $ xcvu);
$_moban->assign('abc',5>4);
$_moban->assign('array', $array);
$_moban->display('index.html') ;
?>
コードをコピー
- < ;/title>
- *{ margin:0; padding:0;}
- body{ color:#fff; .index {マージン:0 自動; 幅:960px; 背景:#fff; 高さ:50px; パディング:20px; カラー:#000; :none;}
- .index a:hover{ color:#F0F;}
- <スパンスタイル="color:#000;">BBBasd何を言えばいいのかわからない、でも言いたいことがある< br />
-
-
-
-
-
-
No.1
-
-
いいえ。 2
-
-
-
- ........
-
-
-
-
- コードをコピー
-
- /* about:Richard.z
- * site:http://www.zmq.cc
- * E_mail:code@zmq.cc
- * date:2013/01/02/17: 30
- * */
- class Templates{
- private $_CaChe;
- private $_Compiled;
- private $_HtmlFile;
- private $_FileVar;
- private $_KeyArr = array();
-
- public function __construct(){
- if(! is_dir(HTML_DIR) || !is_dir(COMPILED_DIR) || !is_dir(CACHE_DIR)){
- exit('ディレクトリが存在しません!');
- }
- }
-
- public function assign($_var, $_value){
- if(isset($_var) && !empty($_var)){
- $this->_KeyArr[$_var] = $_value;
- }else{
- exit('値を設定してください!');
- }
- }
-
- public function display($_File){
- //設置モジュールの量
- $this->_HtmlFile = HTML_DIR.$_File;
- //設置モジュール
- $this->Compiled = COMPILED_DIR.md5($ _File).$_File.'.php';
- //設置缓存
- $this->_CaChe = CACHE_DIR.md5($_File).$_File.'.html';
- //模板の有無判断
- if( !file_exists($this->_HtmlFile)){
- exit('テンプレート ファイルが存在しません');
- }
- //赋值和判断读取
- if(!$this->_FileVar = file_get_contents($this- >_HtmlFile)){
- exit('テンプレート ファイルの読み取りエラー!');
- }
- //コンパイル済みファイルの日付を編集する場合 < date HtmlFile
- if(!file_exists($this->_Compiled) || filemtime($this->_Compiled) < filemtime($this->_HtmlFile)){
- $this->Set_Comilled();
- }
- //コンパイル済みを含める
- include $this->_Compiled;
- }
-
- //パブリック関数
- パブリック関数 Set_Comilled(){
- $this->SetArr();
- $this->SetInclude();
- if(!file_put_contents($this->>_Compiled, $this ->_FileVar)){
- exit('コンパイルされたファイルでエラーが発生しました!');
- }
- }
- //arr
- プライベート関数 SetArr(){
- $_preaa = array(
- '//',
- '//',
- '//',
- '//',
- '//',
- '//',
- '//',
- '//');
- $_prebb = array(
- ' _KeyArr["$1"];?>',
- '_KeyArr["$1"]) {?>',
- '',
- '',
- '_KeyArr["$1"] as $$2=>$$3) { ?>',
- ' ',
- '',
- '');
- $this->_FileVar = preg_replace($_preaa, $_prebb, $this->_FileVar);
- if(preg_match($_preaa[0], $this->_FileVar)){
- $this->_FileVar = $this->SetArr ($this->_FileVar);
- }
- }
-
- //Include
- プライベート関数 SetInclude(){
- $_preFile = '//';
- if(preg_match($_preFile, $this->_FileVar,$_File)){
- if(!file_exists($_File[1]) || empty($_File)){
- exit('インクルード ファイル エラーです!');
- }
- $this->_FileVar = preg_replace($_preFile, "", $this->_FileVar);
- }
- }
-
- }
- ?>
复制代
- /* about:Richard.z
- * site:http://www.zmq.cc
- * E_mail:code@zmq.cc
- * date:2013/01/02/17: 30 || 2013/01/14/21:35
- * */
- class Templates{
- private $_CaChe;
- private $_Compiled;
- private $_HtmlFile;
- private $_FileVar;
- private $_KeyArr = array();
-
- public function __construct(){
- if(!is_dir(HTML_DIR) || !is_dir(COMPILED_DIR) || !is_dir(CACHE_DIR)){
- exit('ディレクトリが存在しません!');
- }
- }
-
- public function assign ($_var, $_value){
- if(isset($_var) && !empty($_var)){
- $this->_KeyArr[$_var] = $_value;
- }else{
- exit('設定してくださいあなたの値!');
- }
- }
-
- public function display($_File){
- //設置モジュールの变量
- $this->_HtmlFile = HTML_DIR.$_File;
- //設置编译
- $this-> ;_Compiled = COMPILED_DIR.md5($_File).$_File.'.php';
- //設置保存
- $this->_CaChe = CACHE_DIR.md5($_File).$_File.'.html';
- / / テンプレートが存在するかどうか判断
- if(!file_exists($this->_HtmlFile)){
- exit('テンプレートファイルが存在しません');
- }
- //赋值和判断读取
- if(!$this-> ;_FileVar = file_get_contents($this->_HtmlFile)){
- exit('テンプレート ファイルの読み取りエラー!');
- }
- //if edit コンパイル済みファイルの日付 < date HtmlFile
- if(!file_exists($this->_Compiled) || filemtime($this->_Compiled) < filemtime($this->_HtmlFile)){
- $this->Set_Comilled();
- }
- //Compiledを含める
- include $this->_Compiled;
- $this->SetCaChe();
- }
-
- //再生成したい場合の設定キャッシュファイル
- private function SetCaChe(){
- if(!file_exists($this->_CaChe) || filemtime($this->_CaChe) < filemtime($this->_Compiled)){
- if(NEW_CACHE){
- file_put_contents($this-> _CaChe, ob_get_contents());
- ob_end_clean();
- include $this->_CaChe;
- }
- }
- }
-
- // public function
- public function Set_Comilled(){
- $this->SetArr();
- $this->SetInclude();
- if(!file_put_contents($this->_Compiled, $this->_FileVar)){
- exit('コンパイルされたファイルでエラーが発生しました!');
- }
- }
- / /arr
- プライベート関数 SetArr(){
- $_preaa = array(
- '//',
- '//',
- '//',
- '//' ,
- '//',
- '//',
- '//',
- '/
ホットAIツール
Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ
AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。
人気の記事
レポ:チームメイトを復活させる方法
4週間前
By 尊渡假赌尊渡假赌尊渡假赌
ホットツール
メモ帳++7.3.1
使いやすく無料のコードエディター
ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
ドリームウィーバー CS6
ビジュアル Web 開発ツール
SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
ホットトピック
11ベストPHP URLショートナースクリプト(無料およびプレミアム)
Mar 03, 2025 am 10:49 AM
多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります
Instagram APIの紹介
Mar 02, 2025 am 09:32 AM
2012年のFacebookによる有名な買収に続いて、Instagramはサードパーティの使用のために2セットのAPIを採用しました。これらはInstagramグラフAPIとInstagram Basic Display APIです。
Laravelでフラッシュセッションデータを使用します
Mar 12, 2025 pm 05:08 PM
Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。
データは、デフォルトで次の要求のためにのみ持続します。
$リクエスト -
LaravelのバックエンドでReactアプリを構築する:パート2、React
Mar 04, 2025 am 09:33 AM
これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります
Laravelテストでの簡略化されたHTTP応答のモッキング
Mar 12, 2025 pm 05:09 PM
Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。
基本的な実装は、さまざまな応答タイプのショートカットを提供します。
Illuminate \ support \ facades \ httpを使用します。
http :: fake([[
'google.com' => 'hello world'、
'github.com' => ['foo' => 'bar']、
'forge.laravel.com' =>
PHPのカール:REST APIでPHPカール拡張機能を使用する方法
Mar 14, 2025 am 11:42 AM
PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します
Codecanyonで12の最高のPHPチャットスクリプト
Mar 13, 2025 pm 12:08 PM
顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします
2025 PHP状況調査の発表
Mar 03, 2025 pm 04:20 PM
2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています
See all articles
|