导航:首页 > 编程语言 > php生成静态网页

php生成静态网页

发布时间:2022-08-08 20:43:13

php静态页面怎么做详细点

确实有点笼统。不过我可以跟楼主大概说一下思路 一般的生成静态页面的方法就先制作一个静态模板,在里面需要动态改变的东西用特殊的代码标记,然后再用PHP将标记替换后生成文件进行保存。 比如:<body> <div>{:This is the content:}</div> </body> 这个里面的{:This is the content:}就是一个特殊的标记。我们设这段代码在a.html文件中,我们用PHP将他读入,<?php $b='这里是内容,可以从数据库读取,或者从其他途径获得'; $fp=fopen('a.html','r'); $content=fread($fp,filesize('a.html')); fclose($fp); $content=str_replace('{:This is the content:}',$b,$content);(额。。这个函数参数顺序记不太清楚了) $fp1=fopen('b.html','w'); fwrite($fp,$content); fclose($fp); ?> 这样我们就得到了b.html这个文件,就是一个静态的文件,里面的代码如下: <body> <div>这里是内容,可以从数据库读取,或者从其他途径获得</div> </body> 这样说,楼主明白了吧? 其实一般的网站是不需要生成这样的静态页面的,流量低的网站命中率也就低了,而且更新起来非常麻烦。这就需要用到一些其他的技术的。比如SSI啊,比如只保存数据库查询结果啊。什么的

❷ php生成HTML静态页面如何实现

php生成静态页面的技术很多,你看你需要那一种,像一楼二楼说得那样,是用得smarty技术,你也可以直接用代码实现,也可以用固有的CMS来实现或者用框架来实现。

❸ php如何实现网页静态

一、静态化的优点:
1有利于搜索引擎收录网站页面的信息:搜索引擎更喜欢静态的,更变于抓取,搜索引擎SEO排名会更容易提高。
2静态网页化网页稳定
3可以提高网页加载速度
4减轻服务器负担,浏览器不需要频发调用数据库。
5数据库出错不会影响正常访问
二、伪静态
PHP伪静态:是利用Apache mod_rewite实现url重写的方法
改写访问地址,能够通过URL的PATHINFO模式来改动它。让它看上去更像一个静态页面。从而有更大的几率被搜索引擎抓取和收录,仅是对搜索引擎比较友好,伪静态化
三、纯静态化
纯静态化,就是生成HTML文件的方式,我们须要开启PHP自带的缓存机制,即ob_start来开启缓存。而且在ob_start之前不能有不论什么输出,否则运行失败,然后我们用ob_get_contents函数来获取缓存中的内容,该函数会返回一个字符串。第三个函数就是ob_end_clean,它用来清空缓存中的内容而且关闭,成功返回True,失败返回False。
<?php
if(file_exists("match.html") && (time()-filemtime("match.html"))<300)
{
//如果存在对应的静态文件,则直接访问
require_once("match.html");
}else{
//这里用数组来仿真数据库操作,现实一般都是操作数据库得到对应数据
$student = array("huangxing","chenyuwei",'xufei','zhangjingwen','xuepei');
ob_start();
//载入模板
require_once("muban.php");
file_put_contents("match.html",ob_get_clean());
require_once('match.html');
}

❹ php程序如何批量生成静态页

在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比方修改编辑.比方阅读权限限制等,但是,对应一些我们经常频频使用的文件,比方说,开发的新闻发布系统,我们不希望很多用户都读取数据库才显示结果,这样一方面消耗了服务器的资源,另一方面占去了浏览者大量可贵的响应时间,所有,有了"静态页面话"的做法,当前很多网站都采用这种技术,一般都是由管理后台控制,或者生成html直接显示,或者xhtml用css控制显示,或者生成xml用xslt显示,这些技术都不是难的,在这里我就浅显的说说生成html的方法.
有些信息比方经常不变的,但是还是能变的信息放在缓存中以加快显示速度,这是很有价值的,所谓的缓存,通俗的理解就是一些保存在服务器端的共用信息.它是于服务器同生死的,我们在保存缓存的时候可以指定下次更新的时间的判断,比方要在5分钟更新一次,可以记录上次更新的时间,和当前时间比较,如果大于
5
分钟
,读取数据库,更新换成,否则直接读取缓存数据,当然,缓存需要客户端用户激活的,只需一次.
ob_start()函数:打开输出缓冲区.
函数格式
void
ob_start(void)
说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。
Flush:刷新缓冲区的内容,输出。
函数格式:flush()
说明:这个函数经常使用,效率很高。
ob_get_contents
:返回内部缓冲区的内容。
函数格式:string
ob_get_contents(void)
说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回
FALSE.
ob_get_length:返回内部缓冲区的长度。
函数格式:int
ob_get_length(void)
说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活,则返回
FALSE.
ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区
函数格式:void
ob_end_clean(void)
说明:这个函数不会输出内部缓冲区的内容而是把它删除
ob_end_flush:发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区
函数格式:void
ob_end_flush(void)
说明:这个函数发送输出缓冲区的内容(如果有的话)
ob_implicit_flush:打开或关闭绝对刷新
函数格式:void
ob_implicit_flush
([int
flag])
说明:默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用
flush()
文件写入:
int
fwrite
(
resource
handle,
string
string
[,
int
length]
)
fwrite()

string
的内容写入
文件指针
handle
处。
如果指定了
length,当写入了
length
个字节或者写完了
string
以后,写入就会停止,视乎先碰到哪种情况。
fwrite()
返回写入的字符数,出现错误时则返回
FALSE

相关参考官方网站:
文件参考
三、解决方案
思路:开启
ob_start缓冲,当已经调出数据的时候获取
ob_get_contents,然后生成静态页,ob_end_clean清除缓冲.ok,就这么来,来看一个例子(php+mysql的结合):
创建数据库:
CREATE
TABLE
`bihtml`
(
`id`
int(11)
NOT
NULL
auto_increment,
`szdtitle`
varchar(16)
NOT
NULL,
`szdcontent`
text
NOT
NULL,
PRIMARY
KEY
(`id`)
)
TYPE=MyISAM;
获取当前的ID,并导入模板:
ob_start();
$id=_POST['id']
if(!isset($id)&&is_integer($id))
{
@$db=new
mysqli('localhost','root','admin','bihtml');
$result=$db->fetch_one_array("select
*
from
szd_bi
where
id='$id'");
if(!empty($result))
{
$tmp->assign(array(
"Szdtitle",htmlspecialchars($result['titles']),
"Szdcontent",$result['titles']));
}
$tpl->display('default_1.tpl');
$this_my_f=
ob_get_contents();
//此处关键
ob_end_clean();
$filename
=
"$id.html";
if(tohtmlfile_cjjer($filename,$this_my_f))
echo
"生成成功
$filename";
else
echo
"生成识别";
}
}
//把生成文件的过程写出函数
function
tohtmlfile_cjjer($file_cjjer_name,$file_cjjer_content)
{
if
(is_file
($file_cjjer_name)){
@unlink
($file_cjjer_name);
}
$cjjer_handle
=
fopen
($file_cjjer_name,"w");
if
(!is_writable
($file_cjjer_name)){
return
false;
}
if
(!fwrite
($cjjer_handle,$file_cjjer_content)){
return
false;
}
fclose
($cjjer_handle);
//关闭指针
return
$file_cjjer_name;
}

❺ php怎么生成静态网页

PHP 模板引擎Smarty可以生成【静态页面】缓存。

Smarty是一个使用PHP写出来的模板引擎,是目前业界最着名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

Smarty优点
1. 速度:采用Smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。
2. 编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下)
3.【 缓存技术】:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个【静态的HTML页】,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个【静态的HTML】文件中来,这相当于调用一个【静态的HTML文件】。
4. 插件技术:Smarty可以自定义插件。插件实际就是一些自定义的函数。
5. 模板中可以使用if/elseif/else/endif。在模板文件使用判断语句可以非常方便的对模板进行格式重排。

❻ 怎么将PHP生成静态的HTML

目前PHP的模板可以说是很多了,有功能强大的smarty,还有简单的smarttemplate等。
它们每一种模板,都有一个获取输出内容的函数。
生成静态页面的方法,就是利用了这个函数。
用这个方法的优点是,代码比较清晰,可读性好:
<?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);
?>

❼ PHP 如何生成静态 页面

哦...这个哒
你用的是apache吧
看看里面有个设置文件http.conf
里面去找这条类似的
# Begin PHP Configure by PHPnow
LoadMole php5_mole "../php-5.2.6-Win32/php5apache2_2.dll"
<IfMole mod_php5.c>
PHPINIDir "../php-5.2.6-Win32/"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfMole>
# End PHP Configure by PHPnow
然后把
AddType application/x-httpd-php .php
改了
AddType application/x-httpd-php .htm
....................华丽的分界线...........................

然后去把你所有后缀为php的文件改成htm
然后就可以了

这招其实是用来防黑客注入滴~~~~

❽ 如何用PHP输出静态页面

一种是利用模板技术,另一种是用ob系列函数。两种方法,看起来都差不多,但是实际上,却是不同的。
第一种:利用模板目前PHP的模板可以说是很多了,有功能强大的smarty,还有简单易用的smart
template等。
它们每一种模板,都有一个获取输出内容的函数。
我们生成静态页面的方法,就是利用了这个函数。
用这个方法的优点是,代码比较清晰,可读性好。
$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如何生成静态页面

lz只是想要主页生成静态吗?这种问题我回答过,也许可以帮助你
如果是这样就在你的主页(index.php)同一文件夹下建立index0.php并保证当前文件夹可以写入

index0.php代码如下
<?php
ob_start(); //将这里以后的所有输出内容保存
include('index.php'); //加载原首页
$write=ob_get_contents(); //ob_get_contents函数获取输出内容,兼容php4以上版本
if (!$fh = fopen('index.html', 'w')) {
exit("不能打开文件 'index.html'");
}
if(fwrite($fh,$write)===false){
exit("不能写入文件 'index.html'");
}
fclose($fh);
echo "静态首页成功更新!"
?>

每次打开这个页面(index0.php),都会直接显示你的首页(动态地)并将显示的东西写入index.html文件,并在最后显示是否成功更新。当然你可以选择不显示更新状态,看你喜欢如何

以后你就可以通过访问index0.php来生成静态首页,静态首页为index.html

阅读全文

与php生成静态网页相关的资料

热点内容
叫别人做商城有源码吗 浏览:907
无所不能的程序员是谁呀 浏览:142
清理文件加密软件 浏览:67
瘦吧大数据在APP哪里看 浏览:623
层次聚类算法最小距离 浏览:696
抖音视频加源码 浏览:534
运营影视源码 浏览:643
北京电信服务器托管云空间服务器 浏览:371
一般学编程有必要吗 浏览:755
机器人编程方法 浏览:992
表盘编程gt 浏览:9
java源代码阅读 浏览:736
程序员用什么键盘罗技 浏览:169
为什么安卓手机每天都要更新app 浏览:707
java怎么成为程序员 浏览:290
西门子s7200编程电缆怎么连接 浏览:532
下载网页中的pdf文件 浏览:91
音乐缓存文件夹的软件 浏览:396
Dkms编译打印机驱动 浏览:996
解压缩文件操作异常 浏览:557