ウェブ|プログラム|テンプレート
大規模な PHP Web アプリケーションを設計したことのある開発者は、おそらく次のような経験があるでしょう。ハイパーテキスト ステートメントの作成、ページのフォーマット、アーティストとしての作業、またはプログラム コードと HTML 静的ページの統合に多くの時間を費やしました。とても時間がかかります。確かに、スクリプト言語を使ったWebアプリケーション開発では、データ処理とデータ表示を分離するのは容易ではありませんが、複数人で連携する場合、データと表示を分離できないと、開発効率や開発効率に大きな影響を及ぼします。専門的な分業。この問題を解決するために、PHP も独自の解決策を提供しています。この記事では主に PHPLIB の Template クラスを紹介します。
1 テンプレート処理クラスの設計
テンプレート処理クラスは主に以下の作業を行う必要があります:
・テンプレートファイルから表示用のHTMLコードを読み込みます。
・テンプレートファイルと実際に生成されたデータを組み合わせて出力結果を生成します。
·複数のテンプレートを同時に処理できます。
·テンプレートのネストを許可します。
·テンプレートの個々の部分の処理を許可します。
上記のタスクを要約すると、テンプレート クラスの設計目標は次のとおりです。表示された HTML コードを複数のテンプレート ファイルから読み取り、これらの表示コード内の動的データが必要な部分を PHP プログラムによって計算されたデータに置き換えて、次のようになります。特定のシーケンシャル出力。このうち交換部品は自由に設定可能です。
ファイルを読み込んで表示用のHTMLコードを読み込みます
テンプレートファイルとデータの組み合わせは定期的な置換を使用します
複数のテンプレートの処理は配列ストレージによって実装されます。
テンプレートのネスティングを実装する主なアイデアは、テンプレートと出力 (中間分析結果) を同等に扱い、両方を置換に使用できることです。
テンプレートファイルにアノテーションを設定し、定期置換時にアノテーションを組み合わせることで部分置換を実現することで、各部品の処理を制御します。
2 テンプレート処理クラスの実装
詳細なコメント付きの合計 345 行のコードは、PHPLib の Template.inc を参照してください。研究と参照のための主な関数をいくつか示します:
1) 関数 set_file ($handle, $filename=" ") 77 行目、ファイルの読み取り
2) 関数 set_var ($varname, $value = "") 119 行目、マッピングの設定data - 変数を置換します
3) 関数 set_block($parent, $handle, $name = "") 96 行目、アノテーションを設定します
4) 関数 subst($handle) 136 行目、データ置換を実行します
5) 関数 parse( $target , $handle, $append = false) 165行目、テンプレートファイルとデータの組み合わせを実行します
6) 関数p($varname) 268行目、処理結果を出力します
注: 私はphp-lib7.2cのTemplateをダウンロードしました。 inc ファイルの 95 行目に「/」がありませんが、追加すると正常に動作します。
3 テンプレート処理クラスの使用
3.1 最も基本的な例
簡単のため、テンプレートファイル、テンプレートを使用した PHP ファイル、およびテンプレート処理クラスファイルがすべて同じディレクトリに配置されていると仮定します。 PHPLIB では、ihtml サフィックスをテンプレート ファイルのサフィックスとして使用するのが習慣です。
使用するテンプレート ファイルは次のとおりです:
現在時刻は {currenttime} です!
注: テンプレート ファイルは通常の HTML ファイルと似ていますが、唯一の違いは、「{}」で囲まれていることです。 " は、テンプレート処理クラスで置き換えることができる動的コンテンツを持つ変数です。
次に、テンプレート処理クラスを使用して上記のテンプレートを処理します:
//Template クラスを導入します
include("template.inc");
//置換する必要があるデータを取得します
$timeNow =date(" Y-m-d H:i:s",time());
//テンプレート クラスをインスタンス化します
$template= new Template();
//test.ihtml テンプレートをロードします
$template-> set_file(" handle1","test.ihtml");
//テンプレート内の現在時刻を $timeNow の値に置き換えます
$template->set_var("currenttime",$timeNow);
//実際の実行テンプレート操作
$template->parse("output","handle1");
//最終結果を出力します
$template->gt;p("output");
?>
注: PHPLIB Template クラスのみを使用したい場合は、ファイル ヘッダーに Template.inc クラスを含めるだけです。
Template オブジェクトを作成するときは、新しいテンプレート ("/htdocs/apps/templates/") などのテンプレート ファイルのパスを指定できます。デフォルトは現在のパスです。
3.2 テンプレートのネストとブロック設定
次の例は PHPLIB リファレンス マニュアルから引用したもので、より包括的です。ここで説明する必要があるのは、ブロックを設定する目的はネストとは関係がないということですが、この例には両方が含まれています。よくお読みください。ブロック設定は、この状況を回避するためのものです。本来はテンプレート ファイル (固定ページ) で完了できるコンテンツを部分的にループする必要があるため、ループされたコンテンツの一部を抽出して別のテンプレート ファイルに作成します。考えてください。ブロック設定を使用しない場合、この例では 3 つのテンプレート ファイルが必要ですか?
テンプレートファイル1、page.ihtml
{PAGETITLE}
{OUT} | コンテンツ |
模板文例2,box.ihtml
{NUM } | {BIGNUM} |

许多用户在选择智能手表的时候都会选择的华为的品牌,其中华为GT3pro和GT4都是非常热门的选择,不少用户都很好奇华为GT3pro和GT4有什么区别,下面就就给大家介绍一下二者。华为GT3pro和GT4有什么区别一、外观GT4:46mm和41mm,材质是玻璃表镜+不锈钢机身+高分纤维后壳。GT3pro:46.6mm和42.9mm,材质是蓝宝石玻璃表镜+钛金属机身/陶瓷机身+陶瓷后壳二、健康GT4:采用最新的华为Truseen5.5+算法,结果会更加的精准。GT3pro:多了ECG心电图和血管及安

为什么截图工具在Windows11上不起作用了解问题的根本原因有助于找到正确的解决方案。以下是截图工具可能无法正常工作的主要原因:对焦助手已打开:这可以防止截图工具打开。应用程序损坏:如果截图工具在启动时崩溃,则可能已损坏。过时的图形驱动程序:不兼容的驱动程序可能会干扰截图工具。来自其他应用程序的干扰:其他正在运行的应用程序可能与截图工具冲突。证书已过期:升级过程中的错误可能会导致此issu简单的解决方案这些适合大多数用户,不需要任何特殊的技术知识。1.更新窗口和Microsoft应用商店应用程

第1部分:初始故障排除步骤检查苹果的系统状态:在深入研究复杂的解决方案之前,让我们从基础知识开始。问题可能不在于您的设备;苹果的服务器可能会关闭。访问Apple的系统状态页面,查看AppStore是否正常工作。如果有问题,您所能做的就是等待Apple修复它。检查您的互联网连接:确保您拥有稳定的互联网连接,因为“无法连接到AppStore”问题有时可归因于连接不良。尝试在Wi-Fi和移动数据之间切换或重置网络设置(“常规”>“重置”>“重置网络设置”>设置)。更新您的iOS版本:

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

Go语言是一种越来越受欢迎的编程语言,它的语法简洁,性能高效,易于开发。Go语言中提供了强大的模板引擎——"text/template",但是在使用时,有些人可能会遇到"undefined:template.Must"的错误,下面是解决该错误的方法。导入正确的包在使用"text/template"模板引擎时,需要导入"text/templat

Golang和Template包:创建个性化的用户界面在现代的软件开发中,用户界面往往是用户与软件进行互动的最直接的途径。为了提供一个好用、美观的用户界面,开发者需要灵活的工具来创建和定制用户界面。而在Golang中,开发者可以使用Template包来实现这一目标。本文将介绍Golang和Template包的基本用法,并通过代码示例展示如何创建个性化的用户界

通过Golang的Template包实现数据可视化随着大数据时代的到来,数据可视化成为了信息处理和分析的重要手段之一。数据可视化能够以简洁直观的方式展现数据,帮助人们更好地理解和分析数据。在Golang中,我们可以使用Template包来实现数据可视化功能。本文将介绍如何利用Golang的Template包实现数据可视化,并提供代码示例。Golang的Tem

watch4pro和gt各自具有不用的特点和适用场景,如果注重功能的全面性、高性能和时尚外观,同时愿意承担较高的价格,那么Watch 4 Pro可能更适合。如果对功能要求不高,更注重电池续航和价格的合理性,那么GT系列可能更适合。最终的选择应根据个人需求、预算和喜好来决定,建议在购买前仔细考虑自己的需求,并参考各种产品的评测和比较,以做出更明智的选择。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。
