iT邦幫忙

0

PHP包含html語法

各位大大您好:

想請問如何將PHP包含html語法,我現在想到只有

<?php echo...?> html語法 <?php echo..?>

謝謝

看更多先前的討論...收起先前的討論...
有聽過「樣板引擎」嗎?
阿貓 iT邦新手 5 級 ‧ 2018-01-10 13:31:15 檢舉
@Samと可樂快跑 我也想學這個,前輩有推薦的嗎?
@阿貓 現行的framework幾乎都有啊!
html語法 不是可以直接 ECHO 啊,如果你要內崁,就是用 ?><? 這兩個標籤包裹啊
或是 HTML 內崁 PHP 在 HTML內 用 <? ?> 包裹,這各PHP 學習手冊內前幾各章節都會講
要不要在回頭看一下書之後再問,還有外置法,書本寫的方法很多種,樓主直接翻書比較快
weiclin iT邦高手 4 級 ‧ 2018-01-10 17:56:57 檢舉
提一下, 單純要輸出變數的話可以寫成 <?=$var?>
小魚 iT邦高手 1 級 ‧ 2018-01-11 12:50:25 檢舉
印象中應該是Html包含PHP語法吧...
msnman iT邦研究生 2 級 ‧ 2018-01-11 15:31:28 檢舉
https://www.w3schools.com/php/php_echo_print.asp

2 個回答

4
Samと可樂快跑
iT邦研究生 2 級 ‧ 2018-01-10 14:29:13
最佳解答

之前有寫過個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只會直接顯示,不會回傳任何東西。

感謝大大!!雖然我不懂 但我會鑽研的!

mayyola iT邦新手 2 級 ‧ 2018-01-12 14:09:58 檢舉

好難理解>"<看不太懂,請問google可以搜尋甚麼嗎?謝謝

0
king742171
iT邦新手 3 級 ‧ 2018-01-10 11:32:36

如果你有另外一個檔案是文字檔或是HTML檔
可以使用include
http://php.net/manual/zh/function.include.php

我要發表回答

立即登入回答