`
天梯梦
  • 浏览: 13731167 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

PHP5 文件操作

阅读更多

一、引论

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

 

二、目录操作

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

 

 

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

 

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

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

创建命令:

 

 

mkdir($path,0777)

 

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

 

 

rmdir($path)

 

将删除路径在$path的文件.

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

 

 

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

 

输出:

 

 

Handle: Resource id #2
Path: /etc/php5
.
..
apache
cgi
cli

 

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

下面我们重点谈文件操作.

 

三、文件操作

 

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 htmlentities($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函数在php5中新引进的函数(不知道存在的话用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)), -4);
echo $perms;
?>

 

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

 

 

<?php

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

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

?>

 

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

 

 

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

 

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

 

四、结束语

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

分享到:
评论

相关推荐

    PHP 文件操作函数

    通过理解和掌握这些PHP文件操作函数,开发者可以有效地处理文件系统,构建安全、高效的Web应用。在实际开发中,结合具体需求,灵活运用这些函数,能解决大多数文件相关的编程问题。在实践中不断积累经验,才能更好地...

    php文件操作类.zip

    "php文件操作类.zip"可能包含一个自定义的PHP类库,专为处理文件系统操作而设计。这个类库可以帮助开发者更方便、高效地进行读取、写入、创建、删除和移动文件等任务,而无需直接调用PHP的内置文件函数。下面,我们...

    php文件操作类

    php文件系统操作类文件,可以对文件以及文件夹进行添加删除移动等操作。

    PHP 简单文件操作类

    PHP 写的一个简单文件操作类,支持 PHP4 PHP5

    实用的php文件操作类.zip

    "实用的PHP文件操作类"就是这样一个工具,它旨在简化常见的文件处理任务。下面我们将深入探讨PHP文件操作类的关键概念和功能。 1. **类库介绍** 这个类库很可能包含了若干个PHP类,每个类都专注于一个特定的文件或...

    PHP文件操作和生成HTML文件原理

    ### PHP文件操作和生成HTML文件原理 #### 一、PHP文件操作函数 ##### 1. fopen函数:打开文件函数 - **格式**:`fopen(路径和文件名,打开方式);` - **注意事项**: - 如果打开失败,该函数返回`FALSE`。 - ...

    PHP 读写文件操作实例

    在PHP中,文件操作是日常开发中的重要组成部分,无论是在构建动态网站、处理用户上传的文件,还是存储和检索数据,文件系统交互都是必不可少的。本篇将通过一个实例来探讨如何使用PHP进行读写文件操作。 首先,我们...

    PHP文件操作,方便的修改存在.php文件里的网站变量

    综上所述,PHP文件操作提供了灵活的方式来管理和修改存储在.php文件中的全局变量。通过合理的设计和规范的编程习惯,我们可以高效且安全地处理这类任务。同时,结合错误处理和版本控制,可以进一步增强系统的稳定性...

    php操作文件大全和mysql

    ### PHP 文件操作大全 在 PHP 中,文件操作是一项非常重要的功能,它可以帮助开发者实现数据的持久化存储、读取及管理。以下将详细介绍 PHP 文件操作的相关函数及其用法。 #### 文件基本操作 - **basename()**:...

    php文件操作.rar

    "php文件操作.rar"这个压缩包显然包含了关于如何在PHP中进行文件操作的经典教程,其中08.pdf可能是具体章节或案例的文档。在这里,我们将详细探讨PHP文件操作的主要概念和常用函数。 1. **打开和读取文件**: PHP...

    一个php文件目录操作类

    本文将详细讨论“一个PHP文件目录操作类”的概念、功能和应用,以及如何使用它来实现测试建立文件夹、复制文件夹、移动文件夹和删除...在实际开发中,这样的工具是必不可少的,特别是在处理大量文件操作的场景下。

    php 文件目录操作类|Dir.php

    php 文件目录操作类php 文件目录操作类php 文件目录操作类php 文件目录操作类php 文件目录操作类php 文件目录操作类php 文件目录操作类

    php文件操作类,十分方便

    php文件操作类,包括创建文件夹、递归复制、递归删除、递归移动

    第5章PHP5文件与目录操作

    文件操作是PHP5中的基本功能,包括普通文件操作和数据库文件操作。PHP提供了一系列的文件处理函数来执行创建、读取、写入和关闭文件等任务。 1. **fopen()**:此函数用于打开文件,接受两个参数——文件名和模式。...

    php中面向对象,文件操作类

    文件操作是PHP中非常重要的部分,它允许开发者与文件系统进行交互。在这个面向对象的文件操作类中,我们可以预期以下关键组件: 1. **构造函数**:这是类的一个特殊方法,当创建新对象时会自动调用。在文件操作类中...

    PHP5操作手册

    5. 文件系统操作:PHP5增强了文件系统操作功能,如递归遍历目录、文件上传和下载、文件权限管理等,使得处理文件和目录更加方便。 6. Session管理:PHP5提供了改进的session管理,可以自定义session存储机制,增强...

    php文件操作实例代码

    PHP中的文件操作涉及到一系列功能强大的函数,可以帮助开发者在服务器上创建、读取、写入或删除文件和目录。通过学习和实践这些文件操作函数,Web程序员可以有效地管理服务器上的文件系统,从而完成CMS系统、文件...

    PHP读取操作Excel文件实例php源码

    在本实例中,我们将讨论如何使用PHP来读取和操作Excel文件。 首先,PHP可以借助不同的库来实现Excel文件的操作,比如`PHPExcel`、`PHPOffice/PhpSpreadsheet`和`fgetcsv`函数。这里提到的“PHP读取操作Excel文件...

    php通用文件下载,适用于php5

    本文将详细介绍如何在PHP5环境中实现文件下载功能,并结合给定的文件进行解析。 首先,我们来看`download.class.php`,这可能是一个自定义的下载类,用于封装文件下载的相关操作。此类通常会包含以下方法: 1. `...

    PHP WEB文件管理源码

    对于初学者,这是一个很好的学习机会,通过研究源码可以深入理解PHP文件操作、Web交互以及权限控制等概念。而对于有经验的开发者,这样的源码可以作为一个快速启动项目的基础,节省大量开发时间。

Global site tag (gtag.js) - Google Analytics