97超碰在线播放|美女自慰免费观看|亚洲无码三四五区|日韩无码分类大全|日本美女在线99|毛片网女人免费看|亚洲国产香蕉av|久久免费看片视频|超碰在线无码一区|玖玖中文字幕在线

284292114@qq.com 中國站
新聞中心 網絡推廣 網站建設 優(yōu)化推廣 首頁>新聞中心>網站建設

pbootcms生成靜態(tài)html首頁的一個簡易方法

時間:2021-10-15   訪問量:0

之前做了一個PB制作的網站,采集數據達到一萬五千條,此時網站首頁在訪問index.php的時候,需要等待至少一分鐘才能載入,相當卡。但是其他頁面運行還是很流暢的,即使我使用的是香港服務器,訪問速度也不差。

于是將首頁換成html頁面,訪問速度基本是秒開,再訪問其他頁面,速度也很快,這樣的體驗效果很好。但是之前是手工制作的index.html,于是考慮有沒有簡單的辦法生成index.html.

程序是有靜態(tài)緩存的,打開:  runtime     cache目錄下可以看到生成了很多不規(guī)則的html文件。其中有一個就是首頁的html,于是考慮直接讀取這個將它寫到網站根目錄下。


**步:一個讀取并寫入到根目錄下的PHP文件放在根目錄下。例如:html.php

內容如下:當然了,里面的一些東西可以改成自己的。temp_file后面的路徑地址,為什么我使用:indexphp.html,后面我會提到。

<?php
header('content-type:text/html; charset=utf-8');//防止生成的頁面亂碼
$title = "PHP 動態(tài)生成靜態(tài)HTML頁面"; //定義變量
$url = "https://www.zuoan.com.cn/";
$temp_file = "runtime/cache/indexphp.html"; //臨時文件,也可以是模板文件
$dest_file = "index.html"; //生成的目標頁面
$fp = fopen($temp_file, "r"); //只讀打開模板
$str = fread($fp, filesize($temp_file));//讀取模板中內容
$str = str_replace("{penglig_site_title}", $title, $str);//替換內容
$str = str_replace("{penglig_site_url}", $url, $str);//替換內容
fclose($fp);
$handle = fopen($dest_file, "w"); //寫入方式打開需要寫入的文件
fwrite($handle, $str); //把剛才替換的內容寫進生成的HTML文件
fclose($handle);//關閉打開的文件,釋放文件指針和相關的緩沖區(qū)
echo "<script>alert('生成成功');window.location.href='".$dest_file."';</script>";
?>


第二步:就是上面說的temp_file后面的路徑地址

由于程序的緩存文件是隨機生成的,而且每隔一段時間它是發(fā)生變化的。

于是我們考慮將這個緩存文件生成的名字固定一下,不讓它隨機變化。

打開:   core     view 下面的:view.php


第153行有這樣一段代碼:

$cacheFile = $this->cachePath . '/' . md5(get_http_url() . $_SERVER["REQUEST_URI"] . $lg . $wap) . '.html'; // 緩存文件

它就是隨機生成了靜態(tài)緩存中的html頁面名字。

我們改造它一下:

 $urlname =  $_SERVER["REQUEST_URI"];  //獲取到當前的路徑地址
 $newurl = preg_replace('/W/', '', $urlname);  //去除路徑地址中的/符號,避免無法寫入到目錄     
 $cacheFile = $this->cachePath . '/' . $newurl . '.html'; //名稱和后綴合并并寫到到緩存目錄

通過這一步,當訪問網站根目錄的index.php 的時候就會生成一個靜態(tài)HTML名字叫:indexphp.html到緩存目錄。也就是**步我所選擇的位置。



第三步:其實到這一步,可以通過手工生成了靜態(tài)了,訪問一個網站的:index.php,再訪問一下:html.php就實現了。但是這樣有點麻煩。

我們直接在后臺添加一個點擊生成來得方便一點。

后臺的原本的image.png服務器信息感覺沒什么用,就用它來制作生成首頁的按鈕吧。

打開后臺的模型文件:server.html,改成以下代碼:


{include file='common/head.html'}

<div class="layui-body">
	<div class="layui-tab layui-tab-brief" lay-filter="tab">
	  <ul class="layui-tab-title">
	    <li class="layui-this" lay-id="t1">生成靜態(tài)首頁HTML</li>
	  </ul>
	  <iframe id="iframe" src="/index.php" frameborder="0" width="100%" height="0px"></iframe>
	   <a href="/html.php" class="layui-btn layui-btn-sm layui-btn-danger">點擊生成首頁HTML</a>
	  
	</div>
</div>

{include file='common/foot.html'}

*后實現的效果就是:

image.png


此方法目錄只適合單語言站,并且是響應式的網站,不適合多語言文字或者多數據區(qū)域站點,或者獨立手機版。

多語言站點一般為企業(yè)站,數據量一般不大,所以也就沒有必要花時間去研究了。

服務咨詢
1對1咨詢,專業(yè)客服為您解疑答惑
聯系銷售
15899750475
在線咨詢
聯系在線客服,為您解答所有的疑問
ARE YOU INTERESTED IN ?
感興趣嗎?

有關我們服務的更多信息,請聯系項目經理

15899750475 楊先生