欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于PHP生成靜態(tài)頁(yè)的實(shí)現(xiàn)方法

 更新時(shí)間:2013年05月10日 17:37:59   作者:  
本篇文章是對(duì)PHP生成靜態(tài)頁(yè)的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下

t1.php

復(fù)制代碼 代碼如下:

<?php
// 方法一根據(jù)模版生成靜態(tài)頁(yè)面
// replaceTemplateString函數(shù)用于替換模板中指定字符串
function replaceTemplateString($templateString) {
    // 用來(lái)替換的變量
    $title = "文章標(biāo)題";
    $body = "這里是文章主體";
    // 替換模板中指定字符串
    $showString = str_replace ( "%title%", $title, $templateString );
    $showString = str_replace ( "%body%", $body, $showString );
    // 返回替換后的結(jié)果
    return $showString;
}


$template_file = "template.html";
$new_file      = "new.html";
// 模版文件指針
$template_juBing = fopen ( $template_file, "r" );
// 要生成的文件指針
$newFile_juBing = fopen ( $new_file, "w" );

// 方式一獲取整體模板內(nèi)容字符串,替換后賦給新文件
$templateString = fread ( $template_juBing, filesize ( $template_file ) );
$showString = replaceTemplateString ( $templateString ); // 替換模板中字符串
fwrite ( $newFile_juBing, $showString ); // 將替換后的內(nèi)容寫入生成的HTML文件

/*
// 方式二循環(huán)讀取模版每行內(nèi)容字符串,替換后依次添加到新文件
while ( ! feof ( $template_juBing ) ) { // feof() 函數(shù)檢測(cè)是否已到達(dá)文件末尾。如果文件指針到了末尾或者出錯(cuò)時(shí)則返回 TRUE。否則返回FALSE(包括 socket 超時(shí)和其它情況)。
    $templateString = fgets ( $template_juBing ); // fgets(file,length) 從文件指針中讀取一行并返回長(zhǎng)度最多為 length - 1 字節(jié)長(zhǎng)度的字符串,包括換行符。如果沒(méi)有指定 length,則默認(rèn)為 1K,或者說(shuō) 1024 字節(jié)。
    $showString = replaceTemplateString ( $templateString );
    fwrite ( $newFile_juBing, $showString ); // 第一次往打開的指針文件中寫入內(nèi)容時(shí)會(huì)替換指針文件中原有內(nèi)容,在該文件指針關(guān)閉前,fwrite函數(shù)再添加內(nèi)容會(huì)在已添加內(nèi)容之后
}
*/
// 關(guān)閉文件指針
fclose ( $newFile_juBing );
fclose ( $template_juBing );

 

/*
數(shù)據(jù)庫(kù)與靜態(tài)頁(yè)的關(guān)系
通常數(shù)據(jù)庫(kù)內(nèi)添加一條信息同后,生成一個(gè)該信息的靜態(tài)頁(yè)面,所以最好在數(shù)據(jù)庫(kù)表中添加一字段存儲(chǔ)對(duì)應(yīng)靜態(tài)頁(yè)面的路徑文件名,方便以后的修改,刪除

模版的替換
一般來(lái)說(shuō),如果需要修改靜態(tài)HTML頁(yè)面的模版,通常的做法是將所有的已經(jīng)生成的HTML頁(yè)面刪除,然后重新創(chuàng)建新的HTML頁(yè)面。(或者說(shuō)全部重新覆蓋生成)

靜態(tài)頁(yè)上的動(dòng)態(tài)操作
有些時(shí)候,在創(chuàng)建的靜態(tài)HTML頁(yè)上面也需要進(jìn)行一些動(dòng)態(tài)操作。例如,新聞系統(tǒng)中的每篇新聞要統(tǒng)計(jì)點(diǎn)擊率。
可通過(guò)一個(gè)寬和高都為0像素的圖像控件來(lái)隱藏的調(diào)用一個(gè)php頁(yè)面來(lái)實(shí)現(xiàn)頁(yè)面計(jì)數(shù)器功能,如
<img width='0' height='0' src='counter.php?fileid=S001'>

鏈接目錄的靜態(tài)頁(yè)
通常對(duì)于使用靜態(tài)頁(yè)面的系統(tǒng)來(lái)說(shuō),往往將連接列表的目錄頁(yè)也生成靜態(tài)HTML文件供訪問(wèn)者瀏覽
注意的是因?yàn)槊吭黾踊蛘邷p少一條數(shù)據(jù)庫(kù)信息都會(huì)對(duì)鏈接列表產(chǎn)生影響,因此,每次對(duì)數(shù)據(jù)庫(kù)信息進(jìn)行添加和刪除時(shí)都需要更新鏈接目錄的靜態(tài)頁(yè)。
分頁(yè)的設(shè)計(jì)可以通過(guò)創(chuàng)建多個(gè)鏈接目錄的靜態(tài)頁(yè)來(lái)完成。
*/


// 方法二根據(jù)緩沖區(qū)生成
ob_start (); // 當(dāng)緩沖區(qū)激活時(shí),并且有ob_end_clean()的情況下,所有輸出打印的非文件頭信息均不會(huì)輸出打印到頁(yè)面,而是保存在內(nèi)部緩沖區(qū)。如果沒(méi)有ob_end_clean(),則信息既被存在內(nèi)部緩沖區(qū),也被輸出打印
?>
this is test Output Control
<?php
echo "<br>this is test Output Control<br>";
include_once 'cache/newFile.php';

$contents = ob_get_contents (); // 獲取緩沖區(qū)到此為止存儲(chǔ)的信息,緩沖區(qū)只保存會(huì)向頁(yè)面瀏覽器輸出打印的內(nèi)容,php執(zhí)行代碼等不會(huì)保存
// $contents = ob_get_clean(); // 獲取緩沖區(qū)到此為止存儲(chǔ)的信息,并關(guān)閉清除緩沖區(qū)

// ob_end_flush();//輸出打印緩沖區(qū)到此為止存儲(chǔ)的信息,并關(guān)閉清除緩沖區(qū)

ob_end_clean (); // 關(guān)閉清除緩沖區(qū)的內(nèi)容

file_put_contents ( $new_file, $contents );// 向文件寫入內(nèi)容

?>


template.html
復(fù)制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>%title%</title>
</head>
<body>
<H1>%title%</H1>
<hr>
<pre>%body%</pre>
</body>
</html>

相關(guān)文章

  • php實(shí)現(xiàn)的短網(wǎng)址算法分享

    php實(shí)現(xiàn)的短網(wǎng)址算法分享

    這篇文章主要介紹了php實(shí)現(xiàn)的短網(wǎng)址算法,理論上支持1,073,741,824個(gè)短網(wǎng)址,個(gè)人使用足夠了,需要的朋友可以參考下
    2014-06-06
  • 表格展示無(wú)限級(jí)分類(PHP版)

    表格展示無(wú)限級(jí)分類(PHP版)

    TreeTable是一個(gè)能把無(wú)限分類展現(xiàn)為表格形式的PHP類庫(kù)插件,分類的層級(jí)表示為表格的列,分類的行數(shù)表格分類的總數(shù)。單元格顯示分類名稱
    2012-08-08
  • PHP傳值到不同頁(yè)面的三種常見方式及php和html之間傳值問(wèn)題

    PHP傳值到不同頁(yè)面的三種常見方式及php和html之間傳值問(wèn)題

    這篇文章主要介紹了PHP傳值到不同頁(yè)面的三種常見方式及php和html之間傳值問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • laravel在中間件內(nèi)生成參數(shù)并且傳遞到控制器中的2種姿勢(shì)

    laravel在中間件內(nèi)生成參數(shù)并且傳遞到控制器中的2種姿勢(shì)

    今天小編就為大家分享一篇laravel在中間件內(nèi)生成參數(shù)并且傳遞到控制器中的2種姿勢(shì),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-10-10
  • 深入理解PHP 數(shù)組之count 函數(shù)

    深入理解PHP 數(shù)組之count 函數(shù)

    下面小編就為大家?guī)?lái)一篇深入理解PHP 數(shù)組之count 函數(shù)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • Laravel5中Cookie的使用詳解

    Laravel5中Cookie的使用詳解

    這篇文章主要介紹了Laravel5中Cookie的使用,需要的朋友可以參考下
    2017-05-05
  • 一個(gè)可分頁(yè)的基于文本的PHP留言板源碼

    一個(gè)可分頁(yè)的基于文本的PHP留言板源碼

    一個(gè)可分頁(yè)的基于文本的PHP留言板源碼...
    2007-03-03
  • Django 中 cookie的使用

    Django 中 cookie的使用

    Cookie是瀏覽器在客戶端留下的一段記錄,這段記錄可以保留在內(nèi)存或者硬盤上。Django里面,對(duì)cookie的讀取和設(shè)置很簡(jiǎn)單。接下來(lái)通過(guò)本文給大家分享Django 中 cookie的使用,感興趣的朋友一起看看吧
    2017-08-08
  • PHP調(diào)用VC編寫的COM組件實(shí)例

    PHP調(diào)用VC編寫的COM組件實(shí)例

    最近項(xiàng)目需要PHP來(lái)解析二進(jìn)制數(shù)據(jù),如果直接PHP做比較麻煩,就想到VC編寫COM組件來(lái)做,提供PHP調(diào)用。文章將介紹VC編寫COM組件提供PHP調(diào)用,實(shí)現(xiàn)一個(gè)計(jì)算兩個(gè)數(shù)字相加的功能
    2014-03-03
  • phpstorm 配置xdebug的示例代碼

    phpstorm 配置xdebug的示例代碼

    這篇文章主要介紹了phpstorm 配置xdebug的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評(píng)論