如何将PHP动态网站转换成真正的静态网页
asp.net 动态改为静态页面的3个方法
动态改为静态页面的3个方法最后将动态该为静态页面的方法我给出来:.net中生成静态页面最简单的3种方法,注意要引用2个命名空间:using ;using system.io;first:在服务器上指定aspx网页,生成html静态页public partial class Default2 : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){StreamWriter sw = new StreamWriter(Server.MapPath("静态页1.htm"), false, System.Text.Encoding.GetEncoding("gb2312"));Server.Execute("Default3.aspx", sw);sw.Close();}}}second:在服务器上执行aspx网页时在page_render事件里将本页面生成html静态页public partial class Default3 : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected override void Render(HtmlTextWriter writer){StringWriter html = new StringWriter();System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(html);base.Render(tw);System.IO.StreamWriter sw;sw = new System.IO.StreamWriter(Server.MapPath("静态页2.htm"), false, System.Text.Encoding.Default);sw.Write(html.ToString());sw.Close();tw.Close();Response.Write(html.ToString());}}third:从指定连接获取源代码生成html静态页public partial class Default4 : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){string pageurl = "";WebRequest request = WebRequest.Create(pageurl);WebResponse response = request.GetResponse();Stream resstream = response.GetResponseStream();StreamReader sr = new StreamReader(resstream,System.Text.Encoding.Default);string contenthtml = sr.ReadToEnd();resstream.Close();sr.Close(); //写入文件System.IO.StreamWriter sw;sw = new System.IO.StreamWriter(Server.MapPath("静态页生成方法3.htm"), false, System.Text.Encoding.Default);sw.Write(contenthtml);sw.Close();} }}。
php 动态页面生成静态页面
php 动态页面生成静态页面函数(实用)function createhtm($fromurl,$filename,$id){//创建静态页面global $db;$content = file_get_contents( $fromurl);$handle = fopen ($filename,"w");if (!is_writable ($filename)){echo "<font color='#FF9900'>不能生成:".$filename."因为文件不存在或不可写</font><br>";}if (!fwrite ($handle,$content)){echo "<font color='#FF0000'>生成文件".$filename."失败</font><br>";}fclose ($handle);//echo "<font color='#00CC00'>生成文件".$filename."成功</font><br>";if(file_exists($filename) && $id){$query = "update news set cn_htmurl='$filename' where id='$id' ";//把生成的静态地址写在数据库里$db->query($query);}}/*静态内容*/function contenthtm($folder2,$phpfilename,$class22,$id,$cn_ipage,$en_ipage,$updatetime){ //获得动态网址和对应的静态页面名称//$phpfilename 默认文件夹名称对应前台动态相应文件例如news.php//$folder2 所在文件夹名称例如前台news文件夹//$class22 分类id//$id 文章id//$updatetime 时间global $webhtm,$weburl,$htmtype,$htmpre_e,$htmpagename,$m_now_time,$en_lang_ok,$cn_lang _ok,$db;if($webhtm!=0){if($updatetime!=""){$updatetime = date('Ymd',strtotime($updatetime));}else{$updatetime = date('Ymd',$m_now_time);}if($htmpagename==2){$folder=$db->get_one("select * from class_name where id='$class22'");$foldername=$folder[foldername];}$foldername2="../../".$folder2.'/'.date('Ym').'/';if (!file_exists($foldername2)) {if (!make_dir($foldername2)) {echo "创建年月文件夹失败";}}switch($htmpagename){case 0; $pagename=$phpfilename.$id; break;case 1; $pagename=$updatetime.$id; break;case 2; $pagename=$foldername.$id; break;}if($cn_lang_ok==1){if($cn_ipage){//长文章分页数for($i=1;$i<=$cn_ipage;$i++){$fromurl=$weburl.$folder2."/".$phpfilename.".php?id=".$id."&ipage=".$i;$filename=$foldername2.$pagename."_".$i.".".$htmtype;if($i==1){createhtm($fromurl,$filename,$id);}else{createhtm($fromurl,$filename);}}}else{$fromurl=$weburl.$folder2."/".$phpfilename.".php?id=".$id; $filename=$foldername2.$pagename.".".$htmtype;createhtm($fromurl,$filename,$id);}}}}function make_dir($folder) {//创建文件夹$reval = false;if (!file_exists($folder)) {@umask(0);preg_match_all('/([^\/]*)\/?/i', $folder, $atmp);$base = ($atmp[0][0] == '/') ? '/' : '';foreach($atmp[1]AS $val) {if ('' != $val) {$base .= $val;if ('..' == $val || '.' == $val) {$base .= '/';continue;}} else {continue;}$base .= '/';if (!file_exists($base)) {if (@mkdir($base, 0777)) {@chmod($base, 0777);$reval = true;}}}} else {$reval = is_dir($folder);}clearstatcache();return $reval;}主要的函数就是这些,我做的系统就是用这几个函数的,希望对需求的人要帮助,有不好的地方请高手指教!!!。
一分钟把动态网站变成静态网站
0 -
赢
I 、~
■
, t
》
,
雯 _
. t .
嘲 嘲爆翳蜘
嘲
M 3 墨 P
嚣爨
列酒溜 j
c n a ntle o t i i d
1 ry uwi e d t n o e iwd 一o o ln e 0 e c d t h%7E sy t l nax
页 . 在 已 经 变 成 类 似 ht: w w. y so .e/ 现 t / w s l hwnt p/ te cas c si~ 1ap这 样 的 静 态 网 页 了 。经 过 ls- l s 2 .s a d
1 2 l 知识 技 K 0 乜脑 与 7
维普资讯
容 无 法 被 搜 索 弓 擎 大 面 积 的 收 录 到 . 从 而 减 少 l 了 从 搜 索 引 擎 或 通 过 网 站 关 键 宇 来 访 问 网 站 的
机 会 , 失 了一 定 的 网站访 问流量 。 损
步骤 三囊
Fez ” r e 的标签 页 , 击它 , e 点 进入 设置 窗 口, 图 2 如 。
击 “ 定 ” 钮 , 出 网 站 属 性 设 置 窗 E。 确 按 退 l
经 过 以 上 的 设 置 后 ,我 们 的 网站 就 已经 完
全 变 成 一 个 静 态 网 站 了 ,原 来 像 ht: w w. t /w p/
s lso .e/ls. p cas = 1这 样 的 动 态 网 t eh w n t asa ?lsi 2 y c s d
就会 失效 , 要 重新收 录。 需
、
De c i ton s rp i : Re l c @’一. &I n pa e1 l —a d I —wi i @ I t tde h l exe s o o t e e d o t n i nt h n fURL URL ex amp e: l h t : w c st o d ∥ a e a a v i p r m2 v  ̄ a p tp/ v w i c m/ i D g p r ml a l a a - a / e s No e : t s Fi ame p r mee a s a d p r ln e s. a a t rn me n aame e au s c nn t t r le a o v 1 a d mo efe 一 n v l i
PHP页面静态化——纯静态与伪静态用法详解
PHP页⾯静态化——纯静态与伪静态⽤法详解⽬录为什么要静态化页⾯?伪静态纯静态静态化页⾯实现原理代码实现本⽂实例讲述了PHP页⾯静态化——纯静态与伪静态⽤法。
分享给⼤家供⼤家参考,具体如下:为什么要静态化页⾯?当⽤户访问⼀个不经常更新的Web页⾯,PHP接到指⽰对php脚本⽂件进⾏解析,从数据库查询到该页⾯所需要的数据,然后对页⾯模板进⾏渲染,最后将⼀个成品页⾯展⽰给⽤户。
单次请求对于服务器来说⾮常简单,处理起来⾮常快,但是如果同时有成千上万各⽤户请求该页⾯呢?这⽆疑是对资源的⼀种浪费,这就是我们要做静态的⽬的。
静态化分为纯静态与伪静态,纯静态⼜分为局部纯静态和全部纯静态。
伪静态纯静态局部纯静态⼀个页⾯通常由多个部分组成,例如⼀个博客,他可能由正⽂、分类、友情链接、栏⽬等部分组成。
当有些部分更新频繁,⽽有些部分不常更新时就可以采⽤局部静态化。
全部纯静态看了前⾯的内容这个就很容易理解了,当⼀个页⾯所有内容都不常更新即采⽤这种⽅式。
静态化页⾯实现原理⾸先要说的是⼀个叫做缓冲器(buffer)的东西。
举个简单的例⼦说明他的作⽤:我们在编辑⼀篇⽂档时,在我们没有保存之前,系统是不会向磁盘写⼊的,⽽是写到buffer中,当buffer写满或者执⾏了保存操作,才会将数据写⼊磁盘。
对于PHP来说,每⼀次像 echo 这样的输出操作,同样是先写⼊到了 php buffer ⾥,在脚本执⾏完毕或者执⾏了强制输出缓存操作,数据才会在浏览器上显⽰。
这⾥我们就要对这个缓冲区做⼀下⽂章了,在php输出内容之前,我们取出缓冲区的内容(这⾥就是渲染好的模板内容了),然后将其写⼊⼀个静态⽂件中并设置过期时间,当下次⽤户访问该页⾯的时候,如果该静态⽂件存在并且在有效期内,我们就直接将该静态⽂件展⽰给⽤户看,否则重写静态⽂件。
代码实现数据库连接,⽤到了单例模式。
Database.php<?phpclass Database {//⽤于保存实例化对象private static $instance;//⽤于保存数据库句柄private $db = null;//禁⽌直接实例化,负责数据库连接,将数据库连接句柄保存⾄私有变量$dbprivate function __construct($options) {$this->db = mysqli_connect($options['db_host'], $options['db_user'], $options['db_password'], $options['db_database']);}//负责实例化数据库类,返回实例化后的对象public static function getInstance($options) {if (!(self::$instance instanceof self)) {self::$instance = new self($options);}return self::$instance;}//获取数据库连接句柄public function db() {return $this->db;}//禁⽌克隆private function __clone() {// TODO: Implement __clone() method.}//禁⽌重构private function __wakeup() {// TODO: Implement __wakeup() method.}}⽤于静态化页⾯Cache.php<?phpclass Cache {public function index($options) {//判断⽂件是否存在,判断是否过期if (is_file('shtml/index.shtml') && (time() - filemtime('shtml/index.shtml') < 300)) {require_once ('index.shtml');}else {require_once ('Database.php');$con = Database::getInstance($options)->db();$sql = "SELECT * FROM pro_test";$exe_res = mysqli_query($con, $sql);$res = mysqli_fetch_all($exe_res);try{if (!$res) {throw new Exception("no result");}}catch (Exception $e) {echo 'Message: ' .$e->getMessage();}//开启缓存区,这后⾯的内容都会进缓存区ob_start();//引⼊模板⽂件(模板会渲染数据)require_once ('templates/index.php');//取出缓存区内容(在这⾥是渲染后的模板),将其保存(默认会覆盖原来的)为index.shtml(static html) file_put_contents('shtml/index.shtml', ob_get_contents());}}}//数据库配置信息$options = ['db_host' => 'mysql','db_user' => 'root','db_password' => 'localhost','db_database' => 'pro_shop',];$obj = new Cache();$obj->index($options);template/index.php<!DOCTYPE><html><head><meta charset="UTF-8"><title>⾸页</title></head><body><?php foreach ($res as $item) {?><div>姓名:<?php echo $item[1]?></div><div>密码:<?php echo $item[2]?></div><?php }?></body></html>浏览器访问 localhost/Cache.php更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》希望本⽂所述对⼤家PHP程序设计有所帮助。
ECSHOP伪静态修改生成纯静态页面设置方法
ECSHOP伪静态修改生成纯静态页面设置方法伪静态已经基本上可以满足大部分人的需求,如果不满足的还可以根据前面的一篇文章对重写规则进行修改,以满足自己的需求。
但是本文所要描述的是,根据ECSHOP内在的一些代码,我们生成纯静态的网页,使系统更好的优化。
在这里,我们先对首页进行纯静态生成。
1.复制首页index.php为index_html.php,因为ECSHOP是使用SMARTY模板引擎的,所以我们可以使用SMARTY生成文件函数,把模板的静态网页输出。
在首页中,$smarty->display('index.dwt', $cache_id);有这一句,说明是把网页显示出来,现在我们把它改成如下代码(参看注释)$file = 'index.html';//静态网页文件名$content = $GLOBALS['smarty']->make_html('index.dwt');//根据index.dwt模板生成网页内容$filename = ROOT_PATH . $file;//静态网页路径file_put_contents($filename, $content);//生成文件以上几条简单的语句,我们就可以生成首页的静态网页。
同理,我们可以生成产品类别和产品的静态网页,整个系统的静态化就完成了。
首页静态页面生成后,我们接下来要生成的是产品类别的静态页面,我的想法是把产品类别页面保存在跟目录下,这样虽然会比较乱,但是比较适合优化,因为一般搜索引擎抓取的时候只抓取二到三层。
把产品类别放在根目录,体现产品类别的重要性,易于搜索引擎的内容来自LZ工作室抓取,另外一方面,我们可以把产品放在下个目录中。
类似代码:$filename = build_uri('category', array('cid' => $catinfo['cat_id']));//构造路径,这个可以选择自己喜欢的构造方法$content = $GLOBALS['smarty']->make_html('category.dwt');//产生静态页面内容$filename = ROOT_PATH . $filename;//生成文件路径,在根目录下file_put_contents($filename, $content);//输出产品的静态页面代码:$goodinfo = get_all_goodsinfo($goods_id);$cat_name = $goodinfo['cat_name'];$goodsfile = build_uri('goods', array('gid' => $goods_id));$content = $GLOBALS['smarty']->make_html('goods.dwt');$html_tempdir = (ROOT_PATH.$cat_name.'/');if (!is_dir($html_tempdir))//生成产品目录{mkdir($html_tempdir);}$htmlfilename = ROOT_PATH . $goodsfile;file_put_contents($htmlfilename,$content);我的是使用类别名称加下划线:function build_uri(........)................case 'category':$cat_name = $GLOBALS['db']->getOne('SELECT cat_name FROM ' . $GLOBALS['ecs']->table('category') . " WHERE cat_id = '$cid'");$uri = $cat_name . '-' . $cid;if (!empty($page)){$uri .= '-' . $page;}........case 'goods':$goods_info = $GLOBALS['db']->getRow('SELECT g.goods_name, c.cat_name FROM ' . $GLOBALS['ecs']->table('goods') . " as g left join " .$GLOBALS['ecs']->table('category') . " as c on c.cat_id = g.cat_id WHERE g.goods_id = '$gid'");$goods_name = $goods_info['goods_name'];$cat_name = $cat_name;$uri = $cat_name . '/' . $goods_name . '-' . $gid ;有人问 make_html 这个函数在那里: 我现在补充如下:在 includes 下的 cls_template.php 加上function make_html($filename, $cache_id = ''){ob_start();$this->display($filename,$cache_id);$out = ob_get_contents();ob_end_clean();return $out;}。
ASP.NET下利用动态网页技术生成静态HTML页面的方法
关 键 词
A P N T 动态 页面 S. E
静 态页面
C 撑
THE ETHoD M oF GENERATI NG TATI HTM L S C PAGES
W I H YN T D AMI E A EC I C W B P GE T HN QUE I AS . E N P N T
Ab t a t sr c A to fg n r t g sai ML p g s w t y a c w b p g e h iu n AS . T n r d c d Wi h s meh d,h me h d o e e a i tt HT n c a e i d n mi e a e tc n q e i P NE i i t u e . t t i h s o h t o te
w b st d n sr tr a u l tt ML w b p g lswh n h d s t e c n e t. h te a r a e w b p g ssmp y a d q i k e i a mi i ao sc n b i sa i HT e t d c e a e f e e e a d h o tn s T e me h d c n ce t e a e i l n u c — i
加 网页时直接利用后 台管理发布程 序就 把页面存放成 H ML静态文件 , T 它有生成页面简单 、 快速 的优 点。这 种技术对于访 问量大 的 网站尤其适用 , 以减轻服务器端运行程序和读取 数据 库的压力 , 高 了网站 的数据 存取 效率 , 可 提 生成 的静 态页面也 更利于搜 索 引擎
维普资讯
第2 5卷 第 1 期
20 0 8年 1月
计算 机应 用 与软件
前端开发中的网页静态化方法介绍
前端开发中的网页静态化方法介绍随着互联网的发展,网页加载速度成为了用户体验的关键因素。
为了提高网页的加载速度和性能,前端开发人员常常采用网页静态化方法。
网页静态化是将动态生成的网页转化为静态的HTML文件的过程,以便于在客户端直接访问,避免了服务器动态生成的过程,从而提高了网页的响应速度和性能。
下面我将介绍几种常用的网页静态化方法。
1. 预渲染预渲染可以在服务器端执行,也可以在客户端执行。
在服务器端,预渲染是指在每次页面请求到达服务器时,服务器将动态生成的HTML文件生成静态的HTML文件,并将其返回给客户端。
这样,用户可以直接访问到静态的HTML文件,无需再经过服务器的处理。
在客户端,预渲染是指使用JavaScript在浏览器中动态预先生成静态的HTML 文件。
这种方法适用于那些不需要实时性数据的网页。
在页面加载完成后,预渲染的HTML文件会取代原先的动态生成内容,从而提高了用户访问的体验。
2. 缓存缓存是将动态生成的页面在服务器端进行缓存,以便于下次将缓存的页面直接返回给客户端请求。
这种方法适用于对实时性要求不高的页面。
通过设置合理的缓存策略和过期时间,可以有效减少服务器的负载和网络请求次数,提高网页的响应速度。
3. 预加载预加载是一种提前加载网页所需资源的方法,以加速用户访问的体验。
在网页静态化过程中,可以将一些可能会被用户访问到的资源进行预加载。
例如,图片、CSS文件、JavaScript文件等。
这样,当用户访问网页时,这些资源已经在客户端完成了加载,从而减少了请求时间,提高了网页的加载速度。
4. 前端渲染前端渲染是指将动态生成的网页内容通过Ajax等方式请求到客户端,并使用JavaScript进行渲染的方法。
这种方法适用于需要频繁更新数据的网页。
通过将数据和业务逻辑处理都在客户端完成,并将结果展示给用户,可以有效减轻服务器的负担和网络请求次数。
5. 静态生成器静态生成器是一种将动态生成的网页转化为静态的HTML文件的工具。
浅谈生成静态网页技术
浅谈生成静态网页技术作者:卢晓阳来源:《数字化用户》2013年第22期【摘要】本文针对动态网页和静态网页作一比较,提出一种自动生成静态网页的技术,网站管理者通过在后台更新网数据库时,调用生成静态网页的函数即可自动生成静态网页。
并分析了生成静态网页的优势。
【关键词】生成静态静态网页一、引言随着互联网技术的不断发展,越来越多的企业都拥有自己的网站,网站或用来展示他们的产品,或用来宣传他们的业务,网站架起了用户之间的桥梁。
而网站主要有网页组成,网页大体上可分为动态网页和静态网页。
动态网页指的是采用ASP,,JSP,PHP,Cold Fusion,CGI等程序动态生成的页面,一般以·asp,·jsp,·php,·per,·cgi等形式为后缀。
静态网页是利用启事本直接使用html语言编写的 , 也可使用 Microsoft FrontPage 或Macromedia Dreamweaver等可视化开发软件制作网页。
一般以.htm,.html等形式为人后辍。
用动态网页开发技术开发的网站可以极大的提高开发效率及网站规模, 但由于其与数据库紧密相联, 必须依靠数据库才能正常运行, 如果后台数据库发生故障, 整个网站马上瘫痪。
如何才能使得网站既具备静态网页高速和稳定, 又具备动态网页的规模和高效?需要我们探索自动生成静态网页的技术。
二、一种生成静态网页的技术动态生成静态网页基本的原理是: 客户所访问的网站与使用静态网页开发技术开发的网站一样都是由静态的页面组成, 客户与数据库没有联系 , 这就保证了网站的高速和稳定 ;但这些静态的页面不是由开发人员手工完成, 而通过后台自动生成, 这就保证了网站的规模与高效。
常见的一种生成静态网页的技术是利用模板文件与数据替换的方法,是先建立一个或者多个以html 为基础的模板文件,在文件中用特殊字符串代表要替换的变量值,然后用查询与替换的方法把数据库中的值替换相应字符串,生成.html的全静态页面。
PHP动态网页实现静态HTML技术的方法实现.
time(//判断上次生成 HTML 文件是否以过去 1时间,若没有才直接输出文件内容{if ($show_html//是否以 HTML 静态页面展示 (0不以 HTML 展显 1以 html 展显{if ($go_html//是否直接转到 HTML 文件显示还是 PHP 读得内容输出 (0:php读内容输出 1:直接转{header("Location: " . HTML_FILE;//直接转}else{echo(file_get_contents(HTML_FILE;//读出展显 }exit(0;}}}/*___判断是否已生成了 HTML 文件,若生成了则跳转到 HTML 页面_____end_____*/?>$value{$atpl[strtoupper($key ."_LANG"] = $value; }/*__________列表常识向上走的项 _______end_______*/ include("woods-templates.php";$tpl = new WoodsTpl("./templates/";$tpl->require_tpl("header.html";$tpl->set_file(;$tpl->block("EBCORP", $scorp;$tpl->block("NEWS", $news;$tpl->block("PRODUCT", $product;$tpl->block("EBPNAME_MSG", $spname;$tpl->block("LORE", $lore;$tpl->require_tpl("footer.html";$tpl->parse($atpl, true;$tpl = NULL;/*_____模板操作 ________end_____________*/require("woods-bhtml.php";//生成 HTML 处理尾?>。
php如何生成静态页面
PHP处理:
templetest.php
Code:
$title = "拓迈国际测试模板";
$file = "TwoMax Inter test templet,
author:Matrix@Two_Max";
$fp = fopen ("temp.html","r");
while ($result = $query_for_page){
$list .= ''.$title.'
';
}
$content = str_replace ("{ articletable }",$list,$content);
if (is_file ($indexpath)){
三,模板及模板解析。
模板即尚未填充内容html文件。例如:
temp.html
Code:
<HTML>
<TITLE>{ title }</TITLE>
<BODY>
this is a { file } file's templets
</BODY>
Code:
$title = "拓迈国际测试模板";
$file = "TwoMax Inter test templet,
author:Matrix@Two_Max";
$fp = fopen ("temp.html","r");
$content = fread ($fp,filesize ("temp.html"));
如何实现动态页面静态化
如何实现动态页面静态化
动态变静态
方法一:使用现成的插件,比如:ISAPI_Rewrite、IIS Rewrite、Apache
HTTP服务器的mod_rewrite等,它们都是基于正则表达式解析器开发的重写引擎。
它们的使用方法查看它们自带的帮助即可。
方法二:自己写的代码实现动态网页静态化,方法也有好几种:
1、创建FSO对象,利用此对象将所需的内容动态创建到文件中生成HTML页面;
2、利用模板技术,将模板中特殊代码的值替换为从表单或是数据库字段中接受过来的值生成HTML文件;
3、使用Server.Transfer转换技术,
方法三:使用HttpWebRequest请求客户端的方式,获取返回资源,生成静态页面。
一般这样只需要获取网页内容即可,其它资源可放置在服务器上,自动加载。
(注:此方法缺点明显,需要大量更改匹配URL,建议慎用)
方法四:在asp中有IhttpModule接口。
Ihttpmodule可以简单理解为一个可以在执行像.aspx,或者mvc中control/action前,添加我们自定义的操作的东西。
我们只需要编写这么一个HttpModule就可以了,当用户第一次请求asp处理时,我们可以在ihttpmodule中拦截到这个请求,然后
获取到这次请求应该返回的html代码,然后我们返回这些html给用户,并保存刚才我们获取到的html到文件内,当用户下次请求时,我们只需要直接返回我们已经保存的html文件即可
原文链接:。
php生成静态html页面的方法(2种方法)
php⽣成静态html页⾯的⽅法(2种⽅法)因为每次⽤户点击动态链接的时候都会对服务器发送数据查询的要求,对于⼀个访问量可能达百万千万级别的⽹站来说这⽆疑是服务器⼀个⼤⼤的负担,所以把动态数据转换成静态html页⾯就成了节省⼈⼒物⼒的⾸选。
因为此前没有相应的经验刚开始的时候觉得这个技术很神秘,但在看了⼀些例⼦以后发现并不是那么复杂(不过⽹上的资料并不是特别详细),经过⼀个上午加中下午的试验终于把该做的任务完成了下⾯是⼀些⼼得和⼀个简单的例⼦希望⼤虾们不要笑话我哈⼀般来说⽤php转换输出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(),道理⼀样的。
php转html java方法
主题:PHP转HTML的Java方法1. 背景介绍近年来,随着互联网技术的发展,网页开发变得越来越重要。
在网页开发中,将动态生成的PHP代码转换为静态的HTML页面是一个常见的需求。
本文将介绍使用Java编程语言来实现PHP转HTML的方法。
2. PHP转HTML的需求2.1 动态网页的生成在Web应用中,PHP常常用于生成动态网页。
即根据用户的请求,通过PHP脚本动态生成网页内容并返回给用户的浏览器。
这种方式可以使全球信息站更加灵活和交互性更强。
2.2 静态网页的应用然而,有时候我们需要将动态生成的网页固化成静态的HTML页面,以提高全球信息站的性能和减轻服务器的负担。
将PHP代码转换为HTML页面成为了一个常见的需求。
3. 使用Java实现PHP转HTML3.1 解析PHP页面我们需要使用Java来解析PHP页面。
可以使用Jsoup等工具来解析PHP生成的网页内容,获取其中的HTML标签和内容。
3.2 处理PHP中的动态内容在PHP页面中,通常会包含各种动态内容,如数据库查询结果、用户输入等。
在解析PHP页面后,我们需要将这些动态内容进行处理,以便生成静态的HTML页面。
可以考虑使用正则表达式或其他方法来提取和处理动态内容。
3.3 生成静态HTML页面将经过解析和处理的PHP页面内容按照HTML格式拼接起来,生成静态的HTML页面。
可以使用Java提供的文件操作相关类来实现将内容写入到文件中。
4. 实现示例以下是一个简单的使用Java实现PHP转HTML的示例代码:```Javaimport org.jsoup.Jsoup;import org.jsoup.nodes.Document;import java.io.File;import java.io.FileWriter;import java.io.IOException;public class PHPTOHTML {public static void m本人n(String[] args) {try {// 解析PHP页面Document doc = Jsoup.connect("xxx").get();// 处理PHP中的动态内容// TODO: 处理动态内容的代码// 生成静态HTML页面File htmlFile = new File("example.html");FileWriter writer = new FileWriter(htmlFile);writer.write(doc.html());writer.close();} catch (IOException e) {e.printStackTrace();}}}```5. 总结通过使用Java编程语言,我们可以实现将动态生成的PHP页面转换为静态的HTML页面。
工作中超实用的三个动态网页静态化转换工具
工作中超实用的三个动态网页静态化转换工具
工作中超实用的三个动态网页静态化转换工具
工作中超实用的三个动态网页静态化转换工具本文推荐的三个工具是动态网页实现伪静态的一个自动化工具。
在动态网页静态化的过程中,我们经常需要用Rewrite或Apache的重写规则,但一般程序不足的朋友往往难以将动态的多参数URL地址有效表达成静态URL。
现在有了秦爱给你推荐的工具,你可以很轻松的将那些动态网页表达成你需要的静态地址。
bbz快播电影
动态网址:/catalog.asp?page=2
★ webmaster-toolkit
它提供了一个针对Apache服务器的动态网址重定规则自动化服务,它可以将动态的网址转变成目录形式和静态网址形式,例中的动态网址可以转换为:
/catalog/page/和/catalog2.htm两种形式。
★ Live2Support
这个网站仅提供了将动态网址转换为静态目录规则的自动化服务,输入动态网址就可以得到一段转换好的代码,你只需将它拷贝粘贴到.htaccess文件中即可。
★ LinkVendor
这个网站提供的自动化服务中对目录规则的制定多了一种形式,共计有三种,也是针对Apache服务器的。
也许看了上面的三个自动化工具你会问,有没有IIS下应用于ASP 的重写规则呢?也许有,但秦爱没有找到。
不过,你可以根据Apache 的重写规则进行修改就可以了。
最后秦爱给一个从网上摘录下来的有关动态化网页实现静态化的方法供你下载研究,这其中包括了虚拟主机条件下实现静态化的思路。
PHP生成静态HTML的源代码及用法
最近研究PHP的一些开发技术,发现PHP有很多ASP所没有的优秀功能,可以完成一些以前无法完成的功能,例如动态生成HTML静态页面,以减少服务器CPU的负载,提高用户访问的速度。
我们知道,PHP读取MYSQL动态显示,在访问量大的情况下,会有很多性能问题,如果租用别人的虚拟主机,则会因为CPU消耗过多而被限制CPU,导致网页无法访问。
我这里给出一个PHP动态生成HTML的方法,可以极大降低服务器CPU负荷。
首先设置.htaccess文件,将动态调用的参数转换为静态的HTML的URL地址,例如将在post目录下的文件,转发到根目录的wp-post.php文件中,加入的语句类似:RewriteRuleost/([a-z0-9-]+.html)$ wp-post.php?$1$2然后修改wp-post.php文件,在文件的开头加入以下PHP代码:ob_start();$qstring = isset($_SERVER[%26quot;QUERY_STRING%26quot;]) ? $_SERVER[%26quot;QUERY_STRING%26quot;] : %26quot;%26quot;;define(%26quot;HTML_FILE%26quot;, $_SERVER['DOCUMENT_ROOT'].%26quot;/post/%26quot;.$qstring);if (file_exists(HTML_FILE)){$lcft = filemtime(HTML_FILE);if (($lcft + 3600) %26gt; time()) //判断上次生成HTML文件是否超过1小时,若没有才直接输出文件内容{echo(file_get_contents(HTML_FILE));exit(0);}}之后是现有的PHP的代码,然后在当前代码的最后面加上如下的PHP代码:define(%26quot;HTMLMETA%26quot;,%26quot;%26lt;!-- this is a real static html file created at %26quot;.date(%26quot;Y-m-d H:i:s%26quot;).%26quot; --%26gt;%26quot;);$buffer = ob_get_flush();$fp = fopen(HTML_FILE, %26quot;w%26quot;);if ($fp){fwrite($fp, $buffer.HTMLMETA);fclose($fp);}好了,然后查看你的静态HTML页面,如果页面尾部出现了注释行,说明已经成功的创建了静态HTML文件。
PHP生成静态页面
生成静态页面:其实思路异常的简单,我们知道PHP只是个解析脚本,当它执行完后,我们直接吧生成的这个页面另存为一个静态的HTML文件就可以了。
最最最核心就是PHP Output Control 输出控制函数。
其实PHP手册中已经有了完整的代码,我们只需要简单的修改就可以了。
我们来看一下ob_start函数。
PHP代码我们看到,其实就是一个回调函数在做鬼,页面的输出部分都当作一个$buffer参数传进去,想到了?对,如果要生成静态页面,我们只需要fwrite($fp,$buffer);就OK啦。
我们下面来看下核心的代码:PHP代码到这里,我们已经可以生成静态页面了,你还不会没关系,继续往下看。
我们现在先不往下研究了,我们回过头来看一下cnbeta是怎么设计的。
首先打开cnbeta的首页。
我们看到有一系列的文章列表,把鼠标移到任意一个页面上去,我们可以看到其连接,并不是一个HTML静态文件,而是一个PHP文件,比如:/article.php?sid=66196。
我们来看下,当你点开这个连接,他会自动跳到相同参数的一个HTML静态页面,所以我是这样认为的:首先跳到一个比如叫article.php?sid=66196,在这个PHP文件中进行一系列的判断处理,比如有没有静态文件,这个静态页面是不是最新的等等。
如果有静态页面,那么好,就跳转到66196.html这个文件。
好,现在我们根据他的思路,写一个article.php。
我们的文章是以参数传进去的,比如article.php?id=5 就是第五篇文章。
在这个article头部检查是否存在5.html这个文件,如果存在转到该文件,如果不存在就creatHtml()直接调用上面那个函数,但是fileName还得更改下,因为我那个叫temp.html。
生成了静态页面了,如果你是一个好学者,你肯定会有一个很大的疑问,就是如何知道这个HTML是最新的呢?比如我一开始写了一个文章,ID为5,内容为12345,并且生成了静态页面5.html。
生成PHP网站页面静态化的方法
生成PHP网站页面静态化的方法生成PHP网站页面静态化的方法页面静态化的方法,分为两种,一种是伪静态,就是url 重写,一种是你真的静态化。
下面一起来看看!在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板、缓存等实现页面静态化,今天就以PHP实例教程形式讨论PHP生成静态页面的'方法。
什么是PHP静态化PHP静态化的简单理解就是使网站生成页面以静态HTML的形式展现在访客面前,PHP静态化分纯静态化和伪静态化,两者的区别在于PHP生成静态页面的处理机制不同。
PHP生成静态HTML页面的方法1、利用PHP模板生成静态页面PHP模板实现静态化非常方便,比如安装和使用PHP Smarty实现网站静态化。
2、使用PHP文件读写功能生成静态页面PHP生成静态页面实例代码3、使用PHP输出控制函数(Output Control)生成静态页面输出控制函数(Output Control)也就是使用和控制缓存来生成静态HTML页面,也会使用到PHP文件读写函数。
PHP生成静态页面实例代码我们知道使用PHP进行网站开发,一般执行结果直接输出到游览器,为了使用PHP生成静态页面,就需要使用输出控制函数控制缓存区,以便获取缓存区的内容,然后再输出到静态HTML页面文件中以实现网站静态化。
PHP生成静态页面的思路为:首先开启缓存,然后输出了HTML 内容(你也可以通过include将HTML内容以文件形式包含进来),之后获取缓存中的内容,清空缓存后通过PHP文件读写函数将缓存内容写入到静态HTML页面文件中。
PHP文件读写教程?获得输出的缓存内容以生成静态HTML页面的过程需要使用三个函数:ob_start()、ob_get_contents()、ob_end_clean()。
知识点:1、ob_start函数一般主要是用来开启缓存,注意使用ob_start之前不能有任何输出,如空格、字符等。
php实现静态化
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>这样浏览器直接訪问html⽂件,从⽽减轻了数据库的压⼒。
php网页静态化及模板原理演示
php网页静态化及模板原理演示网页静态化及模板原理演示看了一些开源系统的,简单的总结一下php的模板及静态原理。
先贴代码,再做解释。
index.phpPhp代码1.<?php2.//如果已存在静态页面,直接读取并显示3.if(file_exists('index.html'))4.{5.echo file_get_contents('index.html');6.}7.else8.{9.//这里把需要的变量都附好值10.$var = "Hello,World.";11.//开启输出缓存12.ob_start();13.//这里调用模板,模板里嵌入一些PHP标签,用来显示变量的值14.require_once('template.php');15.//这里得到输出缓存,也就是调用模板后,将来要显示到页面上的内容16.$out = ob_get_contents();17.//把要显示的内容保存成一个文件18.file_put_contents('index.html',$out);19.//输出20.ob_end_flush();21.}template.phpPhp代码1.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xht ml1-transitional.dtd">2.<html xmlns="/1999/xhtml">3.<head>4.<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />5.<title>HTML</title>6.</head>7.<body>8.<hr/>9.<p>10.<?php echo $var;?>11.</p>12.<hr/>13.</body>14.</html>代码解释见注释。
PHP实现页面静态化的几种方法
echo '<pre>'; print_r($_SERVER); preg_match('/^\/(\d+)\/(\d+)\.html/',$_SERVER['PATH_INFO'],$arr); print_r($arr);
3、通过Apache配置来实现
今天小编就为大家分享一篇关于php统计实时统计汉字个数和区别小编觉得内容挺不错的现在分享给大家具有很好的参考价值需要的朋友一起跟随小编来看看吧
PHP实 现 页 面 静 态 化 的 几 种 方 法
1、通过buffer来实现
需要用file_put_contents ob_get_clean()等内置函数
ob_start (); include "filterpost.html"; $mtime = filemtime("./filterpost.html");//在这里可以判断文件是否存在和过期,然后做缓存或者生成静态文件操作 $pageCache = str_replace('submit2','login',ob_get_contents());//将缓存去中的内容替换 ob_end_clean(); echo $mtime; echo $pageCache;
需要开启rewrite重写模块 通过rewrite来配置vhost
RewriteEngine on RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f RewriteRule ^/detail/([0-9]*).html$ /detail.php?id=$1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
?>
3.执行上面的方法后,你会看生成了一个静态的index.html文件
ob_start();
include $source_page_url;
$web_html = ob_get_contents();
ob_end_clean();
echo $web_html;
$file = fopen($html_page_url, "wa");
fwrite($file, $web_html);//如果要存入mysql数据库最好先用addslashes函数处理一下
<?php
$source_page_url = './index.php';//假设文件在同一目录下
$html_page_url = './index.html';
if($_GET['update'] == 1){//更新
@unlink($html_page_url);
}
if (file_exists($source_page_url)) {//创建
如何将PHP网页转化为纯静态网页
适用范围:
1.网站的页面或部分页面片段不需要频繁刷新动态数据的
2.极度依赖SEO的企业官网、推广页面等
技术要点:
1.PHP动态生成页面
2.PHP读取生成的页面内容
3.PHP将读取的页面内容存储为纯静态文件(如:.html)
4.对外部请求直接使用静态文件路径
优点:
1.利于SEO优化
for($i = 0; $i < 100000; $i++){
echo (($i%10)==0)?($i.'<br>'):($i.' ');
}
?>
</body>
2.</html>PHP(changeToHtml.php)将含有PHP代码的http:localhost/Index.php页面转化/更新为index.html
2.降低服务器资源损耗3源自提高浏览器响应速度代码程序:
1.动态页面原网页:http:localhost/Index.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>PHP动态原页面</title>
</head>
<body>
<?php