ID:   密码:   验证码:  
我的知识库
服务器-WEB服务器
服务器-FTP服务器
服务器-安全防护
IDC业务相关
网络编程-ASP
网络编程-PHP
网络编程-.NET
网络编程-XML
数据库-Access
数据库-Mssql
数据库-Mysql
主机相关问题
域名相关问题
邮局相关问题
付款相关问题
相关文本合同
游戏技术-传奇私服架设
游戏技术-传奇脚本信息
游戏技术-传世私服
常用软件下载
首页 >> 我的知识库>>网络编程-PHP>> 详细学习PHP中对文件和目录的操作方法  
详细学习PHP中对文件和目录的操作方法
[ 作者:  | 文章来源: 网页教学网 | 点击数: 528 | 更新时间: 2007-10-13 17:37:39 ]

一:引论

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

Spdns~com

二:目录操作

Spdns^com

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

以下为引用的内容:
$base_dir = "filelist/";
$fso = opendir($base_dir);
echo $base_dir."
" ;
while($flist=readdir($fso)){
echo $flist."
" ;
}
closedir($fso)
?>

中.国.南通服务器网

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

有时候需要知道目录的信息,可以使用dirname($path)和basename($path),分别返回路径的目录部分和文件名名称部分,可用disk_free_space($path)返回看空间空余空间。 中国.南通服务器网

创建命令:

中国南通服务器网,为中文网南通服务器网,为中文网南通服务器网,为中文网南通服务器网,为中文网南通服务器网

●读文件 Www_Spdns_com

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

南通服务器网

以下为引用的内容:
$file = 'dirlist.php';
if (is_readable($file) == false) {
die('文件不存在或者无法读取');
} else {
echo '存在';
}
?>

Www@Spdns@com

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

以下为引用的内容:

$file = "filelist.php";
if (file_exists($file) == false) {
die('文件不存在');
}
$data = file_get_contents($file);
echo htmlentities($data);
?>但是file_get_contents函数在较低版本上不支持,可以先创建文件的一个句柄,然后用指针读取全部:

中国南通服务器网

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

Spdns.com

中.国.南通服务器网

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

中.国.南通服务器网

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

中国南通服务器网

●写文件

Www.Spdns.com

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

南通服务器网

以下为引用的内容:

中国.南通服务器网

$file = 'dirlist.php';
if (is_writable($file) == false) {
die("我是鸡毛,我不能");
}
?> 南通服务器网

中.国.南通服务器网

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

以下为引用的内容:

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

Spdns~com

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

$f = fopen($file, 'w');
fwrite($f, $data);
fclose($f); Www@Spdns@com

中国南通服务器网

替换之。

Spdns^com

写文件的时候有时候需要锁定,然后写: Spdns@com

以下为引用的内容:
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;
}

[南通服务器网]

●复制,删除文件

Www.Spdns.com

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

中.国.南通服务器网

以下为引用的内容:
$file = 'dirlist.php';
$result = @unlink ($file);
if ($result == false) {
echo '蚊子赶走了';
} else {
echo '无法赶走';
}
?>
Spdns

即可。

Www~Spdns~com

复制文件也很容易:

Www@Spdns@com

以下为引用的内容:
$file = 'yang.txt';
$newfile = 'ji.txt'; # 这个文件父文件夹必须能写
if (file_exists($file) == false) {
die ('小样没上线,无法复制');
}
$result = copy($file, $newfile);
if ($result == false) {
echo '复制记忆ok';
}
?>

中国.南通服务器网

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

中国南通服务器网

●获取文件属性 Spdns^com

我说几个常见的函数:

中国南通服务器网

获取最近修改时间: 中.国.南通服务器网

以下为引用的内容:
$file = 'test.txt';
echo date('r', filemtime($file));
?>
Spdns~com

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

Spdns.com

相关的还有获取上次被访问的时间fileatime(),filectime()当文件的权限,所有者,所有组或其它 inode 中的元数据被更新时间,fileowner()函数返回文件所有者 $owner = posix_getpwuid(fileowner($file));(非window系统),ileperms()获取文件的权限,

中国南通服务器网

以下为引用的内容:

$file = 'dirlist.php';
$perms = substr(sprintf('%o', fileperms($file)), -4);
echo $perms;
?> Spdns~com

filesize()返回文件大小的字节数:
Www.Spdns.com

// 输出类似:somefile.txt: 1024 bytes

中国南通服务器网,为中文网南通服务器网

?>

Spdns~com

Spdns~com

获取文件的全部信息有个返回数组的函数stat()函数: 中国南通服务器网

以下为引用的内容:
$file = 'dirlist.php';
$perms = stat($file);
var_dump($perms);
?>

Www_Spdns_com

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

Spdns^com

四:结束语

中.国南通服务器网

上面我简要的总结了一下几个文件操作,如果您熟练掌握以上列出的函数,已经在操作的时候没什么大的问题,php文件操作的函数变化比较快,现在已经非常强大了,文件这部分也是学习php非常重要的一部分,希望不要忽略。

Spdns@com

Tags:学习 PHP 文件 目录
责任编辑:阿小



评论
收藏
推荐
打印
关闭
字体:+ -
纠错


Copyright © 1999-2007 诚信 合法 规范的南通服务器网 www.spdns.com 始建于1996
企业总机:400-618-5529(只收市话费) 未开通400地区:0513-83015999 / 84012988 / 84519829
上海亿流数码科技有限公司 地址:江苏省南通市如东电信局大楼3楼IDC运维部
《中华人民共和国增值电信业务经营许可证》沪B2-20060518号
信息产业部备案编号:苏ICP备05009350号
电子执照:沪企3102272090823