各位大大您好:
想請問如何將PHP包含html語法,我現在想到只有
<?php echo...?> html語法 <?php echo..?>
謝謝
之前有寫過個loadview的sample參考看看
類別: view.php
<?php
class View {
static private function _execute($input_file,array $array = []){
extract($array);
$file = $input_file.'.php';
ob_start();
include_once($file);
$buffer = ob_get_contents();
ob_end_clean();
return $buffer;
}
static function display($file,$array){
echo self::_execute($file,$array);
}
static function cache($file,$array){
return self::_execute($file,$array);
}
}
用法:
樣板檔 myview.php
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<table>
<tr>
<th>name</th>
<th>address</th>
</tr>
<?php foreach($query as $row):?>
<tr>
<td><?=$row['name']?></td>
<td><?=$row['address']?></td>
</tr>
<?php endforeach?>
</table>
</body>
</html>
主程式 index.php
<?php
require_once('view.php');
$query = [
['name' => 'sam' , 'address' => 'taipei'],
['name' => 'eagle' , 'address' => 'yangme']
];
$view = View::cache('myview',['query' => $query]);
echo $view;
格式:
View::cache(樣板檔名, [key => value, key => value, ...])
View::display(樣板檔名, [key => value, key => value, ...])
要注意的是第二個的參數的key,在進到樣板後會被解成$key
例如上面的主程式中['query' => $query]
進到樣板檔後的key name也就是query會變成$query
如下中的$query並不是['query' => $query]的$query,而是前面的'query'
<?php foreach($query as $row):?>
View::cache()是用在你有多個畫面要組合在一個layout中時所以使用的回傳方式。
如果要直接顯示,其實用如下方式就行了:
View::display('myview',['query' => $query]);
cache是將畫面先回傳不顯示。
display只會直接顯示,不會回傳任何東西。
如果你有另外一個檔案是文字檔或是HTML檔
可以使用include
http://php.net/manual/zh/function.include.php