php轉靜態
Ⅰ 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怎麼生成靜態頁面
利用模板。目前PHP的模板可以說是很多了,有功能強大的smarty,還有簡單易用的smarttemplate等。它們每一種模板,都有一個獲取輸出內容的函數。我們生成靜態頁面的方法,就是利用了這個函數。用這個方法的優點是,代碼比較清晰,可讀性好。
這里我用smarty做例子,說明如何生成靜態頁:
<?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網站如何純靜態化
純靜態網站在網站中是怎麼實現的?
純靜態的製作技術是需要先把網站的頁面總結出來,分為多少個樣式,然後把這些頁面做成模板,生成的時候需要先讀取源文件然後生成獨立的以.html結尾的頁面文件,所以說純靜態網站需要更大的空間,不過其實需要的空間也不會大多少的,尤其是對於中小型企業網站來說,從技術上來講,大型網站想要全站實現純靜態化是比較困難的,生成的時間也太過於長了。不過中小型網站還是做成純靜態的比較,這樣做的優點是很多的。
而動態網站又是怎麼進行靜態處理的?
頁面靜態化是指將動態頁面變成html/htm靜態頁面。動態頁面一般由asp,php,jsp,.net等程序語言編寫而成,非常便於管理。但是訪問網頁時還需要程序先處理一遍,所以導致訪問速度相對較慢。而靜態頁面訪問速度快,卻又不便於管理。那麼動態頁面靜態化即可以將兩種頁面的好處集中到一起。
Ⅳ PHP將整個網站生成HTML靜態
其實實現的方法很簡單
php;"> <?php //在你的開始處加入 ob_start(); ob_start(); //以下是你的代碼 //在結尾加入 ob_end_clean() 並把本頁輸出到一個變數中 $temp = ob_get_contents(); ob_end_clean(); //寫入文件 $fp = fopen(『文件名』 w』); fwrite($fp $temp) or die(『寫文件錯誤』); ?>
這只是最基本的方法 還不是很實用 因為網站是要更新的 要定期重新生成HTML
下面是我用的方法
if(file_exists("xxx ")) { $time = time(); //文件修改時間和現在時間相差半小時一下的話 直接導向文件 否則重新生成 if($time filemtime("xxx ") < * ) { header("Location:xxx "); } } //在你的開始處加入 ob_start(); ob_start();
//頁面的詳細內容 //在結尾加入 ob_end_clean() 並把本頁輸出到一個變數中 $temp = ob_get_contents(); ob_end_clean();
//寫入文件 $fp = fopen(『xxx 』 w』); fwrite($fp $temp) or die(『寫文件錯誤』);
//重新導向 header("Location:xxx ");
lishixin/Article/program/PHP/201311/20980
Ⅳ 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如何實現網頁靜態
一、靜態化的優點:
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轉靜態程序越完整越好。
你可以試一下我這個 函數
makehtml.html
<a href="make.php?action=links" class="red">生成</a>
----------
make.php
<?php
error_reporting(7);
set_time_limit(0);
// 載入後台函數集合
require_once ("global.php");
require_once ("inc/make_inc.php");
//mklinks
if($_GET['action'] == 'links'){
$MK->makelinks();
redirect("操作成功!", "./article.php?action=make");
}
?>
--------
make_inc.php
<?
error_reporting(7);
require "template.php";
$MK = new makes;
$MK->pf=$db_prefix;
$MK->cf=$configuration;
$MK->DB=$DB;
$MK->t=new template("../templates/".$configuration[template]);
class makes {
// ####################### mklinks #######################
function makelinks()
{
$putsort="<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td><div class=\"download_all_categories\">
<ul>";
$querys = $this->DB->query("SELECT * FROM ".$this->pf."link order by linkid desc");
while ($lrow=$this->DB->fetch_array($querys))
{
$putsort.="<li>".$lrow['value']."</li>";
}
$putsort.="</ul>
</div>
</td>
</tr>
</table>";
$this->t->set_file("links","links.html");
$this->t->set_var(array(
"putsort"=>$putsort,
"html_author"=>$_SESSION[gp_username],
"html_time"=>date("Y-m-d H:i:s",time()),
"keywords"=>$cf['keywords'],
"description"=>$cf['description'],
"puttitle"=>$this->cf['title'],
"template"=>$this->cf['template'],
"right"=>$this->cf['right'],
"puturl"=>$this->cf['url']));
$this->t->parse("OUT","links");
$filename = "../links.html";
$this->t->savetofile("$filename","OUT");
$this->t->renew();
}
?>
這是關鍵的幾個文件,如再不明白,就在線hi我吧
Ⅷ PHP網站如何實現網頁偽靜態或靜態
偽靜態 實際是伺服器的設置,php實現靜態,就是用php生成靜態頁,可以考慮用php的smarty 模板引擎
Ⅸ php網站怎麼生成靜態
生成靜態基本就是寫文件了。
首先要有寫入許可權,然後獲取到要寫入文件的內容,然後創建指定的文件,然後把內容寫入到指定文件中。這個就是寫文件的過程了,也就是生成靜態的過程。
現在市面上有很多好的CMS的供你使用,像上面幾樓說的帝國cms(ecms),織夢cms(dedecms),phpcms(簡稱pc),cmstop等等,這些都是基於PHP語言的可生成靜態頁面的CMS
Ⅹ 怎麼把php頁面變成靜態頁面
首先要確定你的Apache啟用了mod_rewrite模塊,並且將http.conf文件中網站所在目錄的AllowOverride None 改為 AllowOverride all
然後在程序目錄下創建一個名為 .htaccess的文件
將以下內容寫入這個文件里:
RewriteEngine On
RewriteRule ^index/([0-9]+)\.html$ index.php?page=$1