有没有好点的PHP生成静态网页的代码? 有没有好点的PHP生成静态网页的代码? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 這個涉及的框架了,我的框架是echo出一個整頁面,估計生成靜態不難 我是用smarty模板輸出生成靜態頁的 http://blog.yctin.com/archives/php-using-output-buffering-to-create-static-page/我来做 SEO 了 A_A 我也是要用smarty 的,可是具体一些的能跟我讲下吗?不明白静态生成的原理 在模板替换之前,即程序最初位置 ob_start(),在模板替换之后,$out_data = ob_get_contents();ob_end_clean();然后将$out_data 转换成静态页面。 php生成静态网页的两种方式 转自:http://www.phpzc.com/read.php?tid-554-keyword-%BE%B2%CC%AC.html第一种:利用模板。目前PHP的模板可以说是很多了,有功能强大的smarty,还有简单易用的smarttemplate等。它们每一种模板,都有一个获取输出内容的函数。我们生成静态页面的方法,就是利用了这个函数。用这个方法的优点是,代码比较清晰,可读性好。这里我用smarty做例子,说明如何生成静态页<?phprequire('smarty/Smarty.class.php');$t = new Smarty;$t->assign("title","Hello World!");$content = $t->fetch("templates/index.htm");//这里的 fetch() 就是获取输出内容的函数,现在$content变量里面,就是要显示的内容了$fp = fopen("archives/2005/05/19/0001.html", "w");fwrite($fp, $content);fclose($fp);?> 第二种方法:利用ob系列的函数。这里用到的函数主要是 ob_start(), ob_end_flush(), ob_get_content(),其中ob_start()是打开浏览器缓冲区的意思,打开缓冲后,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区,直到你使用了ob_end_flush().而这里最重要的一个函数,就是ob_get_contents(),这个函数的作用是获取缓冲区的内容,相当于上面的那个fetch(),道理一样的。代码:<?phpob_start();echo "Hello World!";$content = ob_get_contents();//取得php页面输出的全部内容$fp = fopen("archives/2005/05/19/0001.html", "w");fwrite($fp, $content);fclose($fp);?> 数据库连接问题 求一正则表达式,急用 php的strlen函数计算汉字字节数问题? 终于能运行hello world程序了!! is_array判断不起作用 做一个后台票务管理系统要多少钱 我用的是mysql中的long text形式,但我输出来的时候不分段。为什么?? 我的apache不能用php,打开文件后只显示源代码,我该怎么办???? 从C++转过来的,问问PHP初始化在哪儿?就是程序第一次启动需要读入配置数据那种? php curl 获取信息不完整 想学PHP,给点意见 form表单提交后 如果执行失败,返回前页面,表单不刷新 如何实现
在模板替换之后,$out_data = ob_get_contents();
ob_end_clean();
然后将$out_data 转换成静态页面。
转自:http://www.phpzc.com/read.php?tid-554-keyword-%BE%B2%CC%AC.html第一种:利用模板。目前PHP的模板可以说是很多了,有功能强大的smarty,还有简单易用的smarttemplate等。它们每一种模板,都有一个获取输出内容的函数。我们生成静态页面的方法,就是利用了这个函数。用这个方法的优点是,代码比较清晰,可读性好。
这里我用smarty做例子,说明如何生成静态页
<?php
require('smarty/Smarty.class.php');
$t = new Smarty;
$t->assign("title","Hello World!");
$content = $t->fetch("templates/index.htm");
//这里的 fetch() 就是获取输出内容的函数,现在$content变量里面,就是要显示的内容了
$fp = fopen("archives/2005/05/19/0001.html", "w");
fwrite($fp, $content);
fclose($fp);
?>
第二种方法:利用ob系列的函数。这里用到的函数主要是 ob_start(), ob_end_flush(), ob_get_content(),其中ob_start()是打开浏览器缓冲区的意思,打开缓冲后,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区,直到你使用了ob_end_flush().而这里最重要的一个函数,就是ob_get_contents(),这个函数的作用是获取缓冲区的内容,相当于上面的那个fetch(),道理一样的。代码:
<?php
ob_start();
echo "Hello World!";
$content = ob_get_contents();//取得php页面输出的全部内容
$fp = fopen("archives/2005/05/19/0001.html", "w");
fwrite($fp, $content);
fclose($fp);
?>