国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP MVC框架 視圖之常用學習筆記

2024-05-04 21:57:31
字體:
來源:轉載
供稿:網友

本文章來給大家介紹PHP MVC框架視圖學習筆記,以方便以后需要參考.今天來講講view,視圖...沒了解之前,你可能覺得模板引擎很神奇,了解了之后你會覺得,原來是如此簡單...

對于模板引擎而言,它的原理一般是這樣,把模板引擎的語言替換成可執行的語言,然后把變量輸出...因為PHP本身就是一個良好了模板引擎,所以用原生的模板引擎是灰常方便和容易做到的...

index.html實例代碼如下:

  1. <html>    
  2. <head>    
  3.     <title><?php echo $title ?></title>    
  4. </head>    
  5. <body>    
  6. <h1><?php echo $content ?></h1>    
  7.    
  8. <?php if( ! emptyempty($arr)) { ?>    
  9. <ul>    
  10.     <?php foreach($arr as $value) { ?>    
  11.     <li><?php echo $value ?></li>    
  12.     <?php } ?>    
  13. </ul>    
  14. <?php } ?>    
  15.    
  16. </body>    
  17. </html>  

想上面這樣一個html頁面,采用的就是原生的php模板引擎,服務器在你include這個頁面時,會處理html中的PHP代碼.

你也許會問,要是我想定制模板語言可以嗎?答案當然是可以的,像我上面說的,用模板引擎的語言,只需要多做一步,就是把模板引擎的語言替換成標準的PHP語言...

index_2.html實例代碼如下:

  1. <html>   
  2. <head>   
  3.     <title><?php echo $title ?></title>   
  4. </head>   
  5. <body>   
  6. <h1><?php echo $content ?></h1>   
  7.    
  8. <ifexist arr>   
  9. <ul>   
  10.     <for value = arr>   
  11.     <li><echo value></li>   
  12.     <endfor>   
  13. </ul>   
  14. <endexist>   
  15.    
  16. </body>   
  17. </html>   

看看這個頁面,發現和index.html 有什么不同嗎,沒錯,就是在循環那里,我們用的不是標準的php語言,而是,按照自己的喜好,定義了幾個模板語言,一個是<ifexist xxx>這個是判斷xxx變量是否存在,而且不為空,后面那個<for xx1=xx2>是循環迭代xx2變量,中間的<echo xx> 是輸出xx變量,怎么替換成標準語言呢?這個可以使用正則替換,因為字符串替換無法滿足我們需求了.

實例代碼如下:

  1. $pattern = array(    
  2.     ‘/<ifexists+(w+)>/i’,    
  3.     ‘/<fors+(w+)s=s(w+)>/’,    
  4.     ‘/<echos+(w+)>/’    
  5. );    
  6.    
  7. $replacement = array(    
  8.     ‘<?php if( ! emptyempty($/1)){ ?>’,    
  9.     ‘<?php foreach($/2 as $/1){ ?>’,    
  10.     ‘<?php echo $/1 ?>’    
  11. );    
  12.    
  13. $content = preg_replace($pattern$replacement$content);    
  14.    
  15. $search = array(‘<endexist>’, ‘<endfor>’);    
  16.    
  17.    
  18. $content = str_replace($search, ‘<?php } ?>’, $content);   

上面的正則就可以幫我們把剛剛定義的標簽,轉換成標準p hp語言...轉換之后是這樣,請看圖.

轉換之后可以輸出了嗎?答案是不行的,因為你獲取到html文件的內容的時候,php就已經解釋了,那時候你還沒替換成標準的php語言,所以,你現在輸出的話,其中的php代碼就沒有執行...不過我們可以利用 php eval 這個函數,來強制要求執行其中的代碼.

實例代碼如下:

  1. $content = eval(‘ ?>’.$content); 

注意哦,要 ?>.$content 要不,php會把其中的html當成是php代碼的執行,這樣就會出錯了...刷新一下,ok,已經可以執行了~~~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 镇原县| 忻城县| 孟连| 彭阳县| 商河县| 诸城市| 江源县| 彝良县| 昭苏县| 靖宇县| 肥东县| 高州市| 嘉黎县| 泸定县| 长岛县| 大连市| 安庆市| 漠河县| 客服| 宜章县| 平阴县| 阜康市| 安达市| 灵川县| 报价| 萝北县| 台山市| 清远市| 贡觉县| 合阳县| 故城县| 武邑县| 栾城县| 佛学| 福海县| 麻城市| 饶河县| 清丰县| 伊金霍洛旗| 定日县| 裕民县|