快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

自动生成静态页面

<?php
function CreateShtml()
{

ob_start("callback_CteateShtml");
}
function callback_CteateShtml($buffer)
{

$page = intval(@$_REQUEST["page"]);
$shtml = new Shtml();
$shtml->SetFileName($_SERVER[\\'DOCUMENT_ROOT\\'] . dirname($_SERVER[\\'PHP_SELF\\']) . "/" . basename($_SERVER[\\'PHP_SELF\\'],".php") . ($page==0 ? "" : "_" . strval($page)) . ".htm");
$shtml->Templet = $buffer;
$shtml->Create();
return $buffer;
}
?>
在页面的开始部分加入CreateShtml() 即可。


<?php
class Shtml
{
var $Templet;
var $DataSource;
var $Dir;

var $fileName;
var $mod;
var $handle;

function Shtml($fileName="")
{

$this->fileName=$fileName;
$this->mod="wb";
$this->handle=false;

$this->Templet = "";
$this->DataSource = array();
$this->Dir = "";
}

/// <描述>
/// 绑定数据源,参数为一数组。
/// </描述>

function BindData($arr)
{

$this->DataSource = $arr;
}

/// <描述>
/// 设置文件存放路径。
/// </描述>

function SetDir($dir)
{

$this->Dir = $dir;
}
function SetFileName($fileName)
{

return $this->fileName=$fileName;
}

function GetMod()
{

return $this->mod;
}
function SetMod($mod)
{

return $this->mod=$mod;
}
function Open()
{

if(substr($this->fileName,0,1)=="/")
$this->fileName = $_SERVER[\\'DOCUMENT_ROOT\\'] . $this->fileName;
if($this->handle=fopen($this->fileName, $this->mod))
return $this->handle;
else
return false
;
}
function Close()
{

return fclose($this->handle);
}
function Write($content)
{

return fwrite($this->handle,$content);
}
function MkDir($pathname)
{

$currentPath="";
str_replace("\\","/",$pathname);
$pathArr = split("/",$pathname);
if($pathArr[0] == "") //使用绝对路径
{
$currentPath = $_SERVER[\\'DOCUMENT_ROOT\\'];
}
else
{
$currentPath = $_SERVER[\\'DOCUMENT_ROOT\\'] . dirname($_SERVER[\\'PHP_SELF\\']);
}
for($i=0; $i<count($pathArr); $i++)
{

if($pathArr[$i]=="")
continue;
else
if
(is_dir($currentPath . "/" . $pathArr[$i]))
$currentPath = $currentPath . "/" . $pathArr[$i];
else
mkdir($currentPath = $currentPath . "/" . $pathArr[$i]);
}
}


/// <描述>
/// 生成静态文件。
/// </描述>

function Create()
{

$tmp = $this->Templet;
foreach($this->DataSource as $key=>$value)
{

$tmp = str_replace("<FIELD_" . $key . ">", $value, $tmp);
}
$this->MkDir(dirname($this->fileName));
$this->Open();
$this->Write($tmp);
$this->Close();
}
}


function CreateShtml()
{

ob_start("callback_CteateShtml");
}
function callback_CteateShtml($buffer)
{

$page = intval(@$_REQUEST["page"]);
$shtml = new Shtml();
$shtml->SetFileName($_SERVER[\\'DOCUMENT_ROOT\\'] . dirname($_SERVER[\\'PHP_SELF\\']) . "/" . basename($_SERVER[\\'PHP_SELF\\'],".php") . ($page==0 ? "" : "_" . strval($page)) . ".htm");
$shtml->Templet = $buffer;
$shtml->Create();
return $buffer;
}
?>
把以上代码保存为include.php

以下为test.php

<?
include("include.php");
CreateShtml();

?>
返回类别: 教程
上一教程: 利用GD库生成高质量缩略图
下一教程: 无限分类与树型论坛的实现方式

您可以阅读与"自动生成静态页面"相关的教程:
· 谈谈生成静态页面的一些经验
· PHP生成静态页面详解
· PHP生成静态页面的两种方式
· 强烈推荐! 静态新闻列表自动生成程序
· 强烈推荐! 静态新闻列表自动生成程序。
    微笑服务 优质保证 索取样品