搜尋
首頁php教程php手册php中静态化生成的方法(htm页面生成)

在php中原生态的生成html页面我们会用到三个函数:ob_start()、ob_get_contents()、ob_end_clean()了,然后再把获取的内容给fopen函数生成即可。

例子,利用三个函数:ob_start()、ob_get_contents()、ob_end_clean()函数

知识点:

1、ob_start函数一般主要是用来开启缓存,注意使用ob_start之前不能有任何输出,如空格、字符等。

2、ob_get_contents函数主要用来获取缓存中的内容以字符串形式返回,注意此函数必须在ob_end_clean函数之前调用,否则获取不到缓存内容。

3、ob_end_clean函数主要是清空缓存中的内容并关闭缓存,成功则返回True,失败则返回False

输出控制函数(Output Control)也就是使用和控制缓存来生成静态HTML页面,也会使用到PHP文件读写函数。

PHP生成静态页面实例代码

<?php
ob_start();
echo "<html>" . "<head>" . "<title>PHP网站静态化教程</title>" . "</head>" . "<body>欢迎访问PHP网站开发教程网www.phprm.com 本文主要介绍PHP网站页面静态化的方法</body>" . "</html>";
$out1 = ob_get_contents();
ob_end_clean();
$fp = fopen("leapsoulcn.html", "w");
if (!$fp) {
    echo "System Error";
    exit();
} else {
    fwrite($fp, $out1);
    fclose($fp);
    echo "Success";
}
?>

例子,

利用框架模板生成最近比较火的php框架有thinkphp下面我们就以它为例子。

thinkphp提供了一个有效的生成静态页的方法,(在tp2.0的手册上有说明,3.0的手册上没有说明了,不过3.0方法还是存在的。)

$this->buildHtml('静态文件', '静态路径','模板文件');


参数一:静态文件,是指生成后的静态文件名,文件保存路径完整的就是:静态路径/静态文件。例如静态文件设置a/index.那么保存的路径就是项 目路径/Html/a/index.html(默认的静态路径在项目路径的Html文件夹下,没有可以自己创建)

参数二:静态路径,上面已经说明了默认的路径,3.0中可以在入口文件里加入参数来更改静态路径。 define('HTML_PATH', './');(将静态路径义为网站根目录)


参数三:模板文件,我感觉官方这个描述是不正确的,准确的来说应该是目标模块,就是需要生成静态文件的模块。格式:模块名:操作。比如要生成Index下的a方法为静态文件,那就是Index:a。如果为空则默认生成当前操作的静态文件。


1 、在入口文件index.php文件中定义生成静态页面的文件位置,然后在个目录新建Html文件夹

   define( 'HTML_PATH' , './Html' );//www.phprm.com


2 、在根目录的config文件夹中的config.php配置静态页面的类型,设为 html 

 'HTML_FILE_SUFFIX'        = > '.html' , // 默认静态文件后缀


3 、在"Tpl / default / "目录中新建一个Index的文件夹,文件夹下面新建一个index.html的模板,   模板里面内容为:这是生成静态页例子

4 、控制器IndexAction. class .php中的代码

class IndexAction extends Action {

    public function index() {

        $this - > buildHtml('名称', HTML_PATH . '/', '模版', 'utf8'); //注意:这里的utf8不能写成utf-8

        $this - > display();

    }

}

?>

解释 :

这里的buildHtml是thinkphp内置的函数,这里的意思是:

将index的模板文件生成utf8编码格式的静态网页,该文件名为 1 .html,存在于根目录的htm文件中

该函数有 5 个参数,具体如下 :

buildHtml($htmlfile,$htmlpath,$templateFile,$charset,$contentType = 'text/html' )

参数:

$htmlfile 生成的静态文件名称

$htmlpath 生成的静态文件路径

$templateFile 指定要生成静态的模板文件

$charset 生成静态文件的编码格式

$contentType 生成静态文件的类型

<?php
// 生成静态页
class AddhtmlAction extends CommonAction {
    public function index() {
        $this->assign(&#39;abc&#39;, &#39;abc222222222&#39;);
        $pagename = &#39;123 www.phprm.com&#39;; //页面名称
        $temppath = &#39;&#39;; //显示模版路径
        //查看配置文件是否开启显示静态模版
        if (C(&#39;IS_HTML&#39;)) {
            //判断是否已经生成静态页面
            if (!is_file(HTML_PATH . &#39;/&#39; . $pagename . &#39;html&#39;)) $this->buildHtml($pagename, HTML_PATH . &#39;/&#39;, &#39;index&#39;, &#39;utf8&#39;); //注意:index为动态模版 这里的utf8不能写成utf-8
            $temppath = HTML_PATH . &#39;/&#39; . $pagename . &#39;html&#39;;
        }
        $this->display($temppath);
    }
}
?>


文章链接:

随便收藏,请保留本文地址!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何解决PHP Warning: fopen(): failed to open stream: No such file or directory如何解决PHP Warning: fopen(): failed to open stream: No such file or directoryAug 19, 2023 am 10:44 AM

如何解决PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectory在使用PHP开发过程中,我们经常会遇到一些文件操作的问题,其中之一就是"PHPWarning:fopen():failedtoopenstream:Nosuchfileordirectory

如何解决PHP Warning: fopen(): SSL operation failed in file.php on line X如何解决PHP Warning: fopen(): SSL operation failed in file.php on line XAug 25, 2023 am 09:22 AM

如何解决PHPWarning:fopen():SSLoperationfailedinfile.phponlineX在PHP编程中,我们经常使用fopen函数来打开文件或者URL,并进行相关操作。然而,在使用fopen函数时,有时候会遇到类似于Warning:fopen():SSLoperationfailedinfile.p

解读PHP.ini文件中关于编码的修改方式解读PHP.ini文件中关于编码的修改方式Mar 27, 2024 pm 03:42 PM

解读PHP.ini文件中关于编码的修改方式PHP.ini文件是PHP配置文件,可以通过修改其中的参数来配置PHP的运行环境。其中关于编码的设置也是非常重要的,在处理中文字符、网页编码等方面起着重要作用。本文将详细介绍如何在PHP.ini文件中修改编码相关的配置,并给出具体的代码示例供参考。查看当前编码设置:在PHP.ini文件中,可以通过搜索以下两个相关参数

如何解决PHP Warning: fopen(): failed to open stream: Permission denied如何解决PHP Warning: fopen(): failed to open stream: Permission deniedAug 20, 2023 pm 01:45 PM

如何解决PHPWarning:fopen():failedtoopenstream:Permissiondenied在开发PHP程序的过程中,我们常常会遇到一些报错信息,比如PHPWarning:fopen():failedtoopenstream:Permissiondenied。这个错误通常是由于文件或目录权限不正

Matlab中fopen函数用法Matlab中fopen函数用法Nov 28, 2023 am 11:03 AM

在Matlab中,fopen函数用于打开文件并返回文件标识符,以便后续对文件进行读取或写入操作。根据需要选择适当的权限选项来打开文件,并在操作完成后及时关闭文件。需要注意的是,打开文件后需要确保在不再需要文件时及时关闭文件,以释放系统资源。另外,如果文件打开失败或操作出错,可以通过错误处理机制进行相应的处理。

php如何使用fopen、fwrite和fclose进行文件操作?php如何使用fopen、fwrite和fclose进行文件操作?Jun 01, 2023 am 08:46 AM

在PHP开发中,对文件的操作是非常常见的。一般情况下,我们需要进行文件的读取、写入、删除等操作。其中,文件的读取可以使用fopen函数和fread函数,文件的写入可以使用fopen函数、fwrite函数和fclose函数。本文将介绍php如何使用fopen、fwrite和fclose进行文件操作。一、fopen函数fopen函数用于打开文件,它的语法如下:r

在C语言中,使用fopen()函数以写模式打开现有文件在C语言中,使用fopen()函数以写模式打开现有文件Aug 27, 2023 pm 10:33 PM

C中的fopen()方法用于打开指定的文件。我们举个例子来理解一下问题语法FILE*fopen(filename,mode)以下是使用fopen()打开文件的有效模式:&lsquo;r&rsquo;、&lsquo;w&rsquo;、&lsquo;a&rsquo;、&lsquo;r+&rsquo;、&lsquo;w+&rsquo;、&lsquo;a+&rsquo;。详细信息请访问C库函数-fopen()

PHP时区配置错误怎么办?PHP时区配置错误怎么办?Mar 21, 2024 am 08:57 AM

PHP时区配置错误是一个常见的问题,当PHP代码中涉及到日期和时间相关的函数时,正确配置时区是十分重要的。如果时区配置出错,可能会导致日期时间显示不准确或者出现其他问题。解决PHP时区配置错误需要通过设置date_default_timezone_set()函数来指定正确的时区。下面是一个具体的代码示例:

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具