静态化、gzip

<?php
	//缓冲控制能够提升效率,来做文件缓存使用
	
if(!file_exists('aoe.html')){
	
	echo '这是没经过缓存的,php直接执行的<br/>';

	//放到了缓冲区里面的内容,能够得到缓冲区的内容。并且,仅对ob_start()区间的内容生效
	ob_start();

	echo '<a href="news.php?id=5">幸福与贫富无关,与内心相联,我爱你们</a>';
	
	phpinfo();

	$str=ob_get_contents();

	ob_end_clean();
	
	//$str=ob_get_clean();
	
	//正则表达示来替换超链接
	//news.php?id=5
	//news_5.html

	$pattern='/news.php?id=(d+)/';
	
	$replace='news_1.html';

	$str=preg_replace($pattern,$replace,$str);
	
	echo $str;

	file_put_contents('aoe.html',$str);
}else{
	echo file_get_contents('aoe.html');
}
?>


<?php
ob_start('ob_gzip');

phpinfo();

ob_end_flush();

//ob_gzip  $content是缓冲区里面的内容

function ob_gzip($content)
{    

	//headers_sent()  php当中判断函数,检查header头有没有发送信息,true  false
	//
	//zlib 有没有被加载   
	//
	//$_SERVER["HTTP_ACCEPT_ENCODING"] gzip
	//

    if(!headers_sent()&&extension_loaded("zlib") &&strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip"))
    {
	
        $content = gzencode($content,9);
        
        header("Content-Encoding: gzip");
        header("Vary: Accept-Encoding");
        header("Content-Length: ".strlen($content));
    }
    return $content;
}
?>

你可能感兴趣的:(PHP,php函数,php缓存)