国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim Backend-Entwicklung PHP-Tutorial [PHP Template Engine] Prototyp-Prototyp-Version ver?ffentlicht!

[PHP Template Engine] Prototyp-Prototyp-Version ver?ffentlicht!

Aug 08, 2016 am 09:31 AM
gt include lt php template

Zu Beginn des Artikels m?chte ich mich zun?chst bei denen entschuldigen, die mir gefolgt sind! Denn ursprünglich war geplant, die erste Version der PHP-Template-Engine unmittelbar nach der Ver?ffentlichung des Frontend-Frameworks 5.0 fertigzustellen. Aber ich konnte es nicht schaffen und es hat bis zum Neujahrstag 2015 gedauert. Ich sch?me mich sehr für meinen ernsthaften Aufschub, und es tut mir noch einmal leid!

Ich habe bereits gesagt, dass die entsprechenden API-Verwendungsanweisungen in Zukunft gleichzeitig mit der Ver?ffentlichung von Artikeln ver?ffentlicht werden, aber ich denke, das ist nicht gut genug und die Blog-Plattform ist nicht sehr benutzerfreundlich für die Verarbeitung und Anzeige von Tabellen, was dazu führt Da die API nicht perfekt dargestellt wird, habe ich vor, nur API-Links bereitzustellen. über den Link k?nnen Sie direkt auf meine offizielle Website zugreifen, um das Handbuch zu lesen. Zukünftig werden in den ver?ffentlichten Artikeln einige API-bezogene Nutzungsanweisungen aktualisiert und einige kleine Beispiele bereitgestellt, sodass jeder beim Lesen der API auch anhand praktischer Beispiele ein tieferes Verst?ndnis für die verschiedenen Verwendungen und Gesch?ftslogikideen des Codes erlangen kann!

Im Folgenden finden Sie das API-Handbuch und einen Beispiel-Demonstrationslink

【Beispieldemonstration】:http://www.shibuyi.net/demo/php/template_engine/prototype

【Offizielles API-Benutzerhandbuch】: http://www.shibuyi.net/api/php/template_engine/prototype

[Pers?nliche offizielle Website des Autors]: http://www.shibuyi.net

Das Folgende ist ein Tutorial zur Verwendung der PHP-Template-Engine. Prototyp-Prototypversion, die als Template-Engine bezeichnet wird!

Was? Sie wissen nicht, was eine Template-Engine ist? Einige PHP-Neulinge stellen diese Frage m?glicherweise, daher werde ich sie einfach beantworten. Die Template-Engine ist eigentlich eine Middleware-Technologie von PHP, die die traditionelle Web-dynamische Website-Programmierung vereinfacht. Warum sagen Sie das? War es früher nicht einfach? Das liegt daran, dass vor dem Aufkommen von Template-Engines fast alle Webserver-Programmierer ihre Arbeit mit gemischtem Code abgeschlossen haben. Der sogenannte gemischte Code bedeutet, dass eine Seite beides enth?lt: PHP, HTML und sogar Codes in anderen Sprachen Erweitert sich, ist der Zeitaufwand für Entwicklung und Wartung extrem hoch, es ist fehleranf?llig und die Grafik und das Programm werden nicht gut zusammenarbeiten. Wenn der Künstler das Programm überhaupt nicht versteht, ist es im Grunde unm?glich, es zu lesen die gemischte Datei. Die Geburt der Template-Engine hat dieses Problem sehr gut gel?st. Es nutzt die Template-Engine-Technologie, um den Code der PHP-Gesch?ftslogik und den Code der Pr?sentationsschicht in der gemischten Datei gut zu trennen. Programmierer k?nnen beruhigt Programme entwerfen, w?hrend Künstler beruhigt Schnittstellen entwerfen k?nnen. Ein besonderes Symbol des Template-Tags wird für die Zuordnung verwendet, damit die Vorlagen-Engine die Vorlagendatei nach dem Lesen reibungslos kompilieren kann. Es gibt bereits viele recht ausgereifte Template-Engines für PHP auf dem Markt, wie z. B. die Smarty-Template-Engine usw. Auch andere Webserver-Sprachen verfügen über eigene entsprechende Template-Engines oder den Template-Engines ?hnliche Middleware-Technologien.

Für eine detaillierte Einführung in die Template-Engine empfehlen wir Ihnen, die Baidu-Enzyklop?die zu besuchen: http://baike.baidu.com/view/4258079.htm

Bevor Sie die Template-Engine erlernen, müssen Sie zun?chst sicherstellen, dass Sie das OOP-Denken (objektorientierte Programmierung) von PHP verstanden haben, da die Template-Technologie mithilfe des OOP-Denkens beschrieben wird. Wenn Sie OOP nicht verstehen, ist dies in diesem Artikel nicht der Fall Geeignet für Sie zum Lesen, weil die Schwelle zu hoch ist!

Das erste Bild, das Sie sehen, ist das Verzeichnisstrukturdiagramm der Template-Engine (der Autor verwendet die integrierte Entwicklungsumgebung ZendStudio 7.2.1):

1. Caches ist das Vorlagen-Cache-Verzeichnis (wenn die Vorlagen-Engine nicht vorhanden ist, wird sie zum ersten Mal automatisch generiert).

2. Klassen ist die Kernklassenbibliothek der Template-Engine;

3. Compiles ist das Vorlagenkompilierungsverzeichnis (wenn die Vorlagen-Engine nicht vorhanden ist, wird sie zum ersten Mal automatisch generiert).

4. Konstanten ist das Vorlagenkonstantenverzeichnis (wenn die Vorlagen-Engine nicht vorhanden ist, wird sie zum ersten Mal automatisch generiert);

5. Enth?lt das Verzeichnis für die Vorlage

6. templates ist das Vorlagendateiverzeichnis (wenn die Template-Engine nicht vorhanden ist, wird sie zum ersten Mal automatisch generiert).

Nachdem wir das Verzeichnis der Template-Engine verstanden haben, schauen wir uns an, wie man es zum Laufen bringt. In der Prototypversion sind die relevanten Initialisierungs- und Konfigurationsinformationen der Template-Engine in der Datei Includes/template.inc.php enthalten (Sie k?nnen den Quellcode ?ffnen, um ihn auszuprobieren).

Tats?chlich wird die Konfiguration der Template-Engine auch als Initialisierungsprozess bezeichnet. Der erste Schritt der Initialisierung besteht darin, das entsprechende Verzeichnis so zu konfigurieren, dass die Template-Engine die Daten im Verzeichnis korrekt lesen und schreiben kann (Sie k?nnen frei w?hlen). Die Konfigurationsschritte müssen gem?? meiner Bestellung konfiguriert werden, sie müssen jedoch vor der Instanziierung der Vorlagen-Engine abgeschlossen sein, da sie sonst ungültig sind. Wir gehen davon aus, dass sich die Konfiguration im selben Verzeichnis wie die Vorlagen-Engine befindet Wenn es sich nicht um dasselbe Verzeichnis handelt, muss die Konfiguration des Stammverzeichnisses angepasst werden.

1. Der erste Schritt besteht darin, das Stammverzeichnis der Template-Engine zu konfigurieren. Wenn nicht festgelegt, wird der absolute Pfad zum Stammverzeichnis automatisch generiert.

2. Konfigurieren Sie das Vorlagendateiverzeichnis. Dieses Verzeichnis wird zum Speichern von Vorlagendateien verwendet. Wenn es nicht festgelegt ist, ist es das Vorlagenverzeichnis.

Template :: <span>$rootPath</span> = <span>dirname</span>(<span>__FILE__</span>); <span>//</span><span> 相對(duì)與絕對(duì)路徑均可,我們這里則采用絕對(duì)路徑!如:"C:/wwwroot/prototype"</span>

3. 配置編譯文件目錄,這是用來(lái)存在模板文件被解析后生成的編譯文件,如果不設(shè)置則默認(rèn)為:compiles 目錄。

Template :: <span>$compileName</span> = '/compiles/'; <span>//</span><span> 和模板目錄一樣也采用默認(rèn)目錄。</span>

4. 配置緩存文件目錄,這是在模板引擎開(kāi)啟緩存功能后,用來(lái)存在編譯文件生成的緩存文件,如果不設(shè)置默認(rèn)為:caches 目錄。

Template :: <span>$cacheName</span> = '/caches/'; <span>//</span><span> 一樣使用默認(rèn)</span>

5. 配置模板常量目錄,可能大家不太理解模板常量是用來(lái)干嘛的,和普通的PHP常量有什么區(qū)別嗎?關(guān)于模板常量的解釋,在接下來(lái)的運(yùn)用在我們?cè)谠敿?xì)探討,這里就先跟我進(jìn)行配置即可,如果不設(shè)置默認(rèn)為:constants 目錄。

Template :: <span>$constantName</span> = '/constants/'; <span>//</span><span> 使用默認(rèn)</span>

6. 到第六步為止,目錄的配置就全部完成了,大家不用擔(dān)心目錄不存在的問(wèn)題,也不用手動(dòng)去創(chuàng)建,模板引擎內(nèi)部會(huì)自動(dòng)幫我們完成。那么接下來(lái)就是設(shè)置模板常量的文件名稱,如果不設(shè)置則默認(rèn)為:default.xml 文件。

<span>//</span><span> 我們也采用默認(rèn),但大家要注意的是這里必須采用 .xml 為擴(kuò)展名,因?yàn)槌A课募且?XML 標(biāo)記描述的,如果不是 .xml 結(jié)尾,那么可能會(huì)導(dǎo)致模板引擎在處理常量時(shí)出現(xiàn)異常情況!</span>
Template :: <span>$constantFile</span> = 'default.xml';

7. 設(shè)置緩存開(kāi)關(guān),緩存默認(rèn)情況下是被關(guān)閉的,只有我們?nèi)ピO(shè)置他,才會(huì)開(kāi)啟。

<span>//</span><span> 大家注意,這里我寫(xiě)的是一個(gè)布爾值,其實(shí)這里可以填寫(xiě)任意值,最終都會(huì)被隱式轉(zhuǎn)換為布爾值,寫(xiě) 0 或 1 都可以,我直接寫(xiě)布爾值是為了方便大家的理解!</span>
Template :: <span>$cacheSwitch</span> = <span>true</span>;

8. 至此模板引擎的配置基本上就已經(jīng)全部完成了,還是很簡(jiǎn)單的?,F(xiàn)在我們只需要實(shí)例化出模板引擎對(duì)象,就可以真正的運(yùn)行模板引擎了。

<span>$tpl</span> = <span>new</span> Template(); <span>//</span><span> 實(shí)例化出模板引擎,從這一步開(kāi)始之前的配置全部生效,模板引擎實(shí)例化時(shí)不需要傳遞任何參數(shù)。</span>

9. 在實(shí)例化出模板引擎對(duì)象以后,我們就可以開(kāi)始對(duì)其進(jìn)行操作,那么對(duì)誰(shuí)進(jìn)行操作呢?當(dāng)然是模板文件了,首先我們要先創(chuàng)建模板文件。在模板文件目錄中進(jìn)行創(chuàng)建。模板文件其實(shí)是純 HTML 代碼文件,擴(kuò)展名可以自定義,而我們約定俗成,都已 .tpl 為擴(kuò)展名。假設(shè)我們已經(jīng)創(chuàng)建了一個(gè)模板文件名為:index.tpl,因?yàn)楹臀覀兊?php 業(yè)務(wù)邏輯文件 index.php 同名,這也是按照慣例約定俗成,因?yàn)?index.php 文件調(diào)用 index.tpl 模板,見(jiàn)名知意。

10. 在創(chuàng)建了模板文件之后,我們就可以在業(yè)務(wù)文件(之前的配置也都是在 index.php 中執(zhí)行的)中進(jìn)行對(duì)模板文件的加載以及注入模板變量,關(guān)于模板變量和其他的模板標(biāo)識(shí)符(又統(tǒng)稱模板標(biāo)記)將在接下來(lái)的步驟中逐一講解。

<span>//</span><span> 注入變量的格式有兩種,大家注意看 API 手冊(cè)的說(shuō)明,數(shù)組格式與傳統(tǒng)的鍵值對(duì)格式均可以,我們兩種都使用一下。</span>
<span>$tpl</span> -> assign('title', '頭銜'); <span>//</span><span> 首先是傳統(tǒng)鍵值對(duì)格式</span>

<span>$tpl</span> -> assign(<span>array</span>('title' => '頭銜', 'name' => '名稱')); <span>//</span><span> 數(shù)組格式明顯要更加好用一些,因?yàn)樵谧⑷攵鄠€(gè)變量時(shí),就可以不用寫(xiě)多個(gè)注入語(yǔ)句,一句話就搞定了。

// 如果出現(xiàn)了兩個(gè)一模一樣的變量名稱,那么其后會(huì)將之前的給替換掉。以下代碼,最終 language 變量的值為:英文。</span>
<span>$tpl</span> -> assign(<span>array</span>('language' => '中文', 'language' => '英文'<span>));

</span><span>//</span><span> 接下來(lái)是加載模板文件,直接寫(xiě)模板名稱即可,模板引擎會(huì)自動(dòng)鎖定到模板文件目錄。</span>
<span>$tpl</span> -> display('index.tpl');

11. 至此對(duì)模板引擎的操作就結(jié)束了,接下來(lái)我們將熟悉一下模板文件中的各個(gè)模板標(biāo)記的使用方法,他們都是用來(lái)做什么的。在原型版中模板標(biāo)記一共有 9 種,分別為:1. 模板變量、2. 模板常量、3. 單行模板注釋、4. 多行模板注釋、5. include 文件加載、6. template 模板文件加載、7. source 源模板文件加載(較為特殊)、8. if 分歧語(yǔ)句、9. foreach 循環(huán)語(yǔ)句。那么我們首先解釋一下模板變量吧。

<span><</span><span>div </span><span>id</span><span>="main"</span><span>></span>
    <span><!--</span><span> 剛剛我們注入了 title 變量,那么模板在模板文件中就可以對(duì)其進(jìn)行調(diào)用了,調(diào)用方法就是保持同名,按著這樣的格式抒寫(xiě)即可{$模板變量名稱}</span><span>--></span>
    <span><!--</span><span> 模板變量的命名規(guī)范與 PHP 普通變量一模一樣,首位不能為數(shù)字,且區(qū)分大小寫(xiě),注意保證格式的正確性,如果錯(cuò)誤模板引擎將不會(huì)對(duì)其進(jìn)行解析 </span><span>--></span>
    <span><</span><span>a </span><span>href</span><span>="###"</span><span>></span>{$title}<span></</span><span>a</span><span>></span> <span><!--</span><span> 正確的格式,被正確解析 </span><span>--></span>
    <span><</span><span>a </span><span>href</span><span>="###"</span><span>></span>{$123}<span></</span><span>a</span><span>></span> <span><!--</span><span> 錯(cuò)誤的格式,無(wú)法解析 </span><span>--></span>
<span></</span><span>div</span><span>></span>

12. 下面是模板常量的使用,模板常量和 PHP 常量雖然名字上都叫他常量,其實(shí)本質(zhì)上并非一回事。模板常量其實(shí)看以看做是偽常量,而并非真正的常量,他是通過(guò)對(duì) XML 標(biāo)記的處理,來(lái)保持一組特定不變的值,這些值需要手動(dòng)的添加到常量文件中。(手動(dòng)添加其實(shí)不太方便,筆者會(huì)在其后的版本迭代中,加入自動(dòng)添加的功能)

首先我們需要在模板常量文件中手動(dòng)添加模板常量,代碼如下:

<span><?</span><span>xml version="1.0" coding="utf-8" </span><span>?></span>
<span><</span><span>root</span><span>></span>
    <span><!--</span><span> 必須在 root 根標(biāo)記中間進(jìn)行添加,而且一個(gè)標(biāo)記字母都不能出錯(cuò),注意區(qū)分大小寫(xiě),如果不慎寫(xiě)錯(cuò),模板引擎將無(wú)法對(duì)其進(jìn)行獲取 </span><span>--></span>
    <span><</span><span>constant</span><span>></span>
        <span><</span><span>key</span><span>></span>WEBNAME<span></</span><span>key</span><span>></span> <span><!--</span><span> 這里填寫(xiě)常量名稱注意字母必須全部大寫(xiě),第一位不能為數(shù)字,格式與 PHP 定義常量一樣 </span><span>--></span>
        <span><</span><span>value</span><span>></span>網(wǎng)站標(biāo)題<span></</span><span>value</span><span>></span> <span><!--</span><span> 值可以為空 </span><span>--></span>
    <span></</span><span>constant</span><span>></span>
    
    <span><</span><span>constant</span><span>></span>
        <span><</span><span>key</span><span>></span>123abc<span></</span><span>key</span><span>></span> <span><!--</span><span> 錯(cuò)誤的常量名 </span><span>--></span>
        <span><</span><span>value</span><span>></</span><span>value</span><span>></span> <span><!--</span><span> 空值 </span><span>--></span>
    <span></</span><span>constant</span><span>></span>
<span></</span><span>root</span><span>></span>

?配置好常量后,接下來(lái)就是在模板文件中進(jìn)行調(diào)用,代碼如下:

<span><!--</span><span> 模板常量的調(diào)用和變量類似,只是取消了 $ 符號(hào),另外常量名要保持一致 </span><span>--></span>
<span><</span><span>title</span><span>></span>{WEBANME}<span></</span><span>title</span><span>></span> <span><!--</span><span> 正確的名稱,將被正確解析 </span><span>--></span>
<span><</span><span>p</span><span>></span>{NAME}<span></</span><span>p</span><span>></span> <span><!--</span><span> 雖然格式正確,但剛才沒(méi)有進(jìn)行 NAME 常量的配置,因此最終解析后會(huì)返回一個(gè)空值 </span><span>--></span>
<span><</span><span>p</span><span>></span>{abc123}<span></</span><span>p</span><span>></span> <span><!--</span><span> 錯(cuò)誤的名稱,無(wú)法解析 </span><span>--></span>

13. 下面是模板的注釋符,有兩種:一種為單行,一種為多行。多用于對(duì)模板文件代碼的注解,可以讓美工配合設(shè)計(jì)界面的時(shí)候了解代碼的實(shí)際含義。

<span><!--</span><span> 大家可以把模板注釋放到 HTML 注釋中,這樣美工在設(shè)置模板頁(yè)面的時(shí)候會(huì)更加一目了然。</span><span>--></span>
<span><!--</span><span> 單行注釋的格式是:{@}內(nèi)容可寫(xiě)可不寫(xiě),但不寫(xiě)也就沒(méi)有意義了 </span><span>--></span><span>
{@ 普通的單行注釋} </span><span><!--</span><span> 正確的格式 </span><span>--></span>
<span><!--</span><span> {@ HTML 代碼中的單行注釋} </span><span>--></span> <span><!--</span><span> 正確的格式 </span><span>--></span><span>
{@ 換行的
單行注釋} </span><span><!--</span><span> 格式錯(cuò)誤,單行注釋無(wú)法換行,模板引擎無(wú)法解析 </span><span>--></span>

<span><!--</span><span> 多行注釋的格式是:{#}...{/#}一頭一尾要呼應(yīng),內(nèi)容也可以不寫(xiě) </span><span>--></span><span>
{#}這是多行行注釋,注意首位呼應(yīng)!{/#} </span><span><!--</span><span> 正確的格式 </span><span>--></span><span>
{#}這是多行行注釋,
我換行了!{/#} </span><span><!--</span><span> 正確的格式 </span><span>--></span><span>
{#} 沒(méi)有寫(xiě)結(jié)尾符號(hào) </span><span><!--</span><span> 錯(cuò)誤的格式,模板引擎無(wú)法解析 </span><span>--></span>

14. 模板加載標(biāo)識(shí)符,加載方式分為三類,別分為:include 對(duì)普通文件的直接加載;template 對(duì)模板文件進(jìn)行編譯后加載;source 對(duì)模板文件進(jìn)行編譯后直接輸出編譯文件的路徑(此方法較為特殊且并不完美,需要在特定的場(chǎng)合中使用,比如:框架頁(yè)面的調(diào)用)

首先是對(duì)普通文件的加載調(diào)用,代碼如下:

<span><!--</span><span> 注意抒寫(xiě)格式,被直接加載的文件多半是 php 文件,且文件必須要存在,不存在的文件,模板引擎將會(huì)給出一個(gè)錯(cuò)誤提示,并且終止代碼的執(zhí)行 </span><span>--></span>
<span><!--</span><span> 文件名前后的引號(hào),單雙引號(hào)都可以,但必須保持一致,不能一單一雙,否則模板引擎將不會(huì)對(duì)其解析 </span><span>--></span><span>
{include path = "test.php"} </span><span><!--</span><span> 正確的格式,將被解析 </span><span>--></span><span>
{include path = 'abc.php"} </span><span><!--</span><span> 錯(cuò)誤的格式,無(wú)法被解析 </span><span>--></span>
<span><!--</span><span> 如果出現(xiàn)了同一個(gè)文件被加載了兩次,那么模板引擎只會(huì)對(duì)其加載第一次后,自動(dòng)忽略其后的加載 </span><span>--></span><span>
{include path = "123.php"} </span><span><!--</span><span> 第一次被加載成功 </span><span>--></span><span>
{include path = "123.php"} </span><span><!--</span><span> 與上一個(gè)文件同屬一個(gè)文件,將無(wú)法被再次加載,而被自動(dòng)忽略 </span><span>--></span>

下面是對(duì)模板文件的編譯加載,代碼如下:

<span><!--</span><span> 格式與 include 方式基本一樣,就不重復(fù)闡述了,不一樣的是 include 是需要給出具體的路徑地址,而 template 則只需要給出模板名稱即可,模板引擎會(huì)自動(dòng)找到該模板文件 </span><span>--></span><span>
{template path = 'test.tpl'} </span><span><!--</span><span> 正確的格式,將會(huì)被編譯后加載 </span><span>--></span>

最后就是模板文件的編譯地址的輸出,該功能較特殊,即使不理解也沒(méi)關(guān)系,該方法有嚴(yán)重的 BUG 尚未處理完畢,因此并不完美,且使用的概率也極低,這里只做簡(jiǎn)單的介紹。在其后的版本迭代中,是否會(huì)保留并完善,尚在定奪,代碼如下:

<span><!--</span><span> 這里我們將使用 iframe 框架頁(yè)面,來(lái)調(diào)用 source 加載方法,調(diào)用格式與前兩種雷同,就不在闡述 </span><span>--></span>
<span><!--</span><span> 這樣使用其實(shí)就可以了,但又嚴(yán)重的 BUG 出現(xiàn),原因是所有在 frame.tpl 中注入的模板標(biāo)記被解析后,將無(wú)法找到源頭,也就是說(shuō) php 將無(wú)法對(duì)其正確處理,并且因?yàn)闊o(wú)法找到源頭,而會(huì)報(bào)錯(cuò),該 BUG 的解決方案還在研究中,這里僅提供給大家思考 </span><span>--></span>
<span><</span><span>iframe </span><span>src</span><span>="{source path = 'frame.tpl'}"</span><span>></</span><span>iframe</span><span>></span>

15. 接下來(lái)是經(jīng)常會(huì)被用到的 if 分歧語(yǔ)句,他和 php 的 if 語(yǔ)句很類似,但功能上卻很簡(jiǎn)單,且不支持多重判斷以及嵌套判斷,但我會(huì)在其后的版本迭代中讓其功能逐步強(qiáng)大。

<span><!--</span><span> if 語(yǔ)句的格式其實(shí)和多行注釋一樣,一定要注意首位呼應(yīng),但大小寫(xiě)無(wú)所謂都能夠支持和 PHP 原生的 if 語(yǔ)句是一樣的。 </span><span>--></span><span>
{if $action} </span><span><!--</span><span> 只要被注入的 {$action} 變量的值為 true,或隱式轉(zhuǎn)換后為 true,那么 if 語(yǔ)句中的代碼將被顯示 </span><span>--></span>
<span><</span><span>p</span><span>></span>界面1<span></</span><span>p</span><span>></span><span>
{/if}

{if !$action} </span><span><!--</span><span> 加入了邏輯非的判斷,只要為 false 則被顯示 </span><span>--></span>
<span><</span><span>p</span><span>></span>界面2<span></</span><span>p</span><span>></span><span>
{/if}

{if $action} </span><span><!--</span><span> 雙層判斷的時(shí)候,為 true 時(shí)顯示界面1,為 false 時(shí)顯示界面2 </span><span>--></span>
<span><</span><span>p</span><span>></span>界面1<span></</span><span>p</span><span>></span><span>
{else}
</span><span><</span><span>p</span><span>></span>界面2<span></</span><span>p</span><span>></span><span>
{/if}

{if $action} </span><span><!--</span><span> 錯(cuò)誤的格式,沒(méi)有結(jié)尾,不會(huì)被模板引擎解析 </span><span>--></span>

16. 終于到了最后的也是復(fù)雜的 foreach 循環(huán)語(yǔ)句的調(diào)用了,其功能和 PHP 一樣,只是格式上稍有改動(dòng)。

<span><!--</span><span> 注意在調(diào)用 foreach 和 if 一樣要收尾呼應(yīng),而且如果變量不是數(shù)組格式,那么 php 將會(huì)自動(dòng)報(bào)出一個(gè)錯(cuò)誤 </span><span>--></span>
<span><!--</span><span> 其中 $array 就是被注入的模板變量,注意要是數(shù)組格式;而 key 和 value 則是對(duì)于的數(shù)組中的鍵值對(duì),必須寫(xiě),否則格式不正確,將無(wú)法被模板引擎解析 </span><span>--></span><span>
{foreach $array(key, value)}
    </span><span><</span><span>p</span><span>></span>{%key} ... {%value}<span></</span><span>p</span><span>></span> <span><!--</span><span> 注意 key 和 value 可以自定義,但一定要同名調(diào)用,否則無(wú)法被解析 </span><span>--></span><span>
{/foreach}

{foreach $userList(id, username)}
    </span><span><</span><span>p</span><span>></span>{%id} ... {%username}<span></</span><span>p</span><span>></span> <span><!--</span><span> 自定義的 key 和 value,格式正確 </span><span>--></span>
    <span><</span><span>p</span><span>></span>{%password}<span></</span><span>p</span><span>></span> <span><!--</span><span> 錯(cuò)誤的格式,并沒(méi)有被定義,因此無(wú)法被解析 </span><span>--></span><span>
{/foreach}</span>

Okay, ich kann aufatmen, nachdem ich das geschrieben habe. Das Tutorial zur Prototypversion der Template-Engine endet hier. Obwohl der Tutorial-Artikel sehr detailliert ist, wird empfohlen, ihn zusammen mit dem API-Handbuch und dem Beispielcode zu lesen, damit der Effekt besser und einfacher zu verstehen und zu beherrschen ist. Da es sich um einen Artikel handelt, ist der Text natürlich abstrakt und erfordert von jedem mehr praktische Arbeit. Für Anf?nger mit geringen praktischen F?higkeiten ist dieser lehrreiche Artikel nicht von gro?em Nutzen Stattdessen war ich verwirrt und am Ende sogar angewidert, also dachte ich, dass ich, wenn es in Zukunft m?glich w?re, nachdem die Versionsiteration und -aktualisierung ein bestimmtes Niveau erreicht h?tte, eine Reihe gezielter Lehrvideos produzieren würde Damit sie nicht so abstrakt sind, k?nnen Anf?nger sie schnell erlernen.

Wenn Sie es von Anfang bis Ende lesen, dann danke ich Ihnen wirklich für das Lesen. Bitte hinterlassen Sie mir unten eine Nachricht Rechtzeitige Nachricht. Vielen Dank für Ihre Unterstützung.

Das Obige stellt die Ver?ffentlichung der Prototypversion von [PHP Template Engine] Prototype vor! Ich hoffe, dass es Freunden, die sich für PHP-Tutorials interessieren, hilfreich sein wird, einschlie?lich relevanter Inhalte.

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276
PHP nennt AI intelligente Sprachassistenten PHP Voice Interaction System Construction PHP nennt AI intelligente Sprachassistenten PHP Voice Interaction System Construction Jul 25, 2025 pm 08:45 PM

Benutzerspracheingabe wird erfasst und über die Mediarecorder-API des Front-End-JavaScript an das PHP-Backend gesendet. 2. PHP speichert das Audio als tempor?re Datei und ruft STTAPI (z. B. Google oder Baidu Voiceerkennung) auf, um sie in Text umzuwandeln. 3. PHP sendet den Text an einen KI -Dienst (wie OpenAigpt), um intelligente Antwort zu erhalten. 4. PHP ruft dann TTSAPI (wie Baidu oder Google Voice -Synthese) auf, um die Antwort in eine Sprachdatei umzuwandeln. 5. PHP streams die Sprachdatei zurück zum Spielen, um die Interaktion abzuschlie?en. Der gesamte Prozess wird von PHP dominiert, um eine nahtlose Verbindung zwischen allen Links zu gew?hrleisten.

So verwenden Sie PHP, um soziale Freigabefunktionen zu erstellen. PHP Sharing Interface Integration Practice So verwenden Sie PHP, um soziale Freigabefunktionen zu erstellen. PHP Sharing Interface Integration Practice Jul 25, 2025 pm 08:51 PM

Die Kernmethode zum Aufbau sozialer Freigabefunktionen in PHP besteht darin, dynamisch Freigabelinks zu generieren, die den Anforderungen jeder Plattform entsprechen. 1. Erhalten Sie zuerst die aktuelle Seite oder die angegebenen URL- und Artikelinformationen. 2. Verwenden Sie Urlencode, um die Parameter zu codieren. 3.. Splei? und generieren Teilenverbindungen gem?? den Protokollen jeder Plattform; 4. Zeigen Sie Links im vorderen Ende an, damit Benutzer klicken und freigeben k?nnen. 5. generieren Sie Dynamik OG -Tags auf der Seite, um die Anzeige der Freigabe inhaltlich zu optimieren. 6. Achten Sie darauf, dass Sie den Benutzereingaben entkommen, um XSS -Angriffe zu verhindern. Diese Methode erfordert keine komplexe Authentifizierung, weist nur geringe Wartungskosten auf und eignet sich für die meisten Anforderungen an den Inhaltsaustausch.

So verwenden Sie PHP in Kombination mit AI, um die Erkennung und Optimierung der Textfehlerkorrektur PHP -Syntax zu erreichen So verwenden Sie PHP in Kombination mit AI, um die Erkennung und Optimierung der Textfehlerkorrektur PHP -Syntax zu erreichen Jul 25, 2025 pm 08:57 PM

Um die Textfehlerkorrektur und die Syntaxoptimierung mit AI zu realisieren, müssen Sie die folgenden Schritte ausführen: 1. W?hlen Sie ein geeignetes AI -Modell oder ein geeignetes AI -Modell oder ein geeignetes AI -Modell wie Baidu, Tencent API oder Open Source NLP -Bibliothek aus; 2. Rufen Sie die API über die Curl oder das Guzzle von PHP auf und verarbeiten Sie die Rückgabeergebnisse. 3.. Informationen zur Fehlerkorrektur in der Anwendung anzeigen und erm?glichen den Benutzern, zu w?hlen, ob sie angenommen werden sollen. 4. Verwenden Sie PHP-L und PHP_CODESNIFFER für die Syntaxerkennung und -codeoptimierung. 5. sammeln Sie kontinuierlich Feedback und aktualisieren Sie das Modell oder die Regeln, um den Effekt zu verbessern. Konzentrieren Sie sich bei der Auswahl von AIAPI auf die Bewertung von Genauigkeit, Reaktionsgeschwindigkeit, Preis und Unterstützung für PHP. Die Codeoptimierung sollte den PSR -Spezifikationen folgen, Cache vernünftigerweise verwenden, zirkul?re Abfragen vermeiden, den Code regelm??ig überprüfen und x verwenden

PHP erstellt ein Blog-Kommentarsystem zur Monetarisierung von PHP-Kommentarbewertung und Anti-Brush-Strategie PHP erstellt ein Blog-Kommentarsystem zur Monetarisierung von PHP-Kommentarbewertung und Anti-Brush-Strategie Jul 25, 2025 pm 08:27 PM

1. Maximierung des kommerziellen Wertes des Kommentarsystems erfordert die Kombination der pr?zisen Lieferung native Werbung, benutzerbezahlte Wertsch?pfungsdienste (z. B. Bilder hochladen, Aufladungskommentare), den Incentive-Mechanismus basierend auf der Qualit?t der Kommentare und der Anonymen Daten Insight-Monetarisierung von Compliance; 2. Die Prüfungsstrategie sollte eine Kombination aus dynamischer Keyword-Filterung und Benutzerkennungsmechanismen vorab der Auditing einsetzen, die durch die Qualit?t der Kommentarqualit?t erg?nzt werden, um die hierarchische Inhaltsbelastung zu erreichen. 3. Die Anti-Pushing erfordert die Konstruktion einer mehrschichtigen Verteidigung: Recaptchav3 sensorlose überprüfung, Honeypot-Honeypot-Feldkennungroboter, IP und Zeitstempelfrequenzgrenze verhindert die Bew?sserung, und die Erkennung von Inhalten markiert verd?chtige Kommentare und st?ndig mit Angriffen.

So verwenden Sie PHP, um KI zu kombinieren, um Bild zu generieren. PHP generiert automatisch Kunstwerke So verwenden Sie PHP, um KI zu kombinieren, um Bild zu generieren. PHP generiert automatisch Kunstwerke Jul 25, 2025 pm 07:21 PM

PHP führt nicht direkt die KI-Image-Verarbeitung durch, sondern integriert sich über APIs, da es in der Webentwicklung und nicht in Bezug auf Computerintensive Aufgaben gut ist. Die API -Integration kann die professionelle Arbeitsteilung erreichen, die Kosten senken und die Effizienz verbessern. 2. Integration von Schlüsseltechnologien umfasst die Verwendung von Guzzle oder Curl zum Senden von HTTP-Anforderungen, JSON-Datencodierung und -decodierung, API-Schlüsselsicherheitsauthentifizierung, asynchroner Warteschlangenverarbeitungsaufgaben, robuster Fehlerbehebung und Wiederholungsmechanismus, Bildspeicherung und Anzeige. 3. Die gemeinsamen Herausforderungen sind API -Kosten au?er Kontrolle, unkontrollierbare Erzeugungsergebnisse, schlechte Benutzererfahrung, Sicherheitsrisiken und schwieriges Datenmanagement. In den Antwortstrategien werden Benutzerquoten und -darstellungen festgelegt, die Auswahl von ProPT-Anleitungen und mehrfizierende Auswahl, asynchrone Benachrichtigungen und Fortschrittsaufforderungen, wichtige Speicher- und Inhaltsprüfungen sowie Cloud-Speicher vorhanden.

PHP realisiert Rohstoffbestandsverwaltung und Monetarisierung PHP -Inventarsynchronisation und Alarmmechanismus PHP realisiert Rohstoffbestandsverwaltung und Monetarisierung PHP -Inventarsynchronisation und Alarmmechanismus Jul 25, 2025 pm 08:30 PM

PHP sorgt für die Inventarabzugsatomizit?t durch Datenbanktransaktionen und Forupdate -Reihenschl?sser, um eine hohe gleichzeitige überverl?ssigkeit zu verhindern. 2. Multi-Plattform-Inventarkonsistenz h?ngt von zentraler Verwaltung und ereignisgesteuerter Synchronisation ab, die API/Webhook-Benachrichtigungen und Nachrichtenwarteschlangen kombiniert, um eine zuverl?ssige Datenübertragung sicherzustellen. 3. Der Alarmmechanismus sollte in verschiedenen Szenarien niedrige Lagerbest?nde, Null/Negativ -Inventar, unerwünschte Verkaufszyklen, Nachschubzyklen und abnormale Schwankungsstrategien festlegen und die Auswahl von Dingtalk, SMS oder E -Mail -Verantwortlichen gem?? der Dringlichkeit ausw?hlen, und die Alarminformationen müssen vollst?ndig und frei sein, um die Anpassung und die Vergewaltigungsreaktion zu erreichen.

Jenseits des Lampenstacks: Rolle von PHP in der modernen Enterprise -Architektur Jenseits des Lampenstacks: Rolle von PHP in der modernen Enterprise -Architektur Jul 27, 2025 am 04:31 AM

PhpisstillrelevantinMoDernEnterpriseEnvironments.1.ModerPhp (7.xand8.x) Angebote, strenge, jitkompilation und moderne Syntax, machte ma?geschneiderte Foreiglableforlarge-ScaleApplikationen

So erstellen Sie eine PHP NGINX -Umgebung mit macOS, um die Kombination von NGINX- und PHP -Diensten zu konfigurieren So erstellen Sie eine PHP NGINX -Umgebung mit macOS, um die Kombination von NGINX- und PHP -Diensten zu konfigurieren Jul 25, 2025 pm 08:24 PM

Die Kernrolle von Homebrew bei der Konstruktion der Mac -Umgebung besteht darin, die Installation und Verwaltung der Software zu vereinfachen. 1. Homebrew verarbeitet automatisch Abh?ngigkeiten und verkapselt komplexe Kompilierungs- und Installationsprozesse in einfache Befehle. 2. Bietet ein einheitliches Softwarepaket -?kosystem, um die Standardisierung des Software -Installationsorts und der Konfiguration zu gew?hrleisten. 3. Integriert Service -Management -Funktionen und kann Dienste leicht über Brewservices starten und stoppen. 4. Bequemes Software -Upgrade und -wartung und verbessert die Sicherheit und Funktionalit?t der Systeme.

See all articles