问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php系统如何实现动态页面静态化

发布网友 发布时间:2022-04-05 23:19

我来回答

6个回答

懂视网 时间:2022-04-06 03:41

php实现静态化的方法:1、改写访问地址,能够通过URL的PATHINFO模式来改动它;2、站点能够在用户访问站点之前就通过一定的程序来进行静态化。

php实现静态化的方法:

PHP站点开发过程中,因为搜索引擎对PHP页面搜鹿和html页面的收录有一定的区别,为了站点的推广或者SEO的须要,要对站点进行一定的静态化。静态化并非页面中没有动画等元素,而是指网页的html代码都在页面中,不须要再去执行PHP脚本等server端的语言,我们能够直接訪问到的网页。这就是静态网页。

有一种方式是改写訪问地址,能够通过URL的PATHINFO模式来改动它。让它看上去更像一个静态页面。从而有更大的几率被搜索引擎抓取和收录,仅是对搜索引擎比較友好,伪静态化。

第二种就是站点能够在用户訪问站点之前就通过一定的程序来进行静态化。生成静态页面。当用户去訪问该页面的时候。因为訪问的是静态页面,因此,訪问速度会比訪问动态页面的速度快了非常多倍,前台的表现是页面载入速度变快,在后台的表现是降低了数据库的连接。降低了数据库的压力,唯一的缺点就是相对占的硬盘多一些,硬盘相对便宜的多。

纯静态化,就是生成HTML文件的方式,我们须要开启PHP自带的缓存机制,即ob_start来开启缓存。而且在ob_start之前不能有不论什么输出,否则运行失败,然后我们用ob_get_contents函数来获取缓存中的内容,该函数会返回一个字符串。第三个函数就是ob_end_clean,它用来清空缓存中的内容而且关闭,成功返回True,失败返回False。

<?php
//开启缓存
ob_start();
//第一步连接数据库
$conn = mysqli_connect("localhost","root","","bbs");
//第二步设置对应的字符编码
$setting = 'set names utf8';
mysqli_query($conn,$setting);
//第三步进行查询
$sql = 'SELECT * FROM user';
$result = mysqli_query($conn,$sql);
//第四步把查询结果转化为一个数组
$rows = mysqli_num_rows($result);
$sqldata = array();
for($i = 0;$i <$rows;$i ++){
 $sqldata[] = mysqli_fetch_assoc($result);
}
//然后打印该信息
var_dump($sqldata);
//得到生成的html文件,下次訪问就无需訪问数据库了
$msg = ob_get_contents();
ob_end_clean();
//把输出内容放入一个html文件里
$f = fopen("static.html","w");
fwrite($f,$msg);
echo "静态化成功";

目录下生成一个html文件

<pre class='xdebug-var-dump' dir='ltr'>
<b>array</b> <i>(size=6)</i>
 0 <font color='#888a85'>=></font> 
 <b>array</b> <i>(size=4)</i>
 'id' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'1'</font> <i>(length=1)</i>
 'level' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'0'</font> <i>(length=1)</i>
 'name' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'辛星'</font> <i>(length=6)</i>
 'pwd' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'bd04fcc97578ce33ca5fb331f42bc375'</font> <i>(length=32)</i>
 1 <font color='#888a85'>=></font> 
 <b>array</b> <i>(size=4)</i>
 'id' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'2'</font> <i>(length=1)</i>
 'level' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'1'</font> <i>(length=1)</i>
 'name' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'小倩'</font> <i>(length=6)</i>
 'pwd' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'61cb72858be523b9926ecc3d7da5d0c6'</font> <i>(length=32)</i>
 2 <font color='#888a85'>=></font> 
 <b>array</b> <i>(size=4)</i>
 'id' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'3'</font> <i>(length=1)</i>
 'level' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'1'</font> <i>(length=1)</i>
 'name' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'小楠'</font> <i>(length=6)</i>
 'pwd' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'a3d2de7675556553a5f08e4c88d2c228'</font> <i>(length=32)</i>
 3 <font color='#888a85'>=></font> 
 <b>array</b> <i>(size=4)</i>
 'id' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'4'</font> <i>(length=1)</i>
 'level' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'1'</font> <i>(length=1)</i>
 'name' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'刘强'</font> <i>(length=6)</i>
 'pwd' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'fcdb06a72af0516502e5fdccc9181ee0'</font> <i>(length=32)</i>
 4 <font color='#888a85'>=></font> 
 <b>array</b> <i>(size=4)</i>
 'id' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'5'</font> <i>(length=1)</i>
 'level' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'1'</font> <i>(length=1)</i>
 'name' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'星哥'</font> <i>(length=6)</i>
 'pwd' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'866a6cafcf74ab3c2612a85626f1c706'</font> <i>(length=32)</i>
 5 <font color='#888a85'>=></font> 
 <b>array</b> <i>(size=4)</i>
 'id' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'6'</font> <i>(length=1)</i>
 'level' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'1'</font> <i>(length=1)</i>
 'name' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'辛勇'</font> <i>(length=6)</i>
 'pwd' <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'e93beb7663f3320eaa0157730d02dd0c'</font> <i>(length=32)</i>
</pre>

相关学习推荐:php编程(视频)

热心网友 时间:2022-04-06 00:49

动态和静态关键看你是什么样类型的网站,如果是实时性不高的,类似于新浪新闻,他发布之后可能修改的次数可能就比较少,这样的网站你可以用生成静态html页面的方式比较合适,如果是你的页面内容经常发生变化,这个时候你可以选择利用伪静态来实现,更好的方式是结合缓存,比如memcache,redis这样的缓存系统,可以同时降低app和数据库服务器的负载,何乐而不为呢?伪静态的好处是有利于SEO优化,可以通过搜索引擎来获取更高的排名,从而获得更多的流量。

热心网友 时间:2022-04-06 02:07

<!--?php
$gid = $_GET['gid']+0;//商品id
$goods_statis_file = "goods_file_".$gid.".html";//对应静态页文件
$expr = 3600*24*10;//静态文件有效期,十天
if(file_exists($goods_statis_file)){
  $file_ctime =filectime($goods_statis_file);//文件创建时间 
     if($file_ctime+$expr-->time()){//如果没过期
      echo file_get_contents($goods_statis_file);//输出静态文件内容
         exit;
     }else{//如果已过期
         unlink($goods_statis_file);//删除过期的静态页文件
         ob_start();
  
            //从数据库读取数据,并赋值给相关变量
  
            //include ("xxx.html");//加载对应的商品详情页模板
  
            $content = ob_get_contents();//把详情页内容赋值给$content变量
            file_put_contents($goods_statis_file,$content);//写入内容到对应静态文件中
            ob_end_flush();//输出商品详情页信息
     }
}else{
 ob_start();
  
 //从数据库读取数据,并赋值给相关变量
  
 //include ("xxx.html");//加载对应的商品详情页模板
  
 $content = ob_get_contents();//把详情页内容赋值给$content变量
 file_put_contents($goods_statis_file,$content);//写入内容到对应静态文件中
 ob_end_flush();//输出商品详情页信息
  
}
  
  这就是直接输出了。

热心网友 时间:2022-04-06 03:41

可以用服务器的伪静态功能实现。或者直接用生成HTML文件的CMS系统。

热心网友 时间:2022-04-06 05:33

通过配置apache服务器实现伪静态,可以参考http://wenku.baidu.com/view/871ebd2b7375a417866f8f2b.html

热心网友 时间:2022-04-06 07:41

用APACHE的mod_rewrite实现伪静态,再用Smarty实现页面缓存,百度一下 mode_rewrite 和 Smarty 可以找到更详细的相关内容
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
企业培训学到了什么 培训感悟简短 有关培训的感悟 通过培训学到什么 培训你学到了什么 领导问培训学到什么怎么回复 Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 PHP 实现页面静态化的几种方法 php 中 单引号 输出字符串用 单、双引号区别是什么? PHP中单引号和双引号的区别 简述用双引号和单引号定义字符串的区别(PHP编程)? PHP语法中单引号和双引号的区别 php单引号和双引号的区别 php中对单引号和双引号的区别 在PHP中,单引号字符串同双引号字符串有什么区别? PHP中对变量使用单引号和双引号的区别 php字符串单引号和双引号的区别 php单引号和双引号的区别与用法 php中,单引号和双引号的区别 PHP中单引号与双引号的区别分析 浅谈PHP中单引号和双引号到底有啥区别呢? PHP单引号和双引号的区别 – 不知不问 php中单引号和双引号有什么区别? php 双引号和 单引号 有什么异同 PHP表示字符串的单引号和双引号有什么区别 php字符串中的双引号与单引号区别 php 单引号和双引号的区别 怎么实现网页静态化? php网站如何静态化? 大型php网站全站静态化怎么实现? 如果有上万个页面每更改一小篇文章都要全部重新生成吗? 如何实现网页静态化 PHP网站如何实现网页伪静态或静态? 大家好,请问一下yii2.0怎么实现页面静态化? php的url静态化 如何静态化URL地址 PHP中 php ob首页静态化 php全站静态、伪静态 如何让PHPWIND页面静态化 PHP缓存技术、静态化设计的原理是什么 php站怎么把全站URL静态化 python语言中的列表的建立 Python如何用列表向类传参?急!在线等! 用python语言如何给列表动态的赋值? PHP网站怎么修改页面? php网站怎么改 PHP网页修改 我想获取一个PHP网页的源码,并修改其中部分内容,需要用到什么软件