超级全面的php文件操作

一、判断文件和目录

<?php
file_exists(string $filename);    //判断文件或目录是否存在
is_file(string $filename);        //判断给定文件名是否为一个正常的文件
is_dir(string $filename);         //判断给定文件名是否是一个目录
is_readable(string $filename);   //判断给定文件名是否存在并且可读.
is_writable(string $filename);   //判断给定文件名是否存在并且可写.
is_executable(string $filename);  //判断给定文件名是否可执行.
is_link(string $filename);        //判断给定文件名是否存在并且是一个符号连接文件(软连接文件).
?>

二、文件属性

<?php
// 获取指定文件的信息.如果filename是符号连接,
//则统计被连接文件,而不是符号连接本身.
stat(string $filename);

//获取由文件指针handle(由fopen()创建)所打开文件的统计信息.
//和stat()函数相同,除了它是作用于已打开的文件指针而不是文件名.
fstat(resource $handle);

//获取指定的文件信息.如果filename是符号连接,
//则统计符号连接本身,而不是被连接文件,其他和stat()相同.
lstat(string $filename);

上面三个函数的返回数组中的键值:

<?php
/**
 * dev      设备名
 * ino      inode号码
 * mode     inode保护模式
 * nlink    被连接数目
 * uid      所有者的用户id
 * gid      所有者的组id
 * rdev     设备类型,如果是inode设备的话
 * size     文件大小的字节数
 * atime    上次访问时间(Unix 时间戳)
 * mtime    上次修改时间(Unix 时间戳)
 * ctime    上次改变时间(Unix 时间戳)
 * blksize  文件系统 IO 的块大小
 * blocks   所占据块的数目
 */
filesize(string $filename);       //取得普通文件大小
filectime(string $filename);      //获取文件的创建时间
filemtime(string $filename);      //获取文件的修改时间
fileatime(string $filename);      //取得文件的上次访问时间
fileinode(string $filename);      //返回文件的索引节点(inode)
filegroup(string $filename);      //取得文件所属组`ID`
posix_getgrgid(int $gid);         //将组id其解析为包含组名`,`密码`,`组id`,
                                  //`组成员`组成的数组.
fileowner(string $filename);      //取得文件所有者`ID`.
posix_getpwuid(int $uid);         //将用户`id`其解析为包含`用户名`,`密码`,
                                  //`用户id`,`组id`、`家目录`、使用的
                                  //shell组成的数组.
filetype(string $filename);       //返回文件的类型.可能的值有
                                  //`fifo`,`char`,`dir`,`block`,
                                  //`link`,`file`,`unknown`,`.
fileperms(string $filename);      //取得文件的权限,返回十进制的数字,
                                  //要转换为八进制并取后4位.
substr(sprintf('%o', fileperms(string $filename)), -4);
//清除文件状态缓存,受影响的函数包括
// stat(), lstat(), file_exists(), is_writable(), is_readable(),
// is_executable(), is_file(), is_dir(), is_link(), filectime(),
// fileatime(), filemtime(), fileinode(), filegroup(),
// fileowner(), filesize(), filetype() 和 fileperms()
clearstatcache();
# 当使用任何列在受影响函数表中的函数时,PHP将缓存这些函数的返回信息以提供更快的性能.
# 如果在一个脚本中多次检查同一个文件,而该文件在此脚本执行期间有可能被删除或修改,
# 要清除文件状态缓存.必须注意的是,对于不存在的文件,PHP 并不会缓存其信息.如调用 
# file_exists()来检查不存在的文件
<?php
//将文件所属的组改成`groupv通过组名或组`ID`指定).
chgrp(string $filename,mixed $group);
//将文件的所有者改成用户user(由用户名或用户`ID`指定).
//只有超级用户可以改变文件的所有者.
chown(string $filename ,mixed $user);
//尝试设定文件的访问时间($time)和修改时间($atime).如果文件不存在,则会被创建.
touch (string $filename[,int $time=time()[,int $atime=time()]]);
//取得当前工作目录
getcwd();
//将PHP的当前目录改为`directory`.
chdir(string $directory);
//尝试将`filename`所指定文件的权限改成mode所给定的.`chmod("/dir/file", 0755)`;
chmod(string $filename,int $mode);
//获取当前脚本的索引节点(inode)
getmyinode()
//获取当前 PHP 脚本拥有者的用户组`ID`.
getmygid()
//获取 PHP 脚本所有者的`UID`
getmyuid()
//获取 PHP 进程的`ID`
getmypid()
//获取当前`PHP`脚本所有者名称
get_current_user()
//获取页面最后修改的时间
getlastmod()
//返回符号连接的内容.
readlink(string $path)
//对于已有的`target`建立一个名为`link`的符号连接.
symlink(string $target,string $link)
//获取一个连接的信息.本函数用来验证一个连接(由`path`所指向的)是否确实存在
linkinfo(string $path)
//函数返回指定的目录所在磁盘分区的可用空间
disk_free_space()
//函数返回指定的目录所在磁盘分区的总容量
disk_total_space();
This entry was posted in php. Bookmark the permalink.

发表回复