模板引擎的原理

在項目中,尤其是MVC的項目中,前段後後端的代碼是分開的,

後端控制前段的代碼只需要incdude 引入就可以,

那麼前段的代碼 裏面包含<?php?>,需要怎麼分離呢?

原理:

前段的人員都喜歡< p > < a > 這樣的代碼,那我們能不能使用{ }來替換呢?

這樣做php 也解析不了{ }中的內容啊

<?php 
$name="小偉";
$age=32;
include "my.html";
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    姓名:{$name}<br>
    年齡:{$age}
</body>
</html>

顯示結果

姓名:{$name}
年齡:{$age}

 

那怎麼做呢?

//查找和替換
$str=file_get_contents("my.html");
$str=str_replace('{','<?php echo ',$str);
$str=str_replace('}','?>',$str);
file_put_contents("my.html",$str);
//包含師徒文件
include "my.html";

上面這樣做,my.html的源文件也會改變,那下次訪問的時候,就不行了 因爲{ } 都已經替換成了 <?php?> 了

我們應該在file_put_contents 寫到一個新的文件中 如new.html

 

模板引擎的原理,就是查找和替換

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章