小螞蟻學習頁面靜態化(1)——靜態化的原理

關於頁面php文件執行階段php

語法分析——》編譯——》運行html

如何優化頁面的響應時間數據庫

  1. 動態頁面靜態化數組

  2. 優化數據庫緩存

  3. 使用負載均衡服務器

  4. 使用緩存負載均衡

    頁面靜態化可以解決的問題    1.減小服務器腳本的計算時間    2.下降服務器的響應時間    可是靜態化不適用於內容常常變換的頁面。tcp


Buffer認知函數

Buffer就是一個緩衝區,一個內存地址空間,用於存儲數據的區域優化

 

輸出流程

內存-》php buffer-》tcp-》終端

將Php.ini中    output_buffering = on  Php5.3以上默認是開啓的。

Ob_get_contents() 獲取php緩衝區的文件

若是php.ini緩衝區沒有開啓,能夠再腳本上部添加ob_start();開啓

php如何實現頁面純靜態化呢?

基本方式          

1.File_put_contents()函數

2.使用php內置緩存機制實現頁面靜態化 – output_buffering

操做緩衝區的函數ob_*

Ob函數

Ob_start           打開輸出控制緩衝

Ob_get_contents           返回輸出緩衝區內容

Ob_clean           清空(擦掉)緩衝區內容

Ob_get_clean                      獲得當前緩衝區的內容並刪除當前輸出緩衝區

這四個是核心參數,靜態化的核心思想就是,將保存到緩衝區的內容拿出來,保存在本地文件內。例如:

    準備兩個文件,一個是模板文件template.php,一個實現靜態化的腳本index.php。

<!doctype html>
<html>
	<head>
		<meta charset='utf-8' />
		<title>
			<title>這裏是一個模板文件 template.php </title>
		</title>
	</head>
	<body>
		<ul>
			<?php foreach ($arr as $key => $value) { ?>
				<li><?php echo $value['title'] ?></li>
			<?php } ?>
		</ul>
	</body>
</html>

    下面開始是實現將上面的模板文件靜態化的過程。

<?php
        //按照常規套路的話,這個數組應該是從數據庫中拿到的,這裏爲了簡便就直接準備一個二位數組
	$arr	=	array(
			0=>array('title'=>'這裏是第一個標題'),
			1=>array('title'=>'這裏是第二個標題'),
			2=>array('title'=>'這裏是第三個標題')
		);
	
        //緩衝區必需要在輸出以前開啓
	ob_start();
	//把模板文件引入
	include_once('./template.php');
        //從緩衝區拿到文件,寫到本地保存起來
	if(file_put_contents('./text.txt', ob_get_clean())){
		echo 'success';
	}else{
		echo 'error';
	}
?>

    頁面靜態化的原理就是這樣了。

相關文章
相關標籤/搜索