首頁 >後端開發 >php教程 >教你如何使用ob函數輸出靜態html檔的方法

教你如何使用ob函數輸出靜態html檔的方法

巴扎黑
巴扎黑原創
2017-07-23 10:35:161606瀏覽

如何使用ob函數輸出靜態html檔

1、ob函數介紹

#1.1、ob_start — 開啟輸出控制緩衝

bool ob_start ([ callback $output_callback [, int $chunk_size [, bool $ ) 輸出當輸出緩衝啟動後,腳本將不會輸出內容(除http標頭外),相反需要輸出的內容儲存在內部緩衝區中。
詳情參考:

1.2、ob_get_contents — 回傳輸出緩衝區的內容

#string ob_get_contents ( void )只是得到輸出緩衝區的內容,但不清除它。
詳情參考:

#1.3、 ob_end_flush — 沖刷出(送出)輸出緩衝區內容並關閉緩衝




##bool ob_end_flush ( void )這個函數會送出最頂層緩衝區的內容(如果裡面有內容的話),並且關閉緩衝區。如果想要進一步處理緩衝區中的內容,則必須在ob_end_flush()之前呼叫 ob_get_contents(),因為在呼叫ob_end_flush()後緩衝區內容被丟棄。 詳情參考:



1.4、ob_flush — 沖刷出(送出)輸出緩衝區中的內容



#void 
ob_flush ( 
void )
這個函數會送出緩衝區的內容(如果裡面有內容的話)。如果想要進一步處理緩衝區中的內容,則必須在ob_flush()之前呼叫ob_get_contents() ,因為在呼叫ob_flush()之後緩衝區內容將會被丟棄。
此函數不會銷毀輸出緩衝區,而像ob_end_flush() 函數會銷毀緩衝區。
詳情參考:

1.5、ob_get_clean — 取得目前緩衝區的內容並刪除目前輸出緩#string 
ob_get_clean ( ### void )###得到目前緩衝區的內容並刪除目前輸出緩衝區。 ###ob_get_clean() 實質上是一起執行了 ob_get_contents() 和 ob_end_clean()。 ###詳情參考:############################################ ######################1.6、ob_get_flush — 刷出(送出)緩衝區內容,以字串形式傳回內容,並關閉輸出緩衝區### ########################################################### ################string ###ob_get_flush ( ###void )###ob_get_flush() 刷出(送出)緩衝區內容,以字串形式傳回內容,並關閉輸出緩衝區。
Note: 這個函數與ob_end_flush()相似,不同的是本函數也會以字串形式傳回緩衝區內容。
詳情參考:

#2、如何使用ob()函數來製作html的靜態頁面

2.1、簡單輸出html檔











#9555d55213dcc258e081e35081e5a3d1
輸出hello到index.html
找到index.html,正常輸出了設定的內容

2.2、取得資料庫資訊輸出html檔













5797e7a0fc869621c8fb1158aa7e6fd7query($sql);
$arr = array();
while($re = $result->fetch(PDO::FETCH_ASSOC)){ 
$arr[] = $re;

//循環輸出內容到html檔案
ob_start(); //開啟緩衝區 
?>
6f850ba7bdd9a55f46543e26de6c1149
8b05045a5be5764f313ed5b9168a17e6
49099650ebdc5f3125501fa170048923
93f0f5c25f18dab9d176bd4f6de5d30e
1fc2df4564f5324148703df3b6ed50c1
b2386ffb911b14667cb8f0f91ea547a7循環輸出的html內容6e916e0f7d1e588d4f442bf645aedb2f
9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d
f5d188ed2c074f8b944552db028f98a1
ae20bdd317918ca68efdc799512a9b39
#a34de1251f0d9fe1e645927f19a896e8
b6c5a531a458a2e790c1fd6421739d1cidb90dd5946f0946207856a8a37f441edf
b6c5a531a458a2e790c1fd6421739d1cnameb90dd5946f0946207856a8a37f441edf
b6c5a531a458a2e790c1fd6421739d1cpwdb90dd5946f0946207856a8a37f441edf
fd273fcf5bcad3dfdad3c41bd81ad3e5
5a2859caf3b4d47dd1105050a958b333
92cee25da80fac49f6fb6eec5fd2c22a
d0c001435a40f2d88397a6e322744fea $value) {
echo "a34de1251f0d9fe1e645927f19a896e8"; 
echo "< ;td>{$value['id']}b90dd5946f0946207856a8a37f441edf";
echo "b6c5a531a458a2e790c1fd6421739d1c{$value['name']}b90dd5946f0946207856a8a37f441edf";
echo "< ;td>{$value['pwd']}b90dd5946f0946207856a8a37f441edf"; 
echo "fd273fcf5bcad3dfdad3c41bd81ad3e5";
}
?>
ca745a59da05f784b8811374296574e1
f16b1740fad44fb09bfe928bcc527e08 
36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e
b7b22364d653bf42513e24f171f4d29e
輸出結果到index2.html

### ######Output Control 函數很多,大致上就先介紹這幾種#### ## ###############2.3 最佳化讀取方式,確定正確讀取指定檔案###
<?php
	$fileName = &#39;index2.html&#39;;
	$re = file_exists($fileName);//判断文件是否存在
	$dValue = 0;if($re){
		$fileTime = filectime($fileName);//时间戳
		$dValue = time() -  $fileTime;//获取创建时间,文件缓存一般存在有效期}if(file_exists($fileName) && $dValue < 3600){
		$content = file_get_contents($fileName);
		echo $content;
		die;}else{if($re){
			unlink($fileName);//过去先删除,}
		require_once &#39;coon.php&#39;;
		$sql = "select * from name order by id;";
		$result = $link->query($sql);
		$arr = array();while($re = $result->fetch(PDO::FETCH_ASSOC)){ 
			$arr[] = $re;} 
		//循环输出内容到html文件
		ob_start(); //打开缓冲区  ?><!-- 下面是输出的内容 --><!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>循环输出的html内容</title></head>
<body>
	<table>
		<thead>
			<tr>
				<td>id</td><td>name</td>
				<td>pwd</td></tr>
		</thead><tbody><?php
				foreach ($arr as $key => $value) {
					echo "<tr>";

					echo "<td>{$value[&#39;id&#39;]}</td>";
					echo "<td>{$value[&#39;name&#39;]}</td>";
					echo "<td>{$value[&#39;pwd&#39;]}</td>";

					echo "</tr>";}?></tbody>
	</table></body>
</html><?php

$content = ob_get_contents();//得到当前缓冲区的内容ob_end_clean();//删除当前输出缓file_put_contents(&#39;index2.html&#39;,$content);//写入文件}?>
###首先判斷檔案是否存在,如果存在則判斷目前時間- 創建時間的時間差,判斷目前文件是否有效。 ######3、總結######一.是不需要運行在伺服器上,訪問的時候,伺服器只是簡單的返回這個文件給瀏覽器,並不執行任何操作,內存佔用小,訪問速度快。 ###

二.安全,任何一種動態網站開發語言都不是絕對的安全的,而靜態網頁除了伺服器被黑外,程式不存在任何漏洞

#

以上是教你如何使用ob函數輸出靜態html檔的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn