中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP如何實現頁面純靜態化和偽靜態化?

發布時間:2020-05-21 11:49:26 來源:億速云 閱讀:481 作者:Leah 欄目:編程語言

PHP如何實現頁面純靜態化和偽靜態化?相信很多新手小白對頁面靜態化的了解處于懵懂狀態,通過這篇文章的總結,希望你能有所收獲。如下資料是關于頁面靜態化的介紹。

概念

PHP靜態化分為:純靜態化 和 偽靜態化;

純靜態化又分為:局部靜態化 和 完全靜態化

純靜態化:是把PHP生成的動態頁面保存成靜態的html文件,用戶訪問該靜態頁面,而不是用戶每一次訪問都重新生成一張相同的網頁,優點就是減小服務器開銷,

局部靜態化:是生成的靜態文件中,有局部的數據還是通過ajax技術動態獲取的;

完全靜態化:即不存在動態獲取數據的情況,所以內容都來自靜態的html頁面

偽靜態化:Apache服務器rewrite配置

純靜態化的實現

利用php內置的ob函數實現頁面的靜態化,大概步驟如下:

<?php ob_start();//開啟緩存 
?>
<p>我是要生成的靜態內容,也可以在該處鏈接數據庫生成動態內容于此</p>
<?php 
file_put_contents( 'index.html', ob_get_clean() );//把生成的靜態內容保存到index.html文件,而不是輸出到瀏覽器
?>

觸發系統生成純靜態化頁面

方法:頁面添加緩存時間;手動觸發

頁面添加緩存時間

<?php
$file_name = 'index.html';
if(file_exists( $file_name ) &&  filemtime( $file_name ) - time() < 10 ){//如果文件是存在并且最后修改時間小于設定時間 10s
    //filemtime( $file_name );//得到文件最后修改時間
    //time();//當前時間
    require_once( $file_name );//引入文件
}else{
 ob_start( );
 ?>
<p>我是要生成的靜態內容</p>
 <?php
file_put_contents( $file_name,  ob_get_contents() )//輸出到瀏覽器
}

如果后臺數據存在更細,定時刷新不能及時更改靜態頁面,怎么辦?所有引入了手動觸發的功能

Linux下的crontab定時掃描程序

*/5****php/data/static/index.php

PHP偽靜態

Apache服務器rewrite配置

在httpd.conf文件中,找到

#注釋:去掉前邊的" # "開啟rewrite服務,重啟服務器生效
#LoadModule rewrite_module modules/mod_rewrite.so
#注釋:http-vhosts.conf文件是虛擬域名配置的文件,開啟改文件可以配置虛擬域名,一般默認是開啟的
#Include conf/extra/httpd-vhosts.conf

rewrite偽靜態配置

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
    #配置規則如下所示
    RewriteEngine on
    RewriteRule ^/vidio/([0-9]*).html$ /vidio.php?id=$1
    
</VirtualHost>

也可用.htacess文件,放在網站目錄下,無需重啟服務器。

以上就是PHP實現頁面純靜態化和偽靜態化的詳細內容了,看完之后是否有所收獲呢?如果想了解更多相關內容,歡迎關注億速云行業資訊!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

二连浩特市| 三亚市| 昔阳县| 正蓝旗| 汕尾市| 两当县| 永平县| 靖边县| 阿勒泰市| 古丈县| 临颍县| 汤原县| 万安县| 微博| 曲水县| 万宁市| 布尔津县| 福州市| 静宁县| 云林县| 徐州市| 礼泉县| 兴安盟| 伊金霍洛旗| 汕头市| 保山市| 洛扎县| 沙河市| 怀柔区| 闽侯县| 宜章县| 巩留县| 琼结县| 洛隆县| 永嘉县| 阳高县| 额敏县| 茶陵县| 华池县| 桐柏县| 金川县|