php生成HTML文件的应用和原理笔记

2013 年 12 月 1 日4540

  1.PHP部分文件操作函数。(fopen , fread , filesize , fwrite , fclose)

  2.unlink() , mkdir() 删除函数。

  -------------------------------------------------------------

  1.PHP部分文件操作函数

  (1)fopen 打开文件函数。 R / W / A

  格式:fonpen(路径和文件名,打开方式);

  (2)fread 读取文件内容。

  格式:fread(打开的文件,结束的位置);

  (3)filesize 读取文件大小,字节为计量单位。

  格式:filesize(路径和文件名);

  (4)fwrite 写入文件内容。

  格式:fwrite(路径和文件名,写入的内容);

  (5)fclose 关闭打开的文件。

  格式:fclose(路径和文件名);

  -------------------------------------------------------------

  2.unlink(); mkdir(); 删除函数

  unlink(); 删除文件函数

  格式:unlink(路径和文件);

  mkdir(); 删除目录函数

  格式:mkdir(路径和目录名);

  -------------------------------------------------------------

  实例操作:

代码如下

<?php

$title = "新标题";

$content = "新内容http://www.zjjv.com/";

$fp = fopen("tmp.htm", "r"); //打开文件,以只读方式。

$str = fread($fp, filesize("tmp.htm")); //读取文件内容,格式:fread(打开的文件,结束的位置);。

$str = str_replace("{title}", $title, $str); //将str变量中的路径文件内容替换掉重新赋值

$str = str_replace("{content}", $content, $str);

fclose($fp); //以上为替换模板的内容。

$id = "hello";

$path = $id . '.htm';

$handle = fopen($path, "w"); //写入方式打开新闻路径

fwrite($handle, $str); //把刚才替换的内容写进生成的HTML文件

fclose($handle);

echo "生成成功";

?>

  例,找到一个html生成类

代码如下

<?php

// --------------------------------------------------------------------------

// File name : html.class.php

// Description : http://www.zjjv.com/生成静态页面的类

// Requirement : PHP5

//

// Copyright(C), 蟋蟀, 2013, All Rights Reserved.

//--------------------------------------------------------------------------

class myHtml{

//生成html文件路径

private $html_dir="./";

//html文件名称

private $html_name;

//生成html文件的位置名称

public $path;

//缓存区内容

private $content;

//文件句柄

private $handle;

//内存指针

private $accesses;

//构造函数

public function __construct($html_dir="",$html_name="")

{

$this->accesses++;

//如果文件路径不存在建立文件夹

if(opendir($html_dir)==0)

{

mkdir($html_dir);

}

$this->html_dir=$html_dir!=""?$html_dir:"./";

$this->html_name=$html_name!=""?$html_name:substr(basename(__FILE__),0,strrpos(basename(__FILE__),".")).".html";

$this->path= ($this->html_dir{strlen($this->html_dir)-1}=="/")

?($this->html_dir.$this->html_name):($this->html_dir."/".$this->html_name);

ob_start();

}

//析构函数

public function __destruct()

{

$this->accesses--;

ob_end_clean();

}

//生成html页面

function tohtml()

{

$this->content=ob_get_contents();

if (is_file ($this->path)){

@unlink ($this->path);

}

$handle = fopen ($this->path,"w");

if (!is_writable ($this->path)){

return false;

}

if (!fwrite ($handle,$this->content)){

return false;

}

fclose ($handle); //关闭指针

return $this->path;

}

}

/*

$html=new myHtml("./","z.htm");

print "静态页面程序";

$html->tohtml();

*/

?>

0 0