`
hudeyong926
  • 浏览: 2035283 次
  • 来自: 武汉
社区版块
存档分类
最新评论

3.PHP静态类

阅读更多
<?php
/******************8PHP静态类*************/
class Shtml
{
	var $Templet;
	var $DataSource;
	var $Dir;

	var $fileName;
	var $mod;
	var $handle;

	function Shtml($fileName = "")
	{
		$this->fileName = $fileName;
		$this->mod = "wb";
		$this->handle = false;

		$this->Templet = "";
		$this->DataSource = array();
		$this->Dir = "";
	}

	// 绑定数据源,参数为一数组
	function BindData($arr)
	{
		$this->DataSource = $arr;
	}

	// 设置文件存放路径
	function SetDir($dir)
	{
		$this->Dir = $dir;
	}
	function SetFileName($fileName)
	{
		return $this->fileName = $fileName;
	}

	function GetMod()
	{
		return $this->mod;
	}
	function SetMod($mod)
	{
		return $this->mod = $mod;
	}
	function Open()
	{
		if (substr($this->fileName, 0, 1) == "/")
		$this->fileName = $_SERVER['DOCUMENT_ROOT'] . $this->fileName;
		if ($this->handle = fopen($this->fileName, $this->mod))
		return $this->handle;
		else
		return false;
	}
	function Close()
	{
		return fclose($this->handle);
	}
	function Write($content)
	{
		return fwrite($this->handle, $content);
	}
	function MkDir($pathname)
	{
		$currentPath = "";
		str_replace("\\", "/", $pathname);
		$pathArr = split("/", $pathname);
		if ($pathArr[0] == "") { //使用绝对路径
			$currentPath = $_SERVER['DOCUMENT_ROOT'];
		} else {
			$currentPath = $_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF']);
		}
		for ($i = 0; $i < count($pathArr); $i++) {
			if ($pathArr[$i] == "")
			continue;
			else
			if (is_dir($currentPath . " / " . $pathArr[$i]))
			$currentPath = $currentPath . " / " . $pathArr[$i];
			else
			mkdir($currentPath = $currentPath . " / " . $pathArr[$i]);
		}
	}

	// 生成静态文件
	function Create()
	{
		$tmp = $this->Templet;
		foreach ($this->DataSource as $key => $value) {
			$tmp = str_replace(" < FIELD_" . $key . " > ", $value, $tmp);
		}
		$this->MkDir(dirname($this->fileName));
		$this->Open();
		$this->Write($tmp);
		$this->Close();
	}
}

function CreateShtml() {
	ob_start("callback_CteateShtml");
}

function callback_CteateShtml($buffer) {
	$page = intval(@$_REQUEST["page"]);
	$shtml = new Shtml();
	$shtml->SetFileName($_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF']) . "/" . basename($_SERVER['PHP_SELF'], ".php") . ($page == 0 ? "" : "_" . strval($page)) . ".html");
	$shtml->Templet = $buffer;
	$shtml->Create();
	return $buffer;
}
?>

把上面的代码保存为 static.php
执行下面页面 phpfans.php

<?php
include("static.php");
CreateShtml();
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
撒旦法第三方
</body>
</html>

将会生成一个 phpfans.html的静态页面,如果有参数,则用page来传递 如 phpfans.php?page=1则生成 phpfans_1.html的静态页面

分享到:
评论

相关推荐

    php中静态类与静态变量用法类.zip

    分析了php中静态类与静态变量用法类的区别,创建对象$object = new Class(),然后使用”-&gt;”调用:$object-&gt;attribute/function,前提是该变量/方法可访问。直接调用类方法量:class::attribute/function,无论是静态/...

    PHP生成静态类.doc

    3. 静态类的优势与应用场景: - 静态类常用于提供工具方法或全局服务,例如日志记录、配置管理等,因为它们不需要创建对象,减少了内存占用。 - 在本例中,`template`类用于生成静态HTML页面,这在高并发访问的...

    最简单的php生成静态页的类

    在PHP编程中,生成静态...总之,这个“最简单的php生成静态页的类”提供了一个基础的实现,帮助开发者理解和实践PHP静态页面生成。通过研究这个类,我们可以掌握动态网站优化的关键技巧,提升网站的用户体验和性能。

    把php生成静态(html)页面程序类

    把php生成静态(html)页面程序类 private $template; //模版 private $file_name; //文件名 private $array; //数据数组 function __construct($file_name, $template, $array) { //构造类 $this-&gt;...

    nhcar.zip 静态网页

    静态网页,正如其名,是指不含有服务器端脚本(如PHP、ASP、JSP等)的网页,它的内容在用户请求时不会发生变化。这类网页由HTML(超文本标记语言)编写而成,HTML是一种标准的标记语言,用于创建和展示网页内容。...

    PHP静态文件生成类库.zip

    PHP静态文件生成类 使用方法如下: &lt;?php  $s=new CreateHtml();  $s-&gt;start();  ?&gt;  &lt;html&gt;  &lt;body&gt;  asdfasdfasdfasdfasdfasdfasdfasdfasdf   adfasdfasdf   ...

    php静态文件生成类实例.zip

    主要介绍了PHP静态文件生成类,以实例形式演示了PHP生成静态文件的方法,并封装成类文件便于使用,是非常实用的技巧,需要的朋友可以参考下,希望对各位朋友的PHP学习有所帮助。

    把php生成静态(html)页面程序类.zip

    标题提到的“把php生成静态(html)页面程序类.zip”是一个压缩包,其中包含了一个PHP类,用于将动态生成的PHP页面转换为HTML静态文件。这一过程通常被称为静态化。 首先,我们来看PHP动态页面和静态HTML页面的区别。...

    php分页类包括动态和静态

    本文将深入探讨PHP实现分页的动态和静态方式,包括静态页面、伪静态页面以及动态分页类的实现原理和方法。 一、静态分页 静态分页通常适用于数据量较小,更新不频繁的场景。在这种情况下,可以预先计算好每个页面的...

    DEDE5.5淘客站整合淘宝客API伪静态版.rar

    6.伪静态页面,更有利于搜索引擎收录 [系统环境需求] 1、Windows 平台: IIS/Apache PHP5 2、Linux/Unix 平台 Apache PHP5 建议使用平台:Linux Apache2.2 PHP5.2 3、PHP必须环境或启用的系统函数: ...

    四个常用的PHP类(生成静态类,分页类,数据库操作)

    3. **数据库操作类** (mysqlclass.php) 这个类是与MySQL数据库交互的核心工具。它可能封装了数据库连接、查询执行、结果处理等常用操作。例如,`connect()`方法连接到数据库,`query()`方法执行SQL语句,`fetchData...

    php静态化的类 实现静态页面

    php静态化的类,可以实现静态页面,可是实现对数据库更新,不过要根据你的具体需要做一些修改,如表和字段名及文件目录等。

    PHP生成静态页面小程序 v1.1.zip

    建议新手PHP朋友在本版本的基础上进行完善,1,前台模板更改美化 2,前台文章分页进行静态化 3,后台新闻列表进行分页显示 4,后台批量更新进行分段更新 5,新加读取次数的字段,并在静态html页面进行动态调用 6,...

    分类系统.htaccess伪静态插件 for PHP168.rar

    1、 后台选择高级伪静态,更新目录。 2、你的分类系统需要独立的域名访问,文件夹式的访问地址不保证; 3、将附件解压到分类系统根目录; 缓存更新!!!! 这个文件放分类系统根目录

    php生成静态页面源码

    在实际应用中,可能会有一个专门的类或函数库来处理静态化过程,例如定义生成规则、处理URL、处理模板等。 总结来说,PHP生成静态页面是将动态网站转变为静态HTML的一种策略,它涉及到了PHP模板引擎、数据库交互、...

    PHP中静态方法(static)与非静态方法的使用及区别.docx

    在PHP编程语言中,`static`关键字用于定义类的静态属性和方法,它们与类的实例(对象)无关,而是直接关联到类本身。理解静态方法和非静态方法的使用和区别是掌握PHP面向对象编程的关键。 静态方法是通过类名直接...

    php静态文件生成类实例分析.doc

    php静态文件生成类实例分析.doc

    PHP实例开发源码—网址导航系统3号(php生成静态).zip

    【PHP实例开发源码—网址导航系统3号(php生成静态)】 PHP是一种广泛使用的开源脚本语言,尤其在Web开发领域中应用广泛。这个压缩包包含了一个基于PHP的网址导航系统的源代码,该系统利用PHP来生成静态页面,提高了...

Global site tag (gtag.js) - Google Analytics