首页 > 后端开发 > 正文

php 怎么把整个网站生成html

2024-09-03 19:01:49 | 我爱编程网

今天我爱编程网小编整理了php 怎么把整个网站生成html相关内容,希望能帮助到大家,一起来看下吧。

本文目录一览:

php 怎么把整个网站生成html

PHP5教程之文件操作

一 引论

在任何计算机设备中 文件是都是必须的对象 而在web编程中 文件的操作一直是web程序员的头疼的地方 而 文件的操作在cms系统中这是必须的 非常有用的 我们经常遇到生成文件目录 文件(夹)编辑等操作 现在我把php中的这些函数做一详细总结并实例示范如何使用 关于对应的函数详细介绍 请查阅php手册 此处只总结重点 和需要注意的地方 (这在php手册是没有的 )( lian )

二 目录操作

首先介绍的是一个从目录读取的函数 opendir() readdir() closedir() 使用的时候是先打开文件句柄 而后迭代列出:

<?php $base_dir = filelist/ ; $fso = opendir($base_dir); echo $base_dir <hr/> ; while($flist=readdir($fso)){ echo $flist <br/> ; } closedir($fso) ?>

这是讲返回文件目录下面的文件已经目录的程序( 文件将返回false)

有时候需要知道目录的信息 可以使用dirname($path)和basename($path) 分别返回路径的目录部分和文件名名称部分 可用disk_free_space($path)返回看空间空余空间

创建命令:

mkdir($path )

是权限码 在非window下可用umask()函数设置

rmdir($path)

将删除路径在$path的文件

dir directory 类也是操作文件目录的重要类 有 个方法 read rewind close 这是一个仿面向对象的类 它先使用的是打开文件句柄 然后用指针的方式读取的 这里看php手册:

<?php$d = dir( /etc/php );echo Handle: $d >handle /n ;echo Path: $d >path /n ;while (false !== ($entry = $d >read())) {    echo $entry /n ;}$d >close();?>

输出:

Handle: Resource id # Path: /etc/php apachecgicli

文件的属性也非常重要 文件属性包括创建时间 最后修改时间 所有者 文件组 类型 大小等

下面我们重点谈文件操作

三 文件操作

A 读文件

首先是一个文件看能不能读取(权限问题) 或者存在不 我们可以用is_readable函数获取信息

<?php$file = dirlist php ;if (is_readable($file) == false) {         die( 文件不存在或者无法读取 );} else {         echo 存在 ;}?>

判断文件存在的函数还有file_exists(下面演示) 但是这个显然无is_readable全面 当一个文件存在的话可以用

<?php$file = filelist php ;if (file_exists($file) == false) {         die( 文件不存在 );}$data = file_get_contents($file);echo entities($data);?>

但是file_get_contents函数在较低版本上不支持 可以先创建文件的一个句柄 然后用指针读取全部:

$fso = fopen($cacheFile r );         $data = fread($fso filesize($cacheFile));         fclose($fso);

还有一种方式 可以读取二进制的文件:

$data = implode( file($file));

B 写文件

和读取文件的方式一样 先看看是不是能写:

<?php$file = dirlist php ;if (is_writable($file) == false) {         die( 我是鸡毛 我不能 );}?>

能写了的话可以使用file_put_contents函数写入:

<?php $file = dirlist php ; if (is_writable($file) == false) { die( 我是鸡毛 我不能 ); } $data = 我是可鄙 我想要 ; file_put_contents ($file $data); ?>

file_put_contents函数在php 中新引进的函数(不知道存在的话用function_exists函数先判断一下)低版本的php无法使用 可以使用如下方式:

$f = fopen($file w ); fwrite($f $data); fclose($f);

替换之

写文件的时候有时候需要锁定 然后写:

function cache_page($pageurl $pagedata){ if(!$fso=fopen($pageurl w )){ $this >warns( 无法打开缓存文件 );//trigger_error return false; } if(!flock($fso LOCK_EX)){//LOCK_NB 排它型锁定 $this >warns( 无法锁定缓存文件 );//trigger_error return false; } if(!fwrite($fso $pagedata)){//写入字节流 serialize写入其他格式 $this >warns( 无法写入缓存文件 );//trigger_error return false; } flock($fso LOCK_UN);//释放锁定 fclose($fso); return true; }

C 复制 删除文件

php删除文件非常easy 用unlink函数简单操作:

<?php $file = dirlist php ; $result = @unlink ($file); if ($result == false) { echo 蚊子赶走了 ; } else { echo 无法赶走 ; } ?>

即可

复制文件也很容易:

<?php $file = yang txt ; $newfile = ji txt ; # 这个文件父文件夹必须能写 if (file_exists($file) == false) { die ( 小样没上线 无法复制 ); } $result = copy($file $newfile); if ($result == false) { echo 复制记忆ok ; } ?>

可以使用rename()函数重命名一个文件夹 其他操作都是这几个函数组合一下就能实现的

D 获取文件属性

我说几个常见的函数:

获取最近修改时间:

<?php $file = test txt ; echo date( r filemtime($file)); ?>

返回的说unix的时间戳 这在缓存技术常用

相关的还有获取上次被访问的时间fileatime() filectime()当文件的权限 所有者 所有组或其它 inode 中的元数据被更新时间 fileowner()函数返回文件所有者

$owner = posix_getpwuid(fileowner($file));

(非window系统) ileperms()获取文件的权限

<?php$file = dirlist php ;$perms = substr(sprintf( %o fileperms($file)) );echo $perms;?>

filesize()返回文件大小的字节数:

<?php

// 输出类似 somefile txt: bytes

$filename = somefile txt ; echo $filename : filesize($filename) bytes ;

?>

获取文件的全部信息有个返回数组的函数stat()函数:

<?php $file = dirlist php ; $perms = stat($file); var_dump($perms); ?>

那个键对应什么可以查阅详细资料 此处不再展开

四 结束语

lishixinzhi/Article/program/PHP/201311/21262

php 怎么把整个网站生成html

php 怎么把整个网站生成html

  • PHP将整个网站生成HTML纯静态网页的方法如下:

代码如下:

<?php

//在开始处加入 ob_start();

ob_start();

//以下是你的代码

//在结尾加入 ob_end_clean(),并把本页输出到一个变量中

$temp = ob_get_contents();

ob_end_clean();

//写入文件

$fp = fopen(‘文件名','w');

fwrite($fp,$temp) or die(‘写文件错误');

?>

  • 这只是最基本的方法,还不是很实用,因为网站是要更新的,要定期重新生成HTML

  • 用下面的方法: 代码如下:

if(file_exists(“xxx.html”))

{

$time = time();

//文件修改时间和现在时间相差半小时一下的话,直接导向html文件,否则重新生成html

if($time - filemtime(“xxx.html”) < 30*60)

{

header(“Location:xxx.html”);

}

} 我爱编程网

//在开始处加入 ob_start();

ob_start();

//页面的详细内容

//在结尾加入 ob_end_clean(),并把本页输出到一个变量中

$temp = ob_get_contents();

ob_end_clean();

//写入文件

$fp = fopen(‘xxx.html','w');

fwrite($fp,$temp) or die(‘写文件错误');

//重新导向

header(“Location:xxx.html”);

  • 下面是一些用到的函数的介绍:

1、Flush:刷新缓冲区的内容,输出。

函数格式:flush()

说明:这个函数经常使用,效率很高。

2、ob_start :打开输出缓冲区

函数格式:void ob_start(void)

说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。

3 、ob_get_contents :返回内部缓冲区的内容。

使用方法:string ob_get_contents(void)

说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。

4、ob_get_length:返回内部缓冲区的长度。

使用方法:int ob_get_length(void)

说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活。则返回 FALSE。

5、ob_end_flush :发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。

使用方法:void ob_end_flush(void)

说明:这个函数发送输出缓冲区的内容(如果有的话)。

6、ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区

使用方法:void ob_end_clean(void)

说明:这个函数不会输出内部缓冲区的内容而是把它删除!

7、ob_implicit_flush:打开或关闭绝对刷新

使用方法:void ob_implicit_flush ([int flag])

说明:使用过Perl的人都知道$|=x的意义,这个字符串可以打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush().

php 怎么把整个网站生成html

如何将该PHP读取文件的顺序更改为按文件修改时间排序?

我爱编程网(https://www.52biancheng.com)小编还为大家带来如何将该PHP读取文件的顺序更改为按文件修改时间排序?的相关内容。

function dir_size($dir,$url){
$dh = @opendir($dir); //打开目录,返回一个目录流
$return = array();
$i = 0;
while($file = @readdir($dh)){ //循环读取目录下的文件
if($file!='.' and $file!='..'){
$path = $dir.'/'.$file; //设置目录,用于含有子目录的情况
if(is_dir($path)){
}elseif(is_file($path)){
$filesize[] = round((filesize($path)/1024),2);//获取文件大小
$filename[] = $path;//获取文件名称
$filetime[] = date("Y-m-d H:i:s",filemtime($path));//获取文件最近修改日期

以上就是php 怎么把整个网站生成html全部内容,更多相关信息,敬请关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“php 怎么把整个网站生成html”相关推荐
怎么用php做网站 如何在HTML中利用php
怎么用php做网站 如何在HTML中利用php

怎么用php做网站如何在HTML中利用php楼上说的很对,但只是理论对你应该没什么帮助!我是做php开发的程序员。首先你要明确的是,html是前端,负责制作网站的前端页面,所谓的前端就是你现在看到的百度知道的页面,这就是前端html+css+js写出来的。而php是一个网站的后端,也就是实现我们能够在百度知道里面发表问题,回答问题等一系列功能的后端语言。从你问的问题能

2024-07-23 11:42:14
怎么提取一个网站的PHP源码?
怎么提取一个网站的PHP源码?

怎么提取一个网站的PHP源码?您好。一个网站的源代码是无法直接获取的。您可以寻找一下该网站的页脚或者IE的顶部,是否存在类似poweredbyxxx这里的XX就是该PHP源码系统。然后百度搜索一下就可以找到了。如果不存在类似的信息,那就不能通过正规途径获取了。除非是利用某种不良途径获取。那就是寻找改网站的漏洞,通过入侵手段获取。不过这是违法的,不建议此种方式。怎么复制网站的p

2024-08-14 15:10:34
怎么复制网站的php源码怎么复制网站的php源码格式
怎么复制网站的php源码怎么复制网站的php源码格式

怎么复制网站的php源码怎么复制网站的php源码格式php抓取网页源代码的方法可以使用file_get_content函数获取源代码。你只需要把网站传入这个功能就可以了。拿到手之后就是一串。你需要格式化代码。怎么获取某网站的一个php网页源码?PHP是后台代码,一般来说你是获取不了的,因为最后呈现给用户的php网页,都经过php解释器进行转换成html代码了。怎么复制别

2024-10-29 02:10:31
php怎么转换成html?
php怎么转换成html?

PHP页面原样显示html代码php中htmlspecialchars函数能把&lt;、&gt;转义成可以在html页面直接显示的形式(&lt;&gt;),比如$str='&lt;ahref="a.html"&gt;aaa&lt;/a&gt;';echohtmlspecialchars($str);就是直接显示代码了。更详细的用法去查阅htmlspecialchars说明,可

2024-11-15 23:11:21
怎么把php多个后台合并成一个
怎么把php多个后台合并成一个

php把多一维数组的多个元素合并连接成为一个元素&lt;?php    $data[0] = "1239";    $data[1] = "1238";    $data[2] = "1237";    $data[3] = "1236";    $data[4] = "1235";    $data[5] = "1234";    $data[6] = "1290";    $res = 

2024-07-15 17:50:10
PHP网站怎么调用别家的API?
PHP网站怎么调用别家的API?

PHP直接调用函数和调用另外一个文件中的函数的区别//如果是PHP文件中的函数,唯一的区别是:先引入外部文件,然后直接调用。//如果是外部类文件中的函数,需要引入,然后new 对象后,再调用该对象的函数。$msg=test_msg();function test_msg(){echo "";}//调用外部文件中的函数//首先引入文件include_once 'file.php';$msg=t

2024-11-07 13:06:49
PHP怎么把多个数组揉成一个json字符串?
PHP怎么把多个数组揉成一个json字符串?

PHP怎么把多个数组揉成一个json字符串?&lt;?php//创建数组$array=array("name"=&gt;"Hza","age"=&gt;21);//数组转化为json格式echojson_encode($array);echo"&lt;br/&gt;";//创建类classStudent{public$na

2024-07-15 21:20:36
php怎么生成公司结构图
php怎么生成公司结构图

php怎么生成公司结构图说白了,就是给定n个元素,元素之间存在一个关系(多个关系可以映射为一个关系),无论它是什么结构,也不管上级唯一不唯一,只要是在纸上用笔能画出来的结构,都可以表示为数据结构中的图,图可以用矩阵存储,矩阵是可以线性化的,不妨找一本数据结构的书,浏览图论相关章节,特别是存储和创建以及遍历更多问题可以去php中文网问答社区提问,大神在线帮你解决,希望对你有

2024-09-04 22:13:08