在項目中,尤其是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
模板引擎的原理,就是查找和替換