PHP文件操作常用函数

一篇基于PHP常用文件函数和目录函数整理,我觉得挺不错的,现在就分享给大家,也给大家做个参考。

一篇基于PHP常用文件函数和目录函数整理,我觉得挺不错的,现在就分享给大家,也给大家做个参考。

is_file(string $filename) //检测是否为文件和判断一个文件是否存在
$filename指文件的路径,如果文件存在则返回 TRUE,否则返回 FALSE

is_dir(string $filename) //判断给定文件名是否是一个目录
如果文件名存在,并且是个目录,返回 TRUE,否则返回FALSE
$filename指文件的路径,如果文件存在并且是一个符号连接则返回 TRUE,否则返回 FALSE

is_link(string $filename) //判断给定文件名是否为一个连接
如果文件是一个连接,该函数返回 TRUE,否则返回 FALSE

is_readable(string $filename) //判断给定文件名是否存在并且可读
$filename指文件的路径,如果由 filename 指定的文件或目录存在并且可读则返回 TRUE,否则返回 FALSE

is_writable(string $filename) //判断给定的文件名是否可写
$filename要检查的文件名称,如果文件 filename 存在并且可写则返回 TRUE

is_executable(string $filename) //判断给定文件名是否可执行
$filename指文件的路径,如果文件存在且可执行则返回 TRUE,错误时返回FALSE
file_exists(string $filename) //检查文件或目录是否存在
$filename指文件或目录的路径,如果指定的文件或目录存在则返回 TRUE,否则返回 FALSE

filetype(string $filename) //获取文件的类型
$filename指文件的路径,返回的能的值有fifo,char,dir,block,link,file 和 unknown,如果出错则返回 FALS

filesize(string $filename) //获取文件的大小,返回文件大小的字节数
$filename指文件的路径,返回文件大小的字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级的错误

filectime(string $filename) //获取文件的创建时间
$filename指文件的路径,失败时返回 FALSE

filemtime(string $filename) //获取文件的修改时间
$filename指文件的路径,返回文件上次被修改的时间, 或者在失败时返回 FALSE

fileatime(string $filename) //获取文件的最后访问时间
$filename指文件的路径,返回文件上次被访问的时间, 或者在失败时返回 FALSE
pathinfo(string $path, int $options) //返回文件路径的信息
如果没有options ,将会返回包括以下单元的数组 array:dirname(目录路径),basename(文件名+扩展名) 和 extension(扩展名),以及filename(文件名)
$path指要解析的路径
$options如果指定了,将会返回指定元素;它们包括:PATHINFO_DIRNAME、PATHINFO_BASENAME、 PATHINFO_EXTENSION或PATHINFO_FILENAME。

实例
$filename = './test1.txt';
$path = pathinfo($filename);
print_r($path);

返回值
Array ( [dirname] => . [basename] => test1.txt [extension] => txt [filename] => test1 )

$filename=__FILE__;
echo $filename.'<br/>';
echo pathinfo($filename,PATHINFO_DIRNAME).'<br/>';
echo pathinfo($filename,PATHINFO_BASENAME).'<br/>';
echo pathinfo($filename,PATHINFO_EXTENSION).'<br/>';
echo pathinfo($filename,PATHINFO_FILENAME).'<br/>';

假如我在D盘内的WWW文件夹内的test.php输入上面的代码,则返回值是
D:\WWW\test.php
D:\WWW
test.php
php
test

dirname(string $path) //返回文件名中的路径部分
实例
echo dirname( __FILE__ ) ;

假如我在D盘内的WWW文件夹内的test.php输入上面的代码,则返回值是
D:\WWW

basename(string $path, string $suffix) //返回路径中的文件名部分
$suffix如果文件名是以 suffix 结束的,那这一部分也会被去掉
实例
$path = "/testweb/home.php";
echo basename($path) ."
"; echo basename($path,".php"); 返回值 home.php home
touch(string $filename, int $time = time(), int $atime) //设定文件的访问和修改时间,如果文件不存在,则会自动创建文件
filename指要设定的文件名。
time指要设定的时间。如果没有提供参数 time 则会使用当前系统的时间。
atime指如果给出了这个参数,则给定文件的访问时间会被设为 atime,否则会设置 为time。如果没有给出这两个参数,则使用当前系统时间。
成功时返回 TRUE, 或者在失败时返回 FALSE

unlink (string $filename) //删除指定文件
filename指文件的路径,成功时返回 TRUE, 或者在失败时返回 FALSE

rename(string $filename, string $newname) //重命名一个文件或目录
成功时返回 TRUE, 或者在失败时返回 FALSE。

copy(string  $source, string $dest) //复制文件 拷贝远程文件需要开启PHP配置文件中的allow_fopen_url=on
$source指源文件路径
$dest指目标路径,如果 dest 是一个 URL,则如果封装协议不支持覆盖已有的文件时拷贝操作会失败
成功时返回 TRUE, 或者在失败时返回 FALSE。
fopen(filename, mode, include_path, context) //打开一个文件或 URL,以指定的方式来打开
filename必需。规定要打开的文件或 URL。
mode必需。规定您请求到该文件/流的访问类型。值为:
"r" (只读方式打开,将文件指针指向文件头)
"r+" (读写方式打开,将文件指针指向文件头)
"w" (写入方式打开,清除文件内容,如果文件不存在则尝试创建之)
"w+" (读写方式打开,清除文件内容,如果文件不存在则尝试创建之)
"a" (写入方式打开,将文件指针指向文件末尾进行写入,如果文件不存在则尝试创建之)
"a+" (读写方式打开,通过将文件指针指向文件末尾进行写入来保存文件内容)
"x" (创建一个新的文件并以写入方式打开,如果文件已存在则返回 FALSE 和一个错误)
"x+" (创建一个新的文件并以读写方式打开,如果文件已存在则返回 FALSE 和一个错误)

$handle = fopen('./text.txt','r');

fread(resource $handle, int $length) //读取文件内容
handle	文件系统指针,是典型地由 fopen() 创建的 resource(资源)。
length	必需。规定要读取的最大字节数。

ftell(resource $handle) //返回文件指针读/写的位置
$handle文件指针必须是有效的,且必须指向一个通过 fopen() 或 popen() 成功打开的文件

fseek(resource $handle, int $offset[, int $whence = SEEK_SET]) //重置指针
$handle文件系统指针,是典型地由 fopen() 创建的 resource(资源)。
$offset偏移量。

fclose($handle) //关闭文件句柄

fwrite(resource $handle, string $string [, int $length ])/fputs():写入文件,向文件写内容
$handle 文件系统指针,是典型地由 fopen() 创建的 resource(资源)。
$string 要写入的内容
$length如果指定了 length,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况。

PHP_EOL //换行符

rewind(resource $handle) //重置文件指针的位置,将 $handle 的文件位置指针设为文件流的开头

ftruncate(resource $handle , int $size) //截断文件

fgetc(resource $handle) //从文件指针中读取字符
fgets(resource $handle [, int $length ]) //从文件指针中读取一行
fgetss(resource $handle [, int $length [, string $allowable_tags ]]) // 从文件指针中读取一行并过滤掉 HTML 标记

feof(resource $handle) //检测文件指针是否到了文件末尾
while (!feof($handle)){
    //一个字符一个字符读取
    //echo fgetc($handle).'<br/>';
    //一行一行读取
    echo fgets($handle).'<br/>';
    //一行一行读取,并且过滤HTML标记
    echo fgetss($handle).'<br/>';
    //echo strip_tags(fgets($handle));
}
file_get_contents(string $filename) //将整个文件读入一个字符串
$filename要读取的文件的名称

file_put_contents(string $filename, mixed $data)
$filename要被写入数据的文件名。
$data要写入的数据。类型可以是 string,array 或者是 stream 资源
覆盖文件中原有的内容,如果不想覆盖之前的内容,可以先把文件中内容读取出来,接着再写入
实例
<?php
$filename = './test.txt';
$string = file_get_contents($filename)
$data = $string.'this is a test';
file_put_contents($filename,$data);
?>
如果文件不存在file_put_contents()会创建这个文件