使用PHP生成HTML静态页面

HTML静态页面是从PHP生成的,并存储到以年份和月份名称创建的目录中。

读取所有数据批量生成,全部生成后弹出提示。

可以指定批量生成的数量,建议不超过800,否则执行速度会有问题。

(由于已知原因,数据库中涉及的数据字段的名称已被更改,并且参数过滤器的一部分将被删除)。

描述:原动态地址摸板。phpid = 1,和后是HTML / 200808 / sell_1.html.page.php是分页程序,这是发表在这个博客。

页面采用的方式是为了节省代码make.php,和使用的方法来访问,浏览器PHPT =号PG =页。例如,让300pg = 2 =。原发性甲状旁腺功能亢进症,这是一次产生300个数据,并生成它的数据表,这是第二页,跳过前300。如果不添加任何参数,make.php是直接访问,有200项产生的每一次,都是从第一页生成。

完整的例子:


< PHP
如果($ _get { } = =PG){
1美元;
其他{ }
AA =美元美元_get PG } {;
}
包括(管理 / conn.php );
require_once(页面。PHP );
结果= mysql_query美元(SELECT * FROM 2carsell );
总= mysql_num_rows美元($结果);
pagelist美元= $ _get {T};
如果($ _get {T} = =){
pagelist美元= '200;
其他{ }
pagelist美元= $ _get {T};
}
寻呼机寻呼机(=新美元美元美元总,pagelist);
datastat美元= 美元-> countall寻呼机。
$ $ =分页页;
pagenav美元=美元-> backstr寻呼机寻呼机。美元-> thestr美元-> nextstr寻呼机;
从美元=美元pagelist *($寻呼机-> PG-1);
结果= mysql_query美元(SELECT * FROM 2carsell订单ID DESC LIMIT从美元,美元pagelist );
>
辅助页面生成。
<
生成静态页面
打印;
而($ datauser = mysql_fetch_array($结果)){

IID =美元美元datauser {id};
为HTML = file_get_contents( /摸板。phpid =美元的IID。;
为SQL =SELECT * FROM 2carsell id是$ IID ;
$data = mysql_fetch_array(mysql_query($ SQL));
$路径=日期(YM
testdir美元=HTML / 为路径;
如果(file_exists($ testdir)):
其他的:
mkdir(testdir美元,0777);
回声目录。testdir美元。创造成功!;
Endif;

为文件名=HTML /路径/美元美元sell_ IID。html;

使用写模式打开文件名
如果(!为处理= fopen($文件名,'w')){
打印无法打开文件$文件名;
出口;
}

如果(is_writable($文件名)){

我们将编写到html打开文件。
如果(!fwrite(合处理,$ HTML)){
打印无法写入文件$文件名;
出口;
}

打印文件$文件名更新成功!;

Fclose($处理);

{人}
打印文件$文件名不能写入;
}
>




<
美元= AA + 1;
如果(AA $ BB BB){
恭喜,所有的页面都完成了!;

其他{ }

}
>




在例子之后,我们继续分析和分析。

一般来说,通过使用PHP输出html页面引用大虾有两种方法。

第一:使用模板。目前,PHP的模板可以说是很多的,强大的聪明,简单和易于使用的该,等等。他们每个人都有一个函数来得到输出的内容。我们的方式生成静态页面是使用这个功能。这种方法的好处是,代码清晰易读。

在这里我使用Smarty为例说明如何生成静态页:


< PHP
要求( / Smarty Smarty。类。PHP );
$ T =新的Smarty;
赋值(标题
内容获取;
这里是获取(/)()函数来获取输出,$内容变量现在在要显示的内容内。
$ FP = fopen(档案 / 2005 / 05 / 19 / 0001。HTML
fwrite($ FP,$content);
Fclose($ FP);
>




方式二:使用功能的OB系列,功能是用在这里主要(ob_start),ob_end_flush(),ob_get_content(ob_start),这是()打开浏览器缓存,打开缓冲后由文件头信息发送所有非PHP程序不存储在缓冲区中,但里面除非你使用(ob_end_flush)。这一功能是最重要的,是ob_get_contents(),这个函数的作用是获取缓冲区的内容,取上述等效,同样的原因()。


< PHP
ob_start();
你好世界!;
$content = ob_get_contents(PHP); / /把所有内容页输出
$ FP = fopen(档案 / 2005 / 05 / 19 / 0001。HTML
fwrite($ FP,$content);
Fclose($ FP);
>




我选择的第二种方法是使用OB系列函数。

当我开始看这个时,我还不知道它有一点,我才意识到ob是输出缓冲,这意味着输出缓存。

当您准备好输出时,所有数据都存储在OB中。服务器解析PHP后,输出到客户机的所有HTML代码都存储在OB中。如果我们想输出HTML静态页面,只需删除缓存并将其写入HTML页面。

所以原则很简单。

我在这里使用了一些函数,因为我学到了很多我不知道的PHP函数,希望能帮到您。

ob_start():开始捕捉缓存,就是从这里开始浏览器的缓存

Ob_end_flush (): close the browser cache

ob_get_content():读取缓存的内容

Fopen(文件路径,打开模式)打开文件的打开方式。下面介绍几种主要模式:

R只读模式打开,将文件指针指向文件头。

读取和写入模式打开,并将文件指针指向文件头。

W写模式打开,将文件指针指向文件头,并将文件大小减为0。如果文件不存在,请尝试创建它。

W +读写模式打开,将文件指针指向文件头,并将文件大小减为0。如果文件不存在,请尝试创建它。

Fwrite(文件的名字,写的内容)写入一个文件

Fclose()关闭文件

因为我想转换为HTML文件可能有数百个非常这里不能指定我们可以设置一个路径变量可以保存用户的ID和其他信息,以便于下面的HTML文件名函数的静态路径是一个简单的XML数据实例看我最后的PHP


< PHP
(ob_start / /);打开浏览器缓存

下面是读xml数据
解析器=(xml_parser_create美元); / /创建分析器编辑
xml_set_element_handler($解析器,startElement
xml_set_character_data_handler($解析器,characterdata); / /建立相应的函数读取数据
xml_file美元=1。XML ; / /指定读取XML文件,可以是URL
filehandler美元= fopen(xml_file美元,R); / /打开文件


而($data = fread(filehandler美元,4096))
{
xml_parse($解析器,$数据,外汇经营资金($ filehandler));
以4096字节进行处理

Fclose(filehandler美元);
xml_parser_free($ / /分析器);关闭并释放解析器解析器


$ = false;
$位置= false;
功能startElement(parser_instance美元美元美元,element_name,attrs) / /功能启动标签事件
{
全局$名称,$位置;
如果($ element_name = =名字)
{
name =真;
$位置= false;

}
如果($ element_name = =位置)
{ $ = false;
$位置=真;
回声位置:;
}
}

功能characterdata(parser_instance美元,美元xml_data) / /函数读取数据
{
全局$名称,$位置;
如果($位置)
echo $ xml_data。;
如果(名字)
echo $ xml_data。;
}

功能EndElement($ parser_instance,element_name美元) / /功能结束标签事件
{
全局$名称,$位置;
$ = false;
$位置= false;
}
xml数据读取完成

htmlname美元=美元ID.html; / / $ ID可以定义自己的身份在这里代表的用户
htmlpath美元=档案 / 。htmlname美元; / /设置PATH变量
$content = ob_get_contents(PHP); / /把所有内容页输出
$ FP = fopen(htmlpath美元,W);
fwrite($ FP,$content);
Fclose($ FP);
>