php怎样执行一个动态页到缓存中再生成静态页呢
在asp中,一般用xmlhttp对象的open方法打开一个动态页进行执行,则这个动态页执行后生成的静态html代码可用一个adodb.stream对象保存起来,再写入到文本文件中。
在php中,可以用ob_start 打开缓存,让字符串先写入到缓存中,再将缓存中的内容写入到文本文件中,问题是,php怎么执行一个动态页呢,在有些文章里说,用header(location:adminnews.php);去执行一个动态页,但我试了,这样他只会转到这个动态页,并不会把这个动态页的内容输出到缓存中,我的代码是这样的,我想把adminnews.php的执行结果(生成的html代码)全部写入到jb51.html中,应该怎么做啊
ob_start(); //打开缓冲区
echo hello\n; //输出
header(location:adminnews.php); //把浏览器重定向到index.php
$cachestr=ob_get_contents();
$handle=fopen(jb51.html,w);
fwrite($handle, $cachestr);
ob_clean();
?>
生成静态页 分享到:
------解决方案--------------------
ob_start(); //打开缓冲区
echo hello\n; //输出
include(adminnews.php); //加载并运行
$cachestr=ob_get_contents();
$handle=fopen(jb51.html,w);
fwrite($handle, $cachestr);
ob_clean();
------解决方案--------------------
用$wstr=file_get_contents('http://www.baidu.com'); 这个函数去执行一个url地址就可以了
------解决方案--------------------
引用:file_get_contents即可获取adminnews.php执行的结果。
我试了不行啊,用这个获取到的是adminnews.php的源代码,而不是adminnews.php的执行结果,我要的是执行后生成的html代码,而不是原始的php代码啊。。
ob_start(); //打开缓冲区
echo hello\n; //输出
$cachestr=file_get_contents(adminnews.php); //
$handle=fopen(jb51.html,w);
fwrite($handle, $cachestr);
ob_clean();
?>
你通过浏览器是怎么访问的,file_get_contents里面就填写那个地址