Home >php教程 >php手册 >PHP生成静态html文件一些方法总结

PHP生成静态html文件一些方法总结

WBOY
WBOYOriginal
2016-05-25 16:54:111034browse

利用php生成静态文件我们用到最多的是以模板形式来替换生成了,如我把{A}定义为标签在php中只要利用fopen读取模板文件,然后再利用replace替换{A}为PHP生成静态html文件实例即可。

1,下面使用模版的一个方法!

<?php
$fp = fopen("templets.html", "a");
if ($fp) {
    $fup = fread($fp, filesize("templets.html"));
    $fp2 = fopen("html.shtml", "w");
    if ($fwrite($fp2, $fup)) {
        $fclose($fp);
        $fcolse($fp2);
        die("写入模板成功");
    } else {
        fclose($fp);
        die("写入模板失败!");
    }
}
?>

简单的将模板写进一个文件中存为html.html


2,按时间生成html文件名

<?php
$content = "这是一个以日期时间为文件名的静态生成网页的测试文件,
文件名格式一般为<font color=#ff0000>年月日时分秒.html</font>";
$date = date(&#39;YmdHis&#39;);
$fp = fopen(date(&#39;YmdHis&#39;) . &#39;.html&#39;, "w");
//本函数可用来打开本地或者远端的文件 &#39;w&#39; 开文件方式为写入,
?>

文件指针指到开始处,并将原文件的长度设为 0。若文件不存在,

则建立新文件。

<?php
if (fwrite ($fp,$content)){
//格式是.int fwrite(int fp(文件名), string string(内容),
 int [length](长度));本函数将字符串 string 写入文件资料流的指针 fp 上。
若有指定长度 length,则会写入指定长度字符串,或是写到字符串结束。 
fclose ($fp);//函数用来关闭已经打开的文件的指针 fp。
成功返回 true,失败则返回 false。 
die ("写入模板成功"); 
} else { 
fclose ($fp); 
die ("写入模板失败!"); 
} 
echo ($content); 
?>

 

3,下面为转换文件名的一个方法

<?php
$s_fname = "93e.php";
$o_fname = "93e.htm";
ob_end_clean();
ob_start();
include ($s_fname);
$length = ob_get_length();
$buffer = ob_get_contents();
$buffer = eregi_replace("r", "", $buffer);
ob_end_clean();
$fp = fopen($o_fname, "w+");
fwrite($fp, $buffer);
fclose($fp);
?>

这样就可以把 93e.php转化为静态的HTML文件了 。要注意的是待转换的文件里不能有 ob_end_clean();和 ob_start();语句,且目录要有写权限。

上面三种方法都是生成了html页面每次都要更新才有更新了,下面我们可以使用动态页面缓存技术来实例html+php页面,这个方法比上面都要好

首先设置.htaccess文件,将动态调用的参数转换为静态的HTML的URL地址,例如将在post目录下的文件,转发到根目录的wp-post.php文件中,加入的语句类似:

RewriteRule ^post/([a-z0-9-]+.html)$  wp-post.php?$1$2

然后修改wp-post.php文件,在文件的开头加入以下PHP代码:

<?php
ob_start();
$qstring = isset($_SERVER["QUERY_STRING"]) ? $_SERVER["QUERY_STRING"] : "";
define("HTML_FILE", $_SERVER[&#39;DOCUMENT_ROOT&#39;] . "/post/" . $qstring);
if (file_exists(HTML_FILE)) {
    $lcft = filemtime(HTML_FILE);
    if (($lcft + 3600) > time()) //判断上次生成HTML文件是否超过1小时,若没有才直接输出文件内容
    {
        echo (file_get_contents(HTML_FILE));
        exit(0);
    }
}
?>

之后是现有的PHP的代码,然后在当前代码的最后面加上如下的PHP代码:

<?php
define("HTMLMETA", "<!-- this is a real static html file created at " . date("Y-m-d H:i:s") . " -->");
$buffer = ob_get_flush();
$fp = fopen(HTML_FILE, "w");
if ($fp) {
    fwrite($fp, $buffer . HTMLMETA);
    fclose($fp);
}
?>

好了,然后查看你的静态HTML页面,如果页面尾部出现了注释行,说明已经成功的创建了静态HTML文件


本文地址:

转载随意,但请附上文章地址:-)

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn