欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

PHP網(wǎng)頁模板的實現(xiàn)方法和裝置與流程

文檔序號:12176481閱讀:460來源:國知局
PHP網(wǎng)頁模板的實現(xiàn)方法和裝置與流程

本發(fā)明涉及互聯(lián)網(wǎng)網(wǎng)站開發(fā)技術(shù)領(lǐng)域,具體而言,涉及一種PHP網(wǎng)頁模板的實現(xiàn)方法和裝置。



背景技術(shù):

HTML(Hypertext Markup Language,超文本標(biāo)記語言)是一種為“網(wǎng)頁創(chuàng)建和其它可在網(wǎng)頁瀏覽器中看到的信息”而設(shè)計的標(biāo)記語言。HTML是一種基礎(chǔ)技術(shù),常與CSS(Cascading Style Sheets,層疊樣式表)、JavaScript一起被眾多網(wǎng)站用于設(shè)計令人賞心悅目的網(wǎng)頁、網(wǎng)頁應(yīng)用程序以及移動應(yīng)用程序的用戶界面。網(wǎng)頁瀏覽器可以讀取HTML文件,并將其渲染成可視化網(wǎng)頁。HTML描述了網(wǎng)站的結(jié)構(gòu)語義隨著線索的呈現(xiàn),使之成為一種標(biāo)記語言而非編程語言。

PHP是一種開源的通用計算機腳本語言,尤其適用于網(wǎng)絡(luò)開發(fā)并可嵌入HTML中使用。PHP的語法借鑒吸收C語言、Java和Perl等流行計算機語言的特點,易于一般程序員學(xué)習(xí)。PHP的主要目標(biāo)是允許網(wǎng)絡(luò)開發(fā)人員快速編寫動態(tài)頁面,初始的開發(fā)模板是混合層的數(shù)據(jù)編程,網(wǎng)頁呈現(xiàn)邏輯(視圖)還會有HTML代碼和PHP程序強耦合在一起。PHP腳本的編寫者必須既是網(wǎng)頁設(shè)計者,又是PHP開發(fā)者。但實際情況是,多數(shù)Web開發(fā)人員要么是精通網(wǎng)頁設(shè)計,能夠設(shè)計出漂亮的網(wǎng)頁外觀,但是編寫的PHP代碼很糟糕;要么僅熟悉PHP編程,能夠?qū)懗鼋训腜HP代碼,但是設(shè)計的網(wǎng)頁外觀很難看,具備兩種才能的開發(fā)人員很少見。

針對上述HTML代碼和PHP程序強耦合的問題,現(xiàn)有技術(shù)提供了“模板引擎”技術(shù),模板引擎技術(shù)將美工頁面(HTML代碼)指定為模板文件,并將這個模板文件中有活動的內(nèi)容,如數(shù)據(jù)庫輸出、用戶交互等部分,定義成使用特殊“定界符”包含的“變量”,該特殊定界符如{},然后放在模板文件中相應(yīng)的位置。當(dāng)用戶瀏覽時,由PHP腳本程序打開該模板文件,并將模板文件中定義的變量進行替換。這樣,模板中的特殊變量被替換為不同的動態(tài)內(nèi)容時,就會輸出需要的頁面。

然而,上述“模板引擎”技術(shù)中,通常大量地使用單獨的特定標(biāo)記,例如上述定界符,導(dǎo)致代碼轉(zhuǎn)換過程的冗余度較高,降低了代碼轉(zhuǎn)換效率。



技術(shù)實現(xiàn)要素:

有鑒于此,本發(fā)明實施例的目的在于提供一種PHP網(wǎng)頁模板的實現(xiàn)方法和裝置,以提高代碼的轉(zhuǎn)換效率。

第一方面,本發(fā)明實施例提供了一種PHP網(wǎng)頁模板的實現(xiàn)方法,包括:將HTML模板中的代碼內(nèi)容加載至PHP初始化文件中,其中,該HTML模板中,指定屬性的元素上添加有設(shè)定標(biāo)簽,該指定屬性包括控制屬性和包含其它文件屬性;從PHP初始化文件中查找是否存在屬性為變量的元素或含有上述設(shè)定標(biāo)簽的元素;如果存在屬性為變量的元素,按照設(shè)定的變量代碼轉(zhuǎn)換方式,將查找到的屬性為變量的元素轉(zhuǎn)換為PHP代碼;如果存在含有上述設(shè)定標(biāo)簽的元素,按照設(shè)定的移除代碼轉(zhuǎn)換方式,將查找到的含有上述設(shè)定標(biāo)簽的元素轉(zhuǎn)換為PHP代碼;將完成所有屬性為變量的元素和含有上述設(shè)定標(biāo)簽的元素轉(zhuǎn)換后的PHP初始化文件作為PHP網(wǎng)頁模板。

結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第一種可能的實施方式,其中,上述設(shè)定標(biāo)簽為設(shè)定字符串和連字符的組合,該組合添加至指定屬性的元素的開頭位置;或者,上述設(shè)定標(biāo)簽為下劃線符號,該下劃線符號添加至指定屬性的元素的底部位置。

結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第二種可能的實施方式,其中,按照設(shè)定的變量代碼轉(zhuǎn)換方式,將查找到的屬性為變量的元素轉(zhuǎn)換為PHP代碼包括:按照設(shè)定的變量代碼轉(zhuǎn)換方式:{{$變量}}轉(zhuǎn)換為<?php echo$變量?>,將查找到的屬性為變量的元素設(shè)置于上述<?php echo$變量?>格式中的$變量所在位置。

結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第三種可能的實施方式,其中,按照設(shè)定的移除代碼轉(zhuǎn)換方式,將查找到的含有上述設(shè)定標(biāo)簽的元素轉(zhuǎn)換為PHP代碼包括:判斷含有上述設(shè)定標(biāo)簽的元素的屬性是否為控制屬性,該控制屬性包括:條件控制屬性和循環(huán)控制屬性;如果是,獲取含有上述設(shè)定標(biāo)簽的元素的屬性值;在含有上述設(shè)定標(biāo)簽的元素之前添加<?php上述屬性值的控制字段(上述屬性值):?>,在含有上述設(shè)定標(biāo)簽的元素之后添加<?php end上述控制字段;?>;當(dāng)屬性值為條件控制屬性時,控制字段為if或else,當(dāng)屬性值為循環(huán)控制屬性時,控制字段為foreach或for;移除含有上述設(shè)定標(biāo)簽的元素。

結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第四種可能的實施方式,其中,按照設(shè)定的移除代碼轉(zhuǎn)換方式,將查找到的含有上述設(shè)定標(biāo)簽的元素轉(zhuǎn)換為PHP代碼包括:判斷含有上述設(shè)定標(biāo)簽的元素的屬性是否為包含其它文件屬性;如果是,獲取含有上述設(shè)定標(biāo)簽的元素的屬性值;在含有上述設(shè)定標(biāo)簽的元素之后添加<?php include(上述屬性值)?>;移除含有上述設(shè)定標(biāo)簽的元素。

第二方面,本發(fā)明實施例還提供一種PHP網(wǎng)頁模板的實現(xiàn)裝置,包括:代碼加載模塊,用于將HTML模板中的代碼內(nèi)容加載至PHP初始化文件中,其中,該HTML模板中,指定屬性的元素上添加有設(shè)定標(biāo)簽,指定屬性包括控制屬性和包含其它文件屬性;元素查找模塊,用于從PHP初始化文件中查找是否存在屬性為變量的元素或含有上述設(shè)定標(biāo)簽的元素;第一轉(zhuǎn)換模塊,用于當(dāng)元素查找模塊查找到存在屬性為變量的元素時,按照設(shè)定的變量代碼轉(zhuǎn)換方式,將查找到的屬性為變量的元素轉(zhuǎn)換為PHP代碼;第二轉(zhuǎn)換模塊,用于當(dāng)元素查找模塊查找到存在含有上述設(shè)定標(biāo)簽的元素時,按照設(shè)定的移除代碼轉(zhuǎn)換方式,將查找到的含有上述設(shè)定標(biāo)簽的元素轉(zhuǎn)換為PHP代碼;網(wǎng)頁模板確定模塊,用于將完成所有屬性為變量的元素和含有上述設(shè)定標(biāo)簽的元素轉(zhuǎn)換后的PHP初始化文件作為PHP網(wǎng)頁模板。

結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第一種可能的實施方式,其中,上述設(shè)定標(biāo)簽為設(shè)定字符串和連字符的組合,該組合添加至指定屬性的元素的開頭位置;或者,上述設(shè)定標(biāo)簽為下劃線符號,該下劃線符號添加至指定屬性的元素的底部位置。

結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第二種可能的實施方式,其中,第一轉(zhuǎn)換模塊還用于按照設(shè)定的變量代碼轉(zhuǎn)換方式:{{$變量}}轉(zhuǎn)換為<?php echo$變量?>,將查找到的屬性為變量的元素設(shè)置于上述<?php echo$變量?>格式中的$變量所在位置。

結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第三種可能的實施方式,其中,第二轉(zhuǎn)換模塊包括:第一屬性判斷單元,用于判斷含有上述設(shè)定標(biāo)簽的元素的屬性是否為控制屬性,該控制屬性包括:條件控制屬性和循環(huán)控制屬性;第一屬性值獲取單元,用于當(dāng)?shù)谝粚傩耘袛鄦卧呐袛嘟Y(jié)果為是時,獲取含有上述設(shè)定標(biāo)簽的元素的屬性值;第一添加單元,用于在含有上述設(shè)定標(biāo)簽的元素之前添加<?php上述屬性值的控制字段(上述屬性值):?>,在含有上述設(shè)定標(biāo)簽的元素之后添加<?php end上述控制字段;?>;當(dāng)屬性值為條件控制屬性時,控制字段為if或else,當(dāng)屬性值為循環(huán)控制屬性時,控制字段為foreach或for;第一移除單元,用于移除含有上述設(shè)定標(biāo)簽的元素。

結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第四種可能的實施方式,其中,第二轉(zhuǎn)換模塊包括:第二屬性判斷單元,用于判斷含有上述設(shè)定標(biāo)簽的元素的屬性是否為包含其它文件屬性;第二屬性值獲取單元,用于當(dāng)?shù)诙傩耘袛鄦卧呐袛嘟Y(jié)果為是時,獲取含有上述設(shè)定標(biāo)簽的元素的屬性值;第二添加單元,用于在含有上述設(shè)定標(biāo)簽的元素之后添加<?php include(上述屬性值)?>;第二移除單元,用于移除含有上述設(shè)定標(biāo)簽的元素。

本發(fā)明實施例提供的上述方法和裝置中,通過將HTML模板中的代碼內(nèi)容加載至PHP初始化文件中,能夠在PHP初始化文件中對屬性為變量的元素或含有設(shè)定標(biāo)簽的元素進行代碼轉(zhuǎn)換,得到PHP代碼,進而得到PHP網(wǎng)頁模板,整個PHP網(wǎng)頁模板實現(xiàn)過程中,僅對屬性為變量的元素或含有設(shè)定標(biāo)簽的元素(即屬性為控制屬性和包含其它文件屬性)進行轉(zhuǎn)換,且設(shè)定標(biāo)簽為添加在控制屬性和包含其它文件屬性的元素上的,提升了元素的識別效率,進而提升了代碼的轉(zhuǎn)換效率和準(zhǔn)確度。

為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細(xì)說明如下。

附圖說明

為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。

圖1示出了本發(fā)明實施例提供的PHP網(wǎng)頁模板的實現(xiàn)方法的流程示意圖;

圖2示出了本發(fā)明實施例提供的PHP網(wǎng)頁模板的實現(xiàn)方法的移除代碼轉(zhuǎn)換方式的流程示意圖;

圖3示出了本發(fā)明實施例提供的PHP網(wǎng)頁模板的實現(xiàn)裝置的結(jié)構(gòu)示意圖;

圖4示出了本發(fā)明實施例提供的PHP網(wǎng)頁模板的實現(xiàn)裝置的第二轉(zhuǎn)換模塊的結(jié)構(gòu)示意圖;

圖5示出了本發(fā)明實施例提供的PHP網(wǎng)頁模板的實現(xiàn)裝置的另一種第二轉(zhuǎn)換模塊的結(jié)構(gòu)示意圖。

具體實施方式

為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細(xì)描述并非旨在限制要求保護的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例?;诒景l(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

下面結(jié)合附圖,對本發(fā)明的具體實施方式作詳細(xì)說明。

實施例1

參見圖1所示的一種PHP網(wǎng)頁模板的實現(xiàn)方法流程圖,該方法應(yīng)用于服務(wù)器端,包括以下步驟:

步驟S102,將HTML模板中的代碼內(nèi)容加載至PHP初始化文件中。其中,該HTML模板中,指定屬性的元素上添加有設(shè)定標(biāo)簽,該指定屬性包括控制屬性(例如條件屬性或循環(huán)屬性)和包含其它文件屬性。

在本實施例中上述設(shè)定標(biāo)簽可以為設(shè)定字符串和連字符的組合,例如data-或data_,該組合優(yōu)選添加至上述指定屬性的元素的開頭位置;或者,上述設(shè)定標(biāo)簽為下劃線符號,該下劃線符號添加至指定屬性的元素的底部位置。

上述PHP初始化文件可以通過初始化一個PHP的DOMDocument得到,也可以是預(yù)先構(gòu)建好的PHP初始化文件。

步驟S104,從PHP初始化文件中查找是否存在屬性為變量的元素或含有上述設(shè)定標(biāo)簽的元素,如果存在屬性為變量的元素,執(zhí)行步驟S106;如果存在含有上述設(shè)定標(biāo)簽的元素,執(zhí)行步驟S108。

本實施例中的元素指HTML元素,是從開始標(biāo)簽(start tag)到結(jié)束標(biāo)簽(end tag)中的代碼。

步驟S106,按照設(shè)定的變量代碼轉(zhuǎn)換方式,將查找到的屬性為變量的元素轉(zhuǎn)換為PHP代碼。

設(shè)定的變量代碼轉(zhuǎn)換方式可以根據(jù)需要靈活制定,符合PHP代碼規(guī)則即可。例如當(dāng)HTML模板中的代碼為:{{$變量}};轉(zhuǎn)換為PHP代碼:<?php echo$變量?>。

步驟S108,按照設(shè)定的移除代碼轉(zhuǎn)換方式,將查找到的含有上述設(shè)定標(biāo)簽的元素轉(zhuǎn)換為PHP代碼。

上述設(shè)定的移除代碼轉(zhuǎn)換方式也可以靈活制定,符合PHP代碼規(guī)則即可。例如:當(dāng)HTML模板中的代碼為:<div data-if=”$變量==1”>內(nèi)容</div>,轉(zhuǎn)換為PHP代碼:<?php if(true):?><div>內(nèi)容</div><?php endif;?>。

步驟S110,將完成所有屬性為變量的元素和含有上述設(shè)定標(biāo)簽的元素轉(zhuǎn)換后的PHP初始化文件作為PHP網(wǎng)頁模板。

本實施例提供的方法,通過將HTML模板中的代碼內(nèi)容加載至PHP初始化文件中,能夠在PHP初始化文件中對屬性為變量的元素或含有設(shè)定標(biāo)簽的元素進行代碼轉(zhuǎn)換,得到PHP代碼,進而得到PHP網(wǎng)頁模板,整個PHP網(wǎng)頁模板實現(xiàn)過程中,僅對屬性為變量的元素或含有設(shè)定標(biāo)簽的元素(即屬性為控制屬性和包含其它文件屬性)進行轉(zhuǎn)換,且設(shè)定標(biāo)簽為添加在控制屬性和包含其它文件屬性的元素上的,提升了元素的識別效率,進而提升了代碼的轉(zhuǎn)換效率和準(zhǔn)確度。

針對存在屬性為變量的元素的情況,本實施例按照設(shè)定的變量代碼轉(zhuǎn)換方式進行如下代碼轉(zhuǎn)換:

將{{$變量}}轉(zhuǎn)換為<?php echo$變量?>,將查找到的屬性為變量的元素設(shè)置于上述<?php echo$變量?>格式中的$變量所在位置。

舉例如下(其中div為示例標(biāo)簽,在實際中可是其他標(biāo)簽):

模板示例:{{$變量}}

轉(zhuǎn)換得到的PHP代碼:<?php echo$變量?>

實現(xiàn)方式:將字符串“$變量”替換為“echo$變量”,將{{替換成<?php,將}}替換成?>。

針對上述設(shè)定標(biāo)簽的元素的屬性為控制屬性或包含其它文件屬性這兩種情況,本實施例給出了具體的轉(zhuǎn)換方式,參見圖2所示的移除代碼轉(zhuǎn)換方式的具體流程圖,包括:

步驟S202,判斷含有上述設(shè)定標(biāo)簽的元素的屬性是否為控制屬性,具體地,該控制屬性包括:條件控制屬性和循環(huán)控制屬性。如果是,執(zhí)行步驟S204;如果否,說明上述設(shè)定標(biāo)簽的元素的屬性為包含其它文件屬性,執(zhí)行步驟S214。

上述元素的屬性提供了有關(guān)HTML元素的更多的信息。屬性總是以名稱/值對的形式出現(xiàn),比如:name="value",name為屬性名稱,"value"為對應(yīng)的屬性值。通常屬性在HTML元素的開始標(biāo)簽中規(guī)定。

步驟S204,獲取含有設(shè)定標(biāo)簽的元素的屬性值,即獲取屬性為控制屬性的元素的屬性值。

步驟S206,在含有上述設(shè)定標(biāo)簽的元素之前添加<?php上述屬性值的控制字段(上述屬性值):?>,在含有上述設(shè)定標(biāo)簽的元素之后添加<?php end上述控制字段;?>。

其中,條件控制屬性的控制字段為if或else,循環(huán)控制屬性的控制字段為foreach或for。

步驟S208,移除含有上述設(shè)定標(biāo)簽的元素。

當(dāng)上述設(shè)定標(biāo)簽的元素的屬性為包含其它文件屬性時,執(zhí)行以下步驟:

步驟S214,獲取含有上述設(shè)定標(biāo)簽的元素的屬性值,即獲取上述屬性為包含其它文件屬性的元素的屬性值。

步驟S216,在含有上述設(shè)定標(biāo)簽的元素之后添加<?php include(上述屬性值)?>。

步驟S218,移除含有上述設(shè)定標(biāo)簽的元素。

根據(jù)上述移除代碼轉(zhuǎn)換方式,下面以設(shè)定標(biāo)簽為設(shè)定字符串和連字符的組合為例進行說明,該設(shè)定字符串和連字符的組合具體為data-,即HTML5中標(biāo)準(zhǔn)的自定義屬性?,F(xiàn)舉例如下(其中div為示例標(biāo)簽,在實際中可是其他標(biāo)簽):

1、條件控制模板示例:

<div data-if=”$變量==1”>內(nèi)容</div>

轉(zhuǎn)換方式:

初始化一個PHP的DOMDocument,加載模板內(nèi)容,使用PHP的DOMXpath查找所有含有屬性data-if的元素,循環(huán)處理這些元素,對于每個元素,執(zhí)行以下操作:

首先,獲取此元素的data-if的值,下稱屬性值;

其次,使用PHP的Dom處理功能,在此元素之前加入文本節(jié)點,內(nèi)容為<?php if(屬性值):?>;

再次,使用PHP的Dom處理功能,在此元素之后加入文本節(jié)點,內(nèi)容為<?php endif;?>;

然后,使用PHP的Dom處理功能,移除data-if屬性;

最后,將DOMDocument存儲為PHP字符串,DOMDocument中的PHP代碼:

<?php if(true):?><div>內(nèi)容</div><?php endif;?>

2、循環(huán)控制模板示例:

<div data-foreach=”$列表as$值”>{{$值}}</div>

轉(zhuǎn)換方式:

初始化一個PHP的DOMDocument,加載模板內(nèi)容,使用PHP的DOMXpath查找所有含有屬性data-foreach的元素,循環(huán)處理這些元素,對于每個元素,執(zhí)行以下操作:

首先,獲取此元素的data-foreach的值,下稱屬性值;

其次,使用PHP的Dom處理功能,在此元素之前加入文本節(jié)點,內(nèi)容為<?php foreach(屬性值):?>;

再次,使用PHP的Dom處理功能,在此元素之后加入文本節(jié)點,內(nèi)容為<?php endforeach;?>;

然后,使用PHP的Dom處理功能,移除data-foreach屬性;

最后,將DOMDocument存儲為PHP字符串,,DOMDocument中的PHP代碼:

<?php foreach($列表as$值):?><div><?php echo$值?></div><?php endforeach;?>

除了上述示例中的foreach循環(huán),還可以使用for循環(huán),其實現(xiàn)方式與foreach相同。

3、包含其他文件模板示例:

<div data-include=”$文件名”></div>

轉(zhuǎn)換方式:

初始化一個PHP的DOMDocument,加載模板內(nèi)容,使用PHP的DOMXpath查找所有含有屬性data-include的元素,循環(huán)處理這些元素,對于每個元素,執(zhí)行以下操作:

首先,獲取此元素的data-include的值,下稱屬性值;

其次,使用PHP的Dom處理功能,在此元素之后加入文本節(jié)點,內(nèi)容為<?php include(屬性值)?>;

然后,使用PHP的Dom處理功能,移除data-include屬性;

最后,將DOMDocument存儲為PHP字符串,DOMDocument中的PHP代碼:

<div><?php include($文件名)?></div>

相比較于現(xiàn)有技術(shù)中的模板,本實施例提供的模板實現(xiàn)更優(yōu)雅簡潔,且使用了HTML標(biāo)準(zhǔn)的自定義屬性,符合HTML規(guī)范,不引入額外的控制元素,代碼更清晰容易理解,便于維護。以條件控制為例,現(xiàn)有的模板技術(shù)一般表示如下:

{{if($變量)}}

<div>內(nèi)容</div>

{{endif}}

本發(fā)明實施例使用的模板技術(shù)表示如下:

<div data-if=”$變量”>內(nèi)容</div>

此例可見,本實施例使用HTML的規(guī)范屬性,減少了代碼量,提高了代碼的清晰度。

綜上,本實施例提供的PHP網(wǎng)頁模板的實現(xiàn)方法,利用HTML可自定義屬性的特點,使用data-開頭的自定義屬性來作為模板屬性,以簡潔的代碼實現(xiàn)前端與后端的分離。當(dāng)進行模板編譯時,對屬性進行判斷,如果是自定義的屬性或者屬性為變量,則進行相應(yīng)處理,轉(zhuǎn)換成特定的PHP代碼。

實施例2

本發(fā)明實施例提供了一種PHP網(wǎng)頁模板的實現(xiàn)裝置,該裝置應(yīng)用于服務(wù)器端,參見圖3所示的一種PHP網(wǎng)頁模板的實現(xiàn)裝置的結(jié)構(gòu)示意圖,該裝置包括:代碼加載模塊31、元素查找模塊32、第一轉(zhuǎn)換模塊33、第二轉(zhuǎn)換模塊34、網(wǎng)頁模板確定模塊35,其中各模塊的功能如下:

代碼加載模塊31,用于將HTML模板中的代碼內(nèi)容加載至PHP初始化文件中;

其中,該HTML模板中指定屬性的元素上添加有設(shè)定標(biāo)簽,指定屬性包括控制屬性和包含其它文件屬性。

元素查找模塊32,與代碼加載模塊31連接,用于從PHP初始化文件中查找是否存在屬性為變量的元素或含有上述設(shè)定標(biāo)簽的元素;

第一轉(zhuǎn)換模塊33,與元素查找模塊32連接,用于當(dāng)元素查找模塊查找到存在屬性為變量的元素時,按照設(shè)定的變量代碼轉(zhuǎn)換方式,將查找到的屬性為變量的元素轉(zhuǎn)換為PHP代碼;

第二轉(zhuǎn)換模塊34,與元素查找模塊32連接,用于當(dāng)元素查找模塊查找到存在含有上述設(shè)定標(biāo)簽的元素時,按照設(shè)定的移除代碼轉(zhuǎn)換方式,將查找到的含有上述設(shè)定標(biāo)簽的元素轉(zhuǎn)換為PHP代碼;

網(wǎng)頁模板確定模塊35,與第一轉(zhuǎn)換模塊33和第二轉(zhuǎn)換模塊34連接,用于將完成所有屬性為變量的元素和含有上述設(shè)定標(biāo)簽的元素轉(zhuǎn)換后的PHP初始化文件作為PHP網(wǎng)頁模板。

本實施例提供的裝置,通過將HTML模板中的代碼內(nèi)容加載至PHP初始化文件中,能夠在PHP初始化文件中對屬性為變量的元素或含有設(shè)定標(biāo)簽的元素進行代碼轉(zhuǎn)換,得到PHP代碼,進而得到PHP網(wǎng)頁模板,整個PHP網(wǎng)頁模板實現(xiàn)過程中,僅對屬性為變量的元素或含有設(shè)定標(biāo)簽的元素(即屬性為控制屬性和包含其它文件屬性)進行轉(zhuǎn)換,且設(shè)定標(biāo)簽為添加在控制屬性和包含其它文件屬性的元素上的,提升了元素的識別效率,進而提升了代碼的轉(zhuǎn)換效率和準(zhǔn)確度。

在本實施例中上述設(shè)定標(biāo)簽為設(shè)定字符串和連字符的組合,該組合添加至指定屬性的元素的開頭位置;或者,上述設(shè)定標(biāo)簽為下劃線符號,該下劃線符號添加至指定屬性的元素的底部位置。

在此以設(shè)定標(biāo)簽為設(shè)定字符串和連字符的組合為例進行說明,該設(shè)定字符串和連字符的組合具體為data-,即HTML5中標(biāo)準(zhǔn)的自定義屬性。

具體地,第一轉(zhuǎn)換模塊33還用于按照設(shè)定的變量代碼轉(zhuǎn)換方式:{{$變量}}轉(zhuǎn)換為<?php echo$變量?>,將查找到的屬性為變量的元素設(shè)置于上述<?php echo$變量?>格式中的$變量所在位置。

進一步地,為實現(xiàn)將查找到的含有上述設(shè)定標(biāo)簽的元素轉(zhuǎn)換為PHP代碼,參見圖4所示的第二轉(zhuǎn)換模塊的結(jié)構(gòu)示意圖,第二轉(zhuǎn)換模塊34具體包括:

第一屬性判斷單元41,用于判斷含有上述設(shè)定標(biāo)簽的元素的屬性是否為控制屬性;

具體地,控制屬性包括:條件控制屬性和循環(huán)控制屬性。

第一屬性值獲取單元42,與第一屬性判斷單元41連接,用于當(dāng)?shù)谝粚傩耘袛鄦卧呐袛嘟Y(jié)果為是時,獲取含有上述設(shè)定標(biāo)簽的元素的屬性值;

第一添加單元43,與第一屬性值獲取單元42連接,用于在含有上述設(shè)定標(biāo)簽的元素之前添加<?php上述屬性值的控制字段(上述屬性值):?>,在含有上述設(shè)定標(biāo)簽的元素之后添加<?php end上述控制字段;?>;

其中,當(dāng)屬性值為條件控制屬性時,控制字段為if或else,當(dāng)屬性值為循環(huán)控制屬性時,控制字段為foreach或for。

第一移除單元44,與第一添加單元43連接,用于移除含有上述設(shè)定標(biāo)簽的元素。

進一步地,為實現(xiàn)將查找到的含有上述設(shè)定標(biāo)簽的元素轉(zhuǎn)換為PHP代碼,參見圖5所示的第二轉(zhuǎn)換模塊的結(jié)構(gòu)示意圖,第二轉(zhuǎn)換模塊34還可以具體包括:

第二屬性判斷單元51,用于判斷含有設(shè)定標(biāo)簽的元素的屬性是否為包含其它文件屬性;

第二屬性值獲取單元52,與第二屬性判斷單元51連接,用于當(dāng)?shù)诙傩耘袛鄦卧呐袛嘟Y(jié)果為是時,獲取含有上述設(shè)定標(biāo)簽的元素的屬性值;

第二添加單元53,與第二屬性值獲取單元52連接,用于在含有上述設(shè)定標(biāo)簽的元素之后添加<?php include(上述屬性值)?>;

第二移除單元54,與第二添加單元53連接,用于移除含有上述設(shè)定標(biāo)簽的元素。

相比較于現(xiàn)有技術(shù)中的模板,本實施例提供的模板實現(xiàn)更優(yōu)雅簡潔,且使用了HTML標(biāo)準(zhǔn)的自定義屬性,符合HTML規(guī)范,不引入額外的控制元素,代碼更清晰容易理解,便于維護。以條件控制為例,現(xiàn)有的模板技術(shù)一般表示如下:

{{if($變量)}}

<div>內(nèi)容</div>

{{endif}}

本發(fā)明使用的模板技術(shù)表示如下:

<div data-if=”$變量”>內(nèi)容</div>

此例可見,本實施例使用HTML的規(guī)范屬性,減少了代碼量,提高了代碼的清晰度。

本實施例所提供的裝置,其實現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述實施例相同,為簡要描述,裝置實施例部分未提及之處,可參考前述方法實施例中相應(yīng)內(nèi)容。

綜上,本發(fā)明實施例提供的一種PHP網(wǎng)頁模板的實現(xiàn)方法和裝置,利用HTML可自定義屬性的特點,使用data-開頭的自定義屬性來作為模板屬性,符合HTML規(guī)范,不引入額外的控制元素,代碼更清晰容易理解,實現(xiàn)了前端開發(fā)工作與后端開發(fā)工作的分離。當(dāng)進行模板編譯時,對屬性進行判斷,如果是自定義的屬性或者屬性為變量,則進行相應(yīng)處理,轉(zhuǎn)換成特定的PHP代碼。

本發(fā)明實施例所提供的PHP網(wǎng)頁模板的實現(xiàn)方法和裝置的計算機程序產(chǎn)品,包括存儲了程序代碼的計算機可讀存儲介質(zhì),上述程序代碼包括的指令可用于執(zhí)行前面方法實施例中上述的方法,具體實現(xiàn)可參見方法實施例,在此不再贅述。

上述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例上述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

最后應(yīng)說明的是:以上所述實施例,僅為本發(fā)明的具體實施方式,用以說明本發(fā)明的技術(shù)方案,而非對其限制,本發(fā)明的保護范圍并不局限于此,盡管參照前述實施例對本發(fā)明進行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),其依然可以對前述實施例所記載的技術(shù)方案進行修改或可輕易想到變化,或者對其中部分技術(shù)特征進行等同替換;而這些修改、變化或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實施例技術(shù)方案的精神和范圍。都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)所述以權(quán)利要求的保護范圍為準(zhǔn)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
松潘县| 云和县| 石城县| 新野县| 博白县| 云霄县| 读书| 永丰县| 淳化县| 溧阳市| 卢氏县| 天水市| 闻喜县| 奉贤区| 沛县| 清镇市| 东方市| 诏安县| 富蕴县| 郴州市| 承德市| 青岛市| 内黄县| 麻江县| 二手房| 邢台县| 宣城市| 新郑市| 广平县| 达孜县| 昌黎县| 宣城市| 安义县| 平阴县| 逊克县| 达孜县| 岗巴县| 个旧市| 个旧市| 嵩明县| 马公市|