今天來講講view,視圖。。。沒了解之前,你可能覺得模板引擎很神奇,了解了之後你會覺得,原來是如此簡單。。。
對於模板引擎而言,它的原理一般是這樣,把模板引擎的語言替換成可執行的語言,然後把變量輸出。。。
因為PHP本身就是一個良好了模板引擎,所以用原生的模板引擎是灰常方便和容易做到的。。。
index.html
想上面這樣一個html頁面,采用的就是原生的php模板引擎,服務器在你include這個頁面時,會處理html中的PHP代碼。
你也許會問,要是我想定制模板語言可以嗎?答案當然是可以的,像我上面說的,用模板引擎的語言,只需要多做一步,就是把模板引擎的語言替換成標准的PHP語言。。。
index_2.html
代碼如下 復制代碼 <html>
看看這個頁面,發現和index.html 有什麼不同嗎,沒錯,就是在循環那裡,我們用的不是標准的php語言,而是,按照自己的喜好,定義了幾個模板語言,一個是<ifexist xxx>這個是判斷xxx變量是否存在,而且不為空,後面那個<for xx1=xx2>是循環迭代xx2變量,中間的<echo xx> 是輸出xx變量
怎麼替換成標准語言呢?這個可以使用正則替換,因為字符串替換無法滿足我們需求了。
代碼如下 復制代碼
上面的正則就可以幫我們把剛剛定義的標簽,轉換成標准p hp語言。。。
轉換之後是這樣,請看圖。
轉換之後可以輸出了嗎?答案是不行的,因為你獲取到html文件的內容的時候,php就已經解釋了,那時候你還沒替換成標准的php語言,所以,你現在輸出的話,其中的php代碼就沒有執行。。。不過我們可以利用 php eval 這個函數,來強制要求執行其中的代碼。
代碼如下 復制代碼$content = eval(‘ ?>’.$content);
注意哦,要 ?>.$content 要不,php會把其中的html當成是php代碼的執行,這樣就會出錯了。。。
刷新一下,ok,已經可以執行了~~~