国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah php教程 PHP源碼 PHP生成靜態(tài)網(wǎng)頁的方法

PHP生成靜態(tài)網(wǎng)頁的方法

Jun 08, 2016 pm 05:33 PM
content html nbsp quot

<script>ec(2);</script>

PHP生成靜態(tài)網(wǎng)頁的方法
  看到很多朋友在各個地方發(fā)帖問PHP生成靜態(tài)文章系統(tǒng)的方法,以前曾做過這樣一個系統(tǒng),遂談些看法,以供各位參考。好了,我們先回顧一些基本的概念。
  一,PHP腳本與動態(tài)頁面。
  PHP腳本是一種服務(wù)器端腳本程序,可通過嵌入等方法與HTML文件混合,也可以類,函數(shù)封裝等形式,以模板的方式對用戶請求進(jìn)行處理。無論以何種方式,它的基本原理是這樣的。由客戶端提出請求,請求某一頁面 -----> WEB服務(wù)器引入指定相應(yīng)腳本進(jìn)行處理 -----> 腳本被載入服務(wù)器 -----> 由服務(wù)器指定的PHP解析器對腳本進(jìn)行解析形成HTML語言形式 ----> 將解析后的HTML語句以包的方式傳回給瀏覽器。由此不難看出,在頁面發(fā)送到瀏覽器后,PHP就不存在了,已被轉(zhuǎn)化解析為HTML語句??蛻粽埱鬄橐粍討B(tài)文件,事實(shí)上并沒有真正的文件存在在那里,是PHP解析而成相對應(yīng)的頁面,然后發(fā)送回瀏覽器。這種頁面處理方式被稱為“動態(tài)頁面”。
  二,靜態(tài)頁面。
  靜態(tài)頁面是指在服務(wù)器端確實(shí)存在的僅含HTML以及JS,CSS等客戶端運(yùn)行腳本的頁面。它的處理方式是。由客戶端提出請求,請求某一頁面 ----> WEB服務(wù)器確認(rèn)并載入某一頁面 ----> WEB服務(wù)器將該頁面以包的形式傳遞回瀏覽器。由這一過程,我們對比一下動態(tài)頁面,即可方現(xiàn)。動態(tài)頁面需由WEB服務(wù)器的PHP解析器進(jìn)行解析,而且通常還需連接數(shù)據(jù)庫,進(jìn)行數(shù)據(jù)庫存取操作,然后才能形成HTML語言信息包;而靜態(tài)頁面,無須解析,無須連接數(shù)據(jù)庫,直接發(fā)送,可大大減輕服務(wù)器壓力,提高服務(wù)器負(fù)載能力,大幅提供頁面打開速度和網(wǎng)站整體打開速度。但其缺點(diǎn)是,不能動態(tài)地對請求進(jìn)行處理,服務(wù)器上必須確實(shí)存在該文件。
  三,模板及模板解析。
  模板即尚未填充內(nèi)容html文件。例如:
 temp.html



{?title?}

this?is?a?{?file?}?file's?templets


PHP處理:
 templetest.php

$title?=?"http://siyizhu.com測試模板";
$file?=?"TwoMax?Inter?test?templet,
author:Matrix@Two_Max";

 $fp?=?fopen?("temp.html","r");
$content?=?fread?($fp,filesize?("temp.html"));
$content?=?str_replace?("{?file?}",$file,$content);
$content?=?str_replace?("{?title?}",$title,$content);

echo?$content;
?>?
模板解析處理,即將經(jīng)PHP腳本解析處理后得出的結(jié)果填充(content)進(jìn)模板的處理過程。通常借助于模板類。目前較流行的模板解析類有phplib,smarty,fastsmarty等等。模板解析處理的原理通常為替換。也有些程序員習(xí)慣將判斷,循環(huán)等處理放進(jìn)模板文件中,用解析類處理,典型應(yīng)用為block概念,簡單來說即為一個循環(huán)處理。由PHP腳本指定循環(huán)次數(shù),如何循環(huán)代入等,再由模板解析類具體實(shí)施這些操作。
  好了,對比過靜態(tài)頁面與動態(tài)頁面各自的優(yōu)劣,現(xiàn)在我們就來說說,如何用PHP生成靜態(tài)文件。
  PHP生成靜態(tài)頁面并不是指PHP的動態(tài)解析,輸出HTML頁面,而是指用PHP創(chuàng)建HTML頁面。同時因?yàn)镠TML的不可寫性,我們創(chuàng)建的HTML若有修改,則需刪掉重新生成即可。(當(dāng)然你也可以選擇用正則進(jìn)行修改,但個人認(rèn)為那樣做倒不如刪掉重新生成來得快捷,有些得不償失。)
  言歸正傳。用過PHP文件操作函數(shù)的PHP?FANS知道,PHP中有一個文件操作函數(shù)fopen,即打開文件。若文件不存在,則嘗試創(chuàng)建。這即是PHP可以用來創(chuàng)建HTML文件的理論基礎(chǔ)。只要用來存放HTML文件的文件夾有寫權(quán)限(即權(quán)限定義0777),即可創(chuàng)建文件。(針對UNIX系統(tǒng)而言,Win系統(tǒng)無須考慮。)仍以上例為例,若我們修改最后一句,并指定在test目錄下生成一個名為test.html的靜態(tài)文件:

$title?=?"http://siyizhu.com測試模板";
$file?=?"TwoMax?Inter?test?templet,
author:Matrix@Two_Max";
 $fp?=?fopen?("temp.html","r");
$content?=?fread?($fp,filesize?("temp.html"));
$content?=?str_replace?("{file}",$file,$content);
$content?=?str_replace?("{title}",$title,$content);
//?echo?$content;?
$filename?=?"test/test.html";
$handle?=?fopen?($filename,"w");?//打開文件指針,創(chuàng)建文件
/*
 檢查文件是否被創(chuàng)建且可寫
*/
if?(!is_writable?($filename)){
die?("文件:".$filename."不可寫,請檢查其屬性后重試!");
}
if?(!fwrite?($handle,$content)){?//將信息寫入文件
die?("生成文件".$filename."失?。?);
}?
fclose?($handle);?//關(guān)閉指針

die?("創(chuàng)建文件".$filename."成功!");
?>
實(shí)際應(yīng)用中常見問題解決方案參考:
  一,文章列表問題:  
  在數(shù)據(jù)庫中創(chuàng)建字段,記錄文件名,每生成一個文件,將自動生成的文件名存入數(shù)據(jù)庫,對于推薦文章,只需指向存放靜態(tài)文件的指定文件夾中的該頁面即可。利用PHP操作處理文章列表,存為字符串,生成頁面時替換此字符串即可。如,在頁面中放置文章列表的表格加入標(biāo)記{articletable},而在PHP處理文件中:

$title?=?"http://siyizhu.com測試模板";
$file?=?"TwoMax?Inter?test?templet,
author:Matrix@Two_Max";
$fp?=?fopen?("temp.html","r");
$content?=?fread?($fp,filesize?("temp.html"));
$content?=?str_replace?("{file}",$file,$content);
$content?=?str_replace?("{title}",$title,$content);?
//?生成列表開始
$list?=?'';
$sql?=?"select?id,title,filename?from?article";
$query?=?mysql_query?($sql);
while?($result?=?mysql_fetch_array?($query)){
$list?.=?''.$result['title'].'
';
}
$content?.=?str_replace?("{articletable}",$list,$content);?
//生成列表結(jié)束
//?echo?$content;?
$filename?=?"test/test.html";
$handle?=?fopen?($filename,"w");?//打開文件指針,創(chuàng)建文件
/*
 檢查文件是否被創(chuàng)建且可寫
*/
if?(!is_writable?($filename)){
die?("文件:".$filename."不可寫,請檢查其屬性后重試!");
}
if?(!fwrite?($handle,$content)){?//將信息寫入文件
die?("生成文件".$filename."失??!");
}?
fclose?($handle);?//關(guān)閉指針?
die?("創(chuàng)建文件".$filename."成功!");
?>
二,分頁問題。
  如我們指定分頁時,每頁20篇。某子頻道列表內(nèi)文章經(jīng)數(shù)據(jù)庫查詢?yōu)?5條,則,首先我們通過查詢得到如下參數(shù):1,總頁數(shù);2,每頁篇數(shù)。第二步,for?($i?=?0;?$i?
$fp?=?fopen?("temp.html","r");
$content?=?fread?($fp,filesize?("temp.html"));
$onepage?=?'20';
$sql?=?"select?id?from?article?where?channel='$channelid'";
$query?=?mysql_query?($sql);
$num?=?mysql_num_rows?($query);
$allpages?=?ceil?($num?/?$onepage);
for?($i?=?0;$i if?($i?==?0){
$indexpath?=?"index.html";
}?else?{
$indexpath?=?"index_".$i."html";
}
$start?=?$i?*?$onepage;
$list?=?'';
$sql_for_page?=?"select?name,filename,title?from?article?where?channel='$channelid'?limit?$start,$onepage";
$query_for_page?=?mysql_query?($sql_for_page);
while?($result?=?$query_for_page){
$list?.=?''.$title.'
';
}
$content?=?str_replace?("{articletable}",$list,$content);
if?(is_file?($indexpath)){
@unlink?($indexpath);?//若文件已存在,則刪除
}
$handle?=?fopen?($indexpath,"w");?//打開文件指針,創(chuàng)建文件
/*
 ?檢查文件是否被創(chuàng)建且可寫
*/
if?(!is_writable?($indexpath)){
echo?"文件:".$indexpath."不可寫,請檢查其屬性后重試!";?//修改為echo
}
if?(!fwrite?($handle,$content)){?//將信息寫入文件
echo?"生成文件".$indexpath."失??!";?//修改為echo
}?
fclose?($handle);?//關(guān)閉指針
}
fclose?($fp);
die?("生成分頁文件完成,如生成不完全,請檢查文件權(quán)限系統(tǒng)后重新生成!");
?>
大致思路如此,其中如其它數(shù)據(jù)生成,數(shù)據(jù)輸入輸出檢查,分頁內(nèi)容指向等可酌情在頁面中加入。
  在實(shí)際文章系統(tǒng)處理過程當(dāng)中,還有許多問題有待考慮,與動態(tài)頁面不同之處,需注意的地方還有很多。但大致思路即是如此,其它方面可舉一反三而得。
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana saya membenamkan kod php dalam fail html? Bagaimana saya membenamkan kod php dalam fail html? Jun 22, 2025 am 01:00 AM

Anda boleh membenamkan kod PHP ke dalam fail HTML, tetapi pastikan fail itu mempunyai lanjutan .php supaya pelayan dapat menghuraikannya dengan betul. Gunakan tag standard untuk membungkus kod PHP, masukkan kandungan dinamik di mana sahaja di HTML. Di samping itu, anda boleh menukar PHP dan HTML beberapa kali dalam fail yang sama untuk merealisasikan fungsi dinamik seperti rendering bersyarat. Pastikan anda memberi perhatian kepada konfigurasi pelayan dan ketepatan sintaks untuk mengelakkan masalah yang disebabkan oleh label pendek, kesilapan tanda petikan atau label akhir yang ditinggalkan.

Bagaimana saya meminimumkan saiz fail html? Bagaimana saya meminimumkan saiz fail html? Jun 24, 2025 am 12:53 AM

Untuk mengurangkan saiz fail HTML, anda perlu membersihkan kod berlebihan, memampatkan kandungan, dan mengoptimumkan struktur. 1. Padam tag yang tidak digunakan, komen dan kosong tambahan untuk mengurangkan jumlah; 2. Pindahkan CSS dan JavaScript dalam fail luaran dan menggabungkan pelbagai skrip atau blok gaya; 3. Memudahkan sintaks label tanpa menjejaskan parsing, seperti menghilangkan tag tertutup pilihan atau menggunakan atribut pendek; 4. Selepas pembersihan, aktifkan teknologi pemampatan sisi pelayan seperti GZIP atau Brotli untuk mengurangkan jumlah penghantaran. Langkah -langkah ini dapat meningkatkan prestasi pemuatan halaman tanpa mengorbankan fungsi.

Bagaimanakah HTML berkembang dari masa ke masa, dan apakah tonggak utama dalam sejarahnya? Bagaimanakah HTML berkembang dari masa ke masa, dan apakah tonggak utama dalam sejarahnya? Jun 24, 2025 am 12:54 AM

HtmlHasevolvElvEltanthantlantlantlantlylantelscreationTomeetTheGrowingDemandsofwebdeveloPerersandUsers

Bagaimanakah saya menggunakan elemen  untuk mewakili footer dokumen atau seksyen? Bagaimanakah saya menggunakan elemen untuk mewakili footer dokumen atau seksyen? Jun 25, 2025 am 12:57 AM

Ia adalah tag semantik yang digunakan dalam HTML5 untuk menentukan bahagian bawah halaman atau blok kandungan, biasanya termasuk maklumat hak cipta, maklumat hubungan atau pautan navigasi; Ia boleh diletakkan di bahagian bawah halaman atau bersarang, dan sebagainya. Tag sebagai akhir blok; Apabila menggunakannya, anda harus memberi perhatian untuk mengelakkan penyalahgunaan berulang dan kandungan yang tidak relevan.

Apakah Deklarasi , dan apa yang dilakukannya? Apakah Deklarasi , dan apa yang dilakukannya? Jun 24, 2025 am 12:57 AM

Adeclarationisaformalstatementthatsomethinghinghinghingshingshingshinghinghinghingshingshingshingshinghinghinghingse, offiger, orrequired, usedtoclearlydefineorannounceanintent, fakta, orrule.itplaysakeyroleinprogrammingbydefiningvariablesandfunctions, inlegalcontextsbyreportinginderourd

Bagaimanakah saya menggunakan atribut TabIndex untuk mengawal susunan elemen tab? Bagaimanakah saya menggunakan atribut TabIndex untuk mengawal susunan elemen tab? Jun 24, 2025 am 12:56 AM

ThetabindexattributecontrolshowelementsReceiveFocusViathetabkey, withthreemainvalues: tabindex = "0" addsanelementTothenaturalalTaborder, Tabindex = "-1" membolehkan programmaticfocusonly)

Apakah tujuan jenis input = 'julat'? Apakah tujuan jenis input = 'julat'? Jun 23, 2025 am 12:17 AM

InputType = "Range" digunakan untuk membuat kawalan slider, yang membolehkan pengguna memilih nilai dari julat yang telah ditetapkan. 1. Ia terutamanya sesuai untuk adegan di mana nilai perlu dipilih secara intuitif, seperti melaraskan jumlah, kecerahan atau sistem pemarkahan; 2. Struktur Asas termasuk Atribut Min, Max dan Langkah, yang menetapkan nilai minimum, nilai maksimum dan saiz langkah masing -masing; 3. Nilai ini boleh diperoleh dan digunakan dalam masa nyata melalui JavaScript untuk meningkatkan pengalaman interaktif; 4. Adalah disyorkan untuk memaparkan nilai semasa dan memberi perhatian kepada kebolehcapaian dan masalah keserasian pelayar apabila menggunakannya.

Bagaimanakah saya menggunakan unsur -unsur  dan  untuk memberikan kapsyen untuk imej? Bagaimanakah saya menggunakan unsur -unsur dan untuk memberikan kapsyen untuk imej? Jun 24, 2025 am 12:45 AM

Cara standard untuk menambah tajuk ke imej dalam HTML adalah menggunakan dan elemen. 1. Penggunaan asas adalah untuk membungkus imej dalam tag dan menambah tajuk di dalamnya, contohnya: ini adalah tajuk imej; 2. Sebab -sebab untuk menggunakan kedua -dua tag ini termasuk semantik yang jelas, kawalan gaya yang mudah, dan kebolehcapaian yang kuat, yang membantu penyemak imbas, crawler dan pembaca skrin untuk memahami struktur kandungan; 3. Nota termasuk bahawa ia boleh diletakkan ke atas dan ke bawah tetapi perlu mengekalkan perintah logik, tidak dapat menggantikan atribut alt, dan boleh mengandungi pelbagai elemen media untuk membentuk keseluruhan unit.

See all articles