> php教程 > PHP源码 > 把当前显示的动态PHP页面静态化,生成HTML文件

把当前显示的动态PHP页面静态化,生成HTML文件

PHP中文网
풀어 주다: 2016-05-25 17:04:48
원래의
1176명이 탐색했습니다.


/*
**此段代码要放在所有页面都包含的模块里
**比如const.php或conn.php
**$isHTMLModel 此变量设置是否保存页面内容为静态文件
**$spacing 此变量设置更新时间
**$HtmlPath 此变量保存当前显示的页面的静态文件的路径
**UseHtmlPage 此函数的作用主要是判断当前页面的HTML静态文件是否过期,是则返回文件路径
*/
$isHTMLModel=0;//是否使用静态化页面
$spacing=1;//生成新的文件更新间隔时间 单位:小时
$HtmlPath=UseHtmlPage($isHTMLModel,$spacing);



/*
**此段代码放在需要输出静态文件的页面最底部
**主要作用就是根据上面的设置参数,把当前动态页面里显示过的内容
**生成为静态HTML文件,保存的静态文件的路径在$HtmlPath里
*/
CreateHtmlPage($HtmlPath , $isHTMLModel)
로그인 후 복사

2. [代码][PHP]代码

//如果使用静态页面则取得当前页面的路径,并判断是否存在静态文件和文件的生成日期时间戳与当前日期时间戳是否相差$spacing这么多,有则跳转,无有则生成静态文件路径
function UseHtmlPage($isHTMLModel,$spacing){
	if ($isHTMLModel){
		$paramet="";
		$paramet=$_SERVER['QUERY_STRING'];
		if($paramet!="") $paramet="=".str_replace("=","-",str_replace("&","_",$_SERVER['QUERY_STRING']))."";
		
		
		$HtmlPath=dirname($_SERVER["SCRIPT_FILENAME"])."\\html".str_replace(".php",$paramet.".html",str_replace("/","\\",$_SERVER["PHP_SELF"]));
		$Path="/html".str_replace(".php",$paramet.".html",$_SERVER["PHP_SELF"]);
		if(file_exists($HtmlPath)){
			$one = strtotime(date('r', filemtime($HtmlPath)));//文件之前 时间戳
			$two = time();//系统现在 时间戳
			$cle = $two - $one; //得出时间戳差值
			if ($H<$spacing) {header("Location: ".$Path);}
		}
		return $HtmlPath;
	}
}

//如果使用静态页面并且有静态文件路径,则把当前页面的缓存写到静态文件中
function CreateHtmlPage($HtmlPath , $isHTMLModel){
	if ($isHTMLModel) WriteHtml($HtmlPath);
}

//把当前页面的缓存写到静态文件中
function WriteHtml($filepath){
	if($filepath!=""){
		$content = ob_get_contents();//取得php页面输出的全部内容 
		ob_flush();
		@unlink($filepath);
		$fp = fopen($filepath, "w"); //创建一个文件,并打开,准备写入 
		fwrite($fp, $content); //把php页面的内容全部写入
		fclose($fp); 	
	}
}
로그인 후 복사

           

       

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿