0

0

常用3种PHP动态页生成静态页的程序代码

php中文网

php中文网

发布时间:2016-05-23 09:54:37

|

1372人浏览过

|

来源于php中文网

原创

生成静态页的页面非常的简单就是定义好模板与模板标题,之后利用str_replace进行替换了,是最常用的方法,另一种是利用ob_get_contents输出获得然后生成html,还有一种不怎么推荐的是使用file_get_contents直接执行访问远程文件然后进行保存,性能极差.

方法简单说明如下.

1.使用文件函数得到静态页面的模板字符串,然后用str_replace函数将需要替换的东西替换了再写入到新的文件中.

2.利用PHP的输出控制函数(Output Control)得到静态页面字符串,再写入到新的文件中,代码如下:

$filemodel="template/it.php";           #模板地址 
$file=fopen($filemodel,"rb");           #打开模板,得到文件指针 
$temp=fread($file,filesize($filemodel));    #得到模板文件html代码

方法一:ob_get_contents()

立即学习PHP免费学习笔记(深入)”;

这是一种很方便的方法,也是很常用的方法,实现原理是,首先打开缓存,然后创建相应的静态页文件,写入缓存的内容,清空缓存.

示例,代码如下:

ob_strart();#打开缓冲区 
$fn=date('ymdhis').rand(1000,9999).'html';//生成文件名 
require("supply.php");#载入要生成静态页的文件,因为后台有ob_clen()所以在不会显示出来 
$fs=fopen($fn,'w');#打开静态页文件 
fwrite($fs,ob_get_contents());#生成静态文件 
ob_clean();#清空缓存

方法二:file_get_contents();代码如下:

MVM mall 网上购物系统
MVM mall 网上购物系统

采用 php+mysql 数据库方式运行的强大网上商店系统,执行效率高速度快,支持多语言,模板和代码分离,轻松创建属于自己的个性化用户界面 v3.5更新: 1).进一步静态化了活动商品. 2).提供了一些重要UFT-8转换文件 3).修复了除了网银在线支付其它支付显示错误的问题. 4).修改了LOGO广告管理,增加LOGO链接后主页LOGO路径错误的问题 5).修改了公告无法发布的问题,可能是打压

下载
$fn=date('ymdhis').rand(1000,9999).'html'; 
$url= 'http://'.$_SERVER['HTTP_HOST']."/";#注意 
$content=file_get_contents($url); 
$fs=fopen($fn,'w'); 
fwrite($fs,$content);

下面对上面的注意进行一下解释,如果在些你使用的是仅仅是文件名,而不是URL那么您这个文件中如果有使用引用文件比如require (‘header.php’); 那么header.php中的内容将会显示不出来.

方法三:str_replace(),代码如下:

$filemodel="supply.php"; 字串5$file=fopen($filemodel,"w+"); 
$temp=fread($file,filesize($filemodel)); 
$temp=str_replace("[title]",$title,$temp); 
$temp=str_replace("[postTime]",$postTime,$temp); 
$temp=str_replace("[content]",$content,$temp);

该方法适用于很简单的页面,如果supply.php中有使用引用文件比如require(‘header.php’);那么header.php中的内容将会显示不出来.

在实际应用中,您可以写一个生成静态页的类,代码如下:

/*+++
| 
| Author :陈毓端 
| 使用方法  
|   $shtml = new Shtml($Url,$FileBag,$FolderName,$fileid) 
|   $Url:       页面 URL 地址 
|   $FileBag:   文件夹标记   1 为:指定文件夹   
|         2 为:默认文件夹(时间(年月日)) 
|        $FolderRoot html文件存放路径 
|   $FolderName 指定文件夹的名称 $FileBag为2时 可以写为空(""); 
|   $fileid      静态页面名称(后缀 默认为 .html) 
|      
| 
| 
/*++*/
class Shtml {
    var $message1 = "Error    1: You write class Shtml is Wrong !   The second parameter is 1 or 2 in   this class!.";
    var $message2 = "Error    2: The file write    Error.";
    function __construct($Url, $FileBag, $FolderRoot, $FolderName, $fileid) {
        $this->Url = $Url;
        $this->FileBag = $FileBag;
        $this->FileRoot = $FolderRoot;
        $this->FileName = $FolderName;
        $this->fileid = $fileid;
        Shtml::useFolder();
    }
    /*************获取数据*******************/
    public function loadcontent($Folder) {
        ob_start();
        require_once $this->Url;
        Shtml::writehtml($Folder, ob_get_contents());
        ob_clean();
    }
    /********** 指定文件夹*****************/
    public function useFolder() {
        if ($this->FileBag == 1) {
            $Folder = $this->FileName;
        } else if ($this->FileBag == 2) {
            $Folder = date('Ymd', time());
        } else {
            exit($this->message1);
        }
        if (!is_dir($this->FileRoot . $Folder)) {
            mkdir($this->FileRoot . $Folder, 0700);
        }
        Shtml::loadcontent($Folder);
    }
    /********** 生成静态页面*****************/
    public function writehtml($Folder, $cache_value) {
        $file = fopen($this->FileRoot . $Folder . '/' . $this->fileid . '.html', 'w+');
        fwrite($file, $cache_value);
        fclose($file);
    }
}
$fileid = 2;
$shtml = new Shtml("http://www.phprm.com", 1, "", "cc", $fileid);

总结:这个生成html程序代码没有生成分页了,如果文章很多它也只生成一篇文章,如果要改进我们需要进行比较大的改动了,在此就不介绍了.


PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

32

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

23

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

16

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

5

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

6

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

268

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

195

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

170

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

85

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ASP 教程
ASP 教程

共34课时 | 4.3万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 10.1万人学习

极致CMS零基础建站教学视频
极致CMS零基础建站教学视频

共62课时 | 5.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号