php动态页生成静态页的实用方法

方法简单说明如下:
1.使用文件函数得到静态页面的模板字符串,然后用str_replace函数将需要替换的东西替换了再写入到新的文件中。
2. 利用PHP的输出控制函数(Output Control)得到静态页面字符串,再写入到新的文件中。

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


方法一:ob_get_contents()

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

示例:

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

方法二:file_get_contents();

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

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

方法三:str_replace()

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

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

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

01 /*+++
02    |
03    | Author :陈毓端
04    | 使用方法
05    |   $shtml = new Shtml($Url,$FileBag,$FolderName,$fileid)
06    |   $Url:       页面 URL 地址
07    |   $FileBag:   文件夹标记   1 为:指定文件夹 
08    |         2 为:默认文件夹(时间(年月日))
09    |        $FolderRoot html文件存放路径
10    |   $FolderName 指定文件夹的名称 $FileBag为2时 可以写为空("");
11    |   $fileid      静态页面名称(后缀 默认为 .html)
12    |    
13    |
14    |
15 /*++*/
16     class Shtml
17     {
18     var $message1="Error    1: You write class Shtml is Wrong !   The second parameter is 1 or 2 in   this class!.";
19     var $message2="Error    2: The file write    Error.";
20    
21  
22      function __construct ($Url,$FileBag,$FolderRoot,$FolderName,$fileid)
23      {
24     $this->Url   = $Url;
25     $this->FileBag   = $FileBag;
26     $this->FileRoot = $FolderRoot;
27     $this->FileName = $FolderName;
28     $this->fileid    = $fileid;
29     Shtml::useFolder ();
30    }
31  
32      /*************获取数据*******************/
33     public function loadcontent ($Folder)
34      {  
35         ob_start();
36      require_once $this->Url;
37      Shtml::writehtml ($Folder,ob_get_contents());
38      ob_clean();
39         }
40  
41        /********** 指定文件夹*****************/
42      public function useFolder ()
43      {   
44      if($this->FileBag==1)
45        {
46                 $Folder=$this->FileName;
47     }
48      else if($this->FileBag==2)
49        {
50          $Folder=date('Ymd',time());
51     }
52     else
53       {
54                 exit($this->message1);
55       }
56               if(!is_dir($this->FileRoot.$Folder)){ mkdir($this->FileRoot.$Folder,0700);}
57       
58       Shtml::loadcontent ($Folder);
59      
60      }
61      /********** 生成静态页面*****************/
62      public function writehtml ($Folder,$cache_value)
63      {  
64          $file   fopen($this->FileRoot.$Folder.'/'.$this->fileid.'.html','w+');
65       fwrite($file,$cache_value);
66       fclose($file);
67      }
68  
69     }
70  
71  
72     $fileid=2;
73     $shtml new Shtml("http://www.qq.com",1,"","cc",$fileid);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
后台采用apache服务器下的cgi处理c语言做微信小程序后台逻辑的脚本映射。PC端的服务器和客户端都是基于c语言写的。采用mysql数据库进行用户数据和聊天记录的存储。.zip C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值