php生成HTML文件的应用和原理笔记
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();
*/
?>