萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP MVC框架 視圖之常用學習筆記

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

本文章來給大家介紹PHP MVC框架視圖學習筆記,以方便以後需要參考。

今天來講講view,視圖。。。沒了解之前,你可能覺得模板引擎很神奇,了解了之後你會覺得,原來是如此簡單。。。

對於模板引擎而言,它的原理一般是這樣,把模板引擎的語言替換成可執行的語言,然後把變量輸出。。。

因為PHP本身就是一個良好了模板引擎,所以用原生的模板引擎是灰常方便和容易做到的。。。


index.html

 代碼如下 復制代碼  
<html>  
<head>  
    <title><?php echo $title ?></title>  
</head>  
<body>  
<h1><?php echo $content ?></h1>  
 
<?php if( ! empty($arr)) { ?>  
<ul>  
    <?php foreach($arr as $value) { ?>  
    <li><?php echo $value ?></li>  
    <?php } ?>  
</ul>  
<?php } ?>  
 
</body>  
</html> 

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

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

 index_2.html

 

 代碼如下 復制代碼 <html> 
<head> 
    <title><?php echo $title ?></title> 
</head> 
<body> 
<h1><?php echo $content ?></h1> 
 
<ifexist arr> 
<ul> 
    <for value = arr> 
    <li><echo value></li> 
    <endfor> 
</ul> 
<endexist> 
 
</body> 
</html> 

看看這個頁面,發現和index.html 有什麼不同嗎,沒錯,就是在循環那裡,我們用的不是標准的php語言,而是,按照自己的喜好,定義了幾個模板語言,一個是<ifexist xxx>這個是判斷xxx變量是否存在,而且不為空,後面那個<for xx1=xx2>是循環迭代xx2變量,中間的<echo xx> 是輸出xx變量

怎麼替換成標准語言呢?這個可以使用正則替換,因為字符串替換無法滿足我們需求了。

 代碼如下 復制代碼  
$pattern = array(  
    ‘/<ifexists+(w+)>/i’,  
    ‘/<fors+(w+)s=s(w+)>/’,  
    ‘/<echos+(w+)>/’  
);  
 
$replacement = array(  
    ‘<?php if( ! empty($\1)){ ?>’,  
    ‘<?php foreach($\2 as $\1){ ?>’,  
    ‘<?php echo $\1 ?>’  
);  
 
$content = preg_replace($pattern, $replacement, $content);  
 
$search = array(‘<endexist>’, ‘<endfor>’);  
 
 
$content = str_replace($search, ‘<?php } ?>’, $content); 

 

上面的正則就可以幫我們把剛剛定義的標簽,轉換成標准p hp語言。。。

轉換之後是這樣,請看圖。

 

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

 代碼如下 復制代碼

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

注意哦,要 ?>.$content 要不,php會把其中的html當成是php代碼的執行,這樣就會出錯了。。。

刷新一下,ok,已經可以執行了~~~

copyright © 萬盛學電腦網 all rights reserved