×

关注微信公众号

教程网 首页 教程 编程语言 PHP 查看内容
免备案网站空间虚拟主机双线空间域名查询PS数码后期
photoshop互助课堂数百G视频教程下载英语培训机构初中英语如何学随时随地聆听大师开讲/课堂
软件安装教程 远程服务 超值!手绘教程抠图教程路径专辑photoshop cs3视频教程

PHP技巧:PHP脚本编程中的文件系统函数库

时间 : 2015-11-4 11:29

作者 : 素材控

 查看 : ( 2002 )  评论 : ( 0 )

摘要 : basename: 返回不含路径的文件字符串。 chgrp: 改变文件所属的群组。 chmod: 改变文件的属性。 chown: 改变文件的拥有者。 clearstatcache: 清除文件状态快取。 copy: 复制文件。 delete: 无用的项目。 ...

basename: 返回不含路径的文件字符串。

chgrp: 改变文件所属的群组。

chmod: 改变文件的属性。

chown: 改变文件的拥有者。

clearstatcache: 清除文件状态快取。

copy: 复制文件。

delete: 无用的项目。

dirname: 取得路径中的目录名。

diskfreespace: 取得目录所在的剩余可用空间。

fclose: 关闭已打开的文件。

feof: 测试文件指针是否指到档尾。

fgetc: 取得文件指针所指的字符。

fgetcsv: 取得文件指针所指行,并解析 csv 字段。

fgets: 取得文件指针所指的行。

fgetss: 取得文件指针所指的行,并去掉 html 语言标记。

file: 将文件全部读入数组变量中。

file_exists: 检查文件是否存在。

fileatime: 取得文件最后的存取时间。

filectime: 取得文件最后的改变时间。

filegroup: 取得文件所属的群组。

fileinode: 取得文件的 inode 值。

filemtime: 取得文件最后的修改时间。

fileowner: 取得文件的拥有者。

fileperms: 取得文件的权限配置。

filesize: 获得文件的大小。

filetype: 获得文件的类型。

flock: 锁住文件。

fopen: 打开文件或者 url。

fpassthru: 输出所有剩余资料。

fputs: 写到文件指针。

fread: 位组的方式读取文件。

fseek: 移动文件指针。

ftell: 取得文件读写指针位置。

fwrite: 二进位位方式写入文件。

set_file_buffer: 配置文件缓冲区大小。

is_dir: 测试文件是否为目录。

is_executable: 测试文件是否为可执行档。

is_file: 测试文件是否为正常文件。

is_link: 测试文件是否为链接档。

is_readable: 测试文件是否可读取。

is_writeable: 测试文件是否可写入。

link: 建立硬式链接。

linkinfo: 取得链接信息。

mkdir: 建立目录。

pclose: 关闭文件。

popen: 打开文件。

readfile: 输出文件。

readlink: 返回符号链接 (symbolic link) 目标档。

rename: 更改档名。

rewind: 重置开档的读写位置指针。

rmdir: 删除目录。

stat: 取得文件相关信息。

lstat: 取得链接档相关信息。

symlink: 建立符号链接 (symbolic link)。

tempnam: 建立只一的临时档。

touch: 配置最后修改时间。

umask: 改变目前的文件属性遮罩 umask。

unlink: 删除文件。

basename

返回不含路径的文件字符串。

语法: string basename(string path);

返回值: 字符串

函数种类: 文件存取

内容说明: 将含路径及文件字符串中的路径拿掉,返回只含文件名的字符串。在 windows 系列的操作系统中,路径可以是斜线 (/) 或反斜线 (\);在 unix 系列的操作系统,路径为斜线 (/)。

使用范例

下例中的 $file 变量值为 "index.php"


$path = "/home/httpd/html/index.php";

$file = basename($path);

?>

参考 dirname()

chgrp

改变文件所属的群组。

语法: int chgrp(string filename, mixed group);

返回值: 整数

函数种类: 文件存取

内容说明 本函数用来改变文件所属的群组,只有系统管理员权限可以任意改变文件所属群组,其余的使用者都只能改变本身拥有的文件。成功返回 true,失败返回 false;在 windows 系列操作系统中,本函数什么也不做就返回 true。

参考 chown() chmod()

chmod

改变文件的属性。

语法: int chmod(string filename, int mode);

返回值: 整数

函数种类: 文件存取

内容说明: 本函数用来改变文件的属性。成功则返回 true、失败返回 false。在 mode 值中,系统不会自动将它加入 0 以获得正确的八进位演算,若要正确的使用,可以用下例第二行的方式。

使用范例

下二行都是将文件属性设为 rwxr-xr-x,但以第二行较好。


chmod("/mydir/myfile", 755 ); // mode 为十进位,可能有潜在错误

chmod("/mydir/myfile", 0755 ); // mode 为八进位,确定的属性值

?>

参考 chown() chgrp()

chown

改变文件的拥有者。

语法: int chown(string filename, mixed user);

返回值: 整数

函数种类: 文件存取

内容说明: 本函数用来改变文件的拥有人,只有系统管理员权限可以任意改变文件所属群组,其余的使用者都只能改变本身拥有的文件。成功返回 true,失败返回 false;在 windows 系列操作系统中,本函数什么也不做就返回 true。

参考 chmod()

clearstatcache

清除文件状态快取。

语法: void clearstatcache(void);

返回值: 无

函数种类: 文件存取

内容说明 对操作系统而言,使用 stat() 或 lstat() 二个函数是很耗资源的,尤其是当每次都要重新呼叫 stat() 及 lstat() 二个函数时,更是不经济的方式。因此为节省资源,php 系统会将文件状态放在快取内存中,以便随时使用。而本函数就是提供清除快取内存中文件信息的函数。受本函数影响的函数有 stat()、lstat()、file_exists()、is_writeable()、is_readable()、is_executable ()、is_file()、is_dir()、is_link()、filectime()、fileatime()、filemtime()、 fileinode()、filegroup()、fileowner()、filesize()、filetype() 及 fileperms() 等十八个。

参考 stat() lstat() file_exists() is_writeable() is_readable() is_executable() is_file() is_dir() is_link() filectime() fileatime() filemtime() fileinode() filegroup() fileowner() filesize() filetype() fileperms()

copy

复制文件。

语法: int copy(string source, string dest);

返回值: 整数

函数种类: 文件存取

内容说明: 本函数用来复制文件。成功则返回 true、失败返回 false。

使用范例

本例复制文件,失败时显示复制失败的信息。


if (!copy($file, $file.'.bak')) {

print("复制文件 $file 失败...
\n");

}

?>

参考 rename()

delete

无用的项目。

语法: void delete(string file);

返回值: 无

函数种类: 文件存取

内容说明: 本函数为无用的项目。要删除文件用 unlink()、要删去变量用 unset()。

参考 unlink() unset()

dirname

取得路径中的目录名。

语法: string dirname(string path);

返回值: 字符串

函数种类: 文件存取

内容说明: 本函数返回 path 中的目录名称。在 win32 系统中,用斜线 (/) 或者反斜线 (\) 都可以;但是其它的操作系统的路径都是 (/)。

使用范例

本例返回字符串 $file 为 "/etc"。


$path = "/etc/hostname";

$file = dirname($path);

?>

参考 basename()

diskfreespace

取得目录所在的剩余可用空间。

语法: float diskfreespace(string directory);

返回值: 浮点数

函数种类: 文件存取

内容说明: 本函数用来取得目录所在储存装置的剩余空间,单位为位组 (byte)。

使用范例

本例可以知道根目录的剩余空间。


$df = diskfreespace("/");

?>

fclose

关闭已打开的文件。

语法: int fclose(int fp);

返回值: 整数

函数种类: 文件存取

内容说明:本函数用来关闭已经打开的文件的指针 fp。成功返回 true,失败则返回 false。其中的文件指针必须是有效的,且必须是已经用 fopen() 或 fsockopen() 成功开文件的指针。

feof

测试文件指针是否指到文件尾。

语法: int feof(int fp);

返回值: 整数

函数种类: 文件存取

内容说明: 本函数测试文件的指针是否指到文件尾 (end of file, eof)。若是成功或发生错误则返回 true 值,其它情形返回 false 值。其中的文件指针必须是有效的,且必须是已经用 fopen()、popen() 或 fsockopen() 成功开文件的指针。

fgetc

取得文件指针所指的字符。

语法: string fgetc(int fp);

返回值: 字符串

函数种类: 文件存取

内容说明: 本函数取得文件指针所指的字符,返回字符串类型的字符。指针若在 eof 则返回 false。其中的文件指针必须是有效的,且必须是已经用 fopen()、popen() 或 fsockopen() 成功开文件的指针。

参考 fread() fopen() popen() fsockopen() fgets()

fgetcsv

取得文件指针所指行,并解析 csv 字段。

语法: array fgetcsv(int fp, int length, string [delimiter]);

返回值: 数组

函数种类: 文件存取

内容说明: 本函数与 fgets() 的功用类似,不同的地方在于本函数用来解析读取行的 csv 字段资料,并将其放入数组变量之中。其中的第三个参数 delimiter 若未指定,则使用内定值:逗号。其中的文件指针 fp 必须是有效的,且必须是已经用 fopen()、popen() 或 fsockopen()

成功开文件的指针。而第二个参数 length 的值必须要比 csv 文件最长一行的字符数还大。本函数若发生错误或者到文件尾 (eof, end of

file),则会返回 false 值。若遇到空行,则传到数组结构的字符为空字符字段 (null),而不是当作发生错误的情形。

使用范例


$row=1;

$fp = fopen("mycsv.csv","r");

while ($data = fgetcsv($fp,1000, ",")) {

$num = count($data);

print "

字段 $num 在第 $row 行:
";

$row++;

for ( $c=0; $c<$num; $c++ ) print $data[$c] . "
";

}

fclose($fp);

?>

fgets

取得文件指针所指的行。

语法: string fgets(int fp, int length);

返回值: 字符串

函数种类: 文件存取

内容说明: 本函数取得文件指针所指的行,返回字符串长度为行的长度减一。若发生错误则返回 false。一般常遇到的陷阱是用 c 语言的经验

来使用本函数,而 eof 时的处理方式则和 c 语言的 fgets() 不同。其中的文件指针必须是有效的,且必须是已经用 fopen()、popen() 或

fsockopen() 成功开文件的指针。

使用范例


$fd = fopen("/tmp/myfile.txt", "r");

while ($buffer = fgets($fd, 4096)) {

echo $buffer;

}

fclose($fd);

?>

参考: fread() fopen() popen() fsockopen() fgetc()

fgetss

取得文件指针所指的行,并去掉 html 语言标记。

语法: string fgetss(int fp, int length);

返回值: 字符串

函数种类: 文件存取

内容说明

本函数除了 fgets() 的功能,并同时去掉取回字符串中的 html 语言及 php 语法的标记字符串。

参考: fopen() popen() fsockopen() fgets() strip_tags()

file

将文件全部读入数组变量中。

语法: array file(string filename);

返回值: 数组

函数种类: 文件存取

内容说明: 本函数与 readfile() 类似,不同的地方为本函数将文件全部读出,并输出到数组的变量中,每行都是单独的数组元素。

参考: fopen() popen() readfile()

file_exists

检查文件是否存在。

语法: int file_exists(string filename);

返回值: 整数

函数种类: 文件存取

内容说明: 本函数用来测试检查文件是否存在,返回 true 表示文件存在。返回值放在快取缓冲区中,可以参考 clearstatcache()。

fileatime

取得文件最后的存取时间。

语法: int fileatime(string filename);

返回值: 整数

函数种类: 文件存取

内容说明: 本函数返回指定文件 filename 的最后存取时间。返回 false 表示发生错误。返回值放在快取缓冲区中,可以参考

clearstatcache()。

filectime

取得文件最后的改变时间。

语法: int filectime(string filename);

返回值: 整数

函数种类: 文件存取

内容说明: 本函数返回指定文件 filename 的 inode 最后改变时间。返回 false 表示发生错误。返回值放在快取缓冲区中,可以参考

clearstatcache()。

filegroup

取得文件所属的群组。

语法: int filegroup(string filename);

返回值: 整数

函数种类: 文件存取

内容说明: 本函数返回指定文件的群组使用者 gid 值。返回 false 表示发生错误。返回值放在快取缓冲区中,可以参考 clearstatcache()。

fileinode

取得文件的 inode 值。

语法: int fileinode(string filename);

返回值: 整数

函数种类: 文件存取

内容说明: 本函数返回指定文件的 inode 值。返回 false 表示发生错误。返回值放在快取缓冲区中,可以参考 clearstatcache()。

filemtime

取得文件最后的修改时间。

语法: int filemtime(string filename);

返回值: 整数

函数种类: 文件存取

内容说明: 本函数返回指定文件 filename 的最后修改时间。返回 false 表示发生错误。返回值放在快取缓冲区中,可以参考

clearstatcache()。

使用范例

以下是benbatten@home.com(29-apr-1999) 在 win95 上的实作范例,例中返回当页 homepage 的最后修改时间并将 filemtime() 返回的unix 格式的时间字符串转换成 12 小时制的字符串。

(注:由于本例的文件为 __file__ 表示目前的文件,其实和使用 getlastmod() 函数有相同的效果。)


$filemod = filemtime(__file__);

$filemodtime = date("f j y h:i:s a", $filemod);

print("本页最后修改时间: $filemodtime");

?>

fileowner

取得文件的拥有者。

语法: int fileowner(string filename);

返回值: 整数

函数种类: 文件存取

内容说明: 本函数返回指定文件拥有者的 uid 值。返回 false 表示发生错误。返回值放在快取缓冲区中,可以参考 clearstatcache()。

fileperms

取得文件的权限配置。

语法: int fileperms(string filename);

返回值: 整数

函数种类: 文件存取

内容说明: 本函数返回指定文件的权限配置值。返回 false 表示发生错误。返回值放在快取缓冲区中,可以参考 clearstatcache()。

filesize

获得文件的大小。

语法: int filesize(string filename);

返回值: 整数

函数种类: 文件存取

内容说明: 本函数返回指定文件的文件大小。返回 false 表示发生错误。返回值放在快取缓冲区中,可以参考 clearstatcache()。

filetype

获得文件的类型。

语法: string filetype(string filename);

返回值: 字符串

函数种类: 文件存取

内容说明: 本函数返回指定文件的文件类型。可能的返回类型有 fifo、char、dir、block、link、file 及 unknown 等等。返回 false 表示

发生错误。返回值放在快取缓冲区中,可以参考 clearstatcache()。

flock

锁住文件。

语法: boolean flock(int fp, int operation);

返回值: 布尔值

函数种类: 文件存取

内容说明: 本函数用来锁住文件,使别的行程无法存取。传入的参数 fp 为文件的指针。参数 operation 的值为下列的数字之一:1 表示配置

锁住文件可以允许别的行程读取;2 表示只有该行程可以写入文件;3 表示读写均锁住;4 则不锁住区块 (block)。而本函数无论在 unix 或

是 windows 系列中的锁住效果都相近。执行成功则返回 true 值,否则返回 false 值。

fopen

打开文件或者 url。

语法: int fopen(string filename, string mode);

返回值: 整数

函数种类: 文件存取

内容说明: 说明: 本函数可用来打开本地或者远端的文件。若参数 filename 为 "http://......" 则本函数利用 http 1.0 协议与服务器连接,文件指针则指到服务器返回文件的起始处。若参数 filename 为 "ftp://......." 则本函数会与服务器连接,文件指针指到指定的文件处。若 ftp 服务器没有支持被动模式 (passive mode ftp) 则返回失败值。打开的 ftp 文件可以是读取或写入其中之一,但不能读或写二种同时使用。其它的情形,本函数打开本地的文件,文件的指针则指向打开的文件。若开文件失败,则返回 false 值。

字符串参数 mode 可以是下列的情形:

'r' 开文件方式为只读,文件指针指到开始处。

'r+' 开文件方式为可读写,文件指针指到开始处。

'w' 开文件方式为写入,文件指针指到开始处,并将原文件的长度设为 0。若文件不存在,则建立新文件。

'w+' 开文件方式为可读写,文件指针指到开始处,并将原文件的长度设为 0。若文件不存在,则建立新文件。

'a' 开文件方式为写入,文件指针指到文件最后。若文件不存在,则建立新文件。

'a+' 开文件方式为可读写,文件指针指到文件最后。若文件不存在,则建立新文件。

'b' 若操作系统的文字及二进位文件不同,则可以用此参数,unix 系统不需要使用本参数。

使用范例

第一行为 unix 系统使用;第二行是 windows 系列系统的用法;第三、四行则为 url 的使用范例。


$fp = fopen("/home/rasmus/file.txt", "r");

$fp = fopen("c:\\mydata\\info.txt", "r");

$fp = fopen("http://www.php.net/", "r");

$fp = fopen("ftp://user:password@my.com/", "w");

?>

参考

fclose() popen() fsockopen()

fpassthru

输出所有剩余资料。

语法: int fpassthru(int fp);

返回值: 整数

函数种类: 文件存取

内容说明: 本函数读取文件 fp 直到文件尾 (end of file, eof),并将资料输出到标准输出 (standard output)。若有错误发生,则返回false 值。而文件 fp 必须由 fopen()、popen() 或 fsockopen() 打开成功的指针。当本函数读完文件,会自动将文件关闭,即 fp 变无效。如果只是要将文件输出到标准输出,可以使用 readfile() 会比用 fopen() 更好。

参考: readfile() fopen() fclose() popen() fsockopen()

fputs

写到文件指针。

语法: int fputs(int fp, string str, int [length]);

返回值: 整数

函数种类: 文件存取

内容说明: 本函数即 fwrite(),只是一个别名。用来将字符串 str 写到文件指针。

fread

位组的方式读取文件。

语法: string fread(int fp, int length);

返回值: 字符串

函数种类: 文件存取

内容说明: 本函数读到指定长度的位组或到文件尾 eof。

使用范例


$filename = "/usr/local/myfile.txt";

$fd = fopen( $filename, "r" );

$contents = fread($fd, filesize($filename));

fclose( $fd );

?>

参考: readfile() fopen() fclose() fwrite() fgets() fgetss() file() fpassthru() popen() fsockopen()

fseek

移动文件指针。

语法: int fseek(int fp, int offset);

返回值: 整数

函数种类: 文件存取

内容说明: 本函数将文件 fp 的指针移到指定的偏移位 (offset) 上。使用本函数就像 c 语言中的 fseek(fp, offset, seek_set) 函数。成

功则返回 0,失败则返回 -1 值。当 fp 由 fopen() 打开 "http://...." 或是 "ftp://...." 等 url 文件时,本函数无法作用。

参考: ftell() rewind()
12下一页
分享到:

猜您喜欢

文章评论

相关分类