PHP4手册:函数库及函数(十六) 文件系统函式库-1
--------------------------------------------------------------------------------
档案系统函式库
--------------------------------------------------------------------------------
本函式库共有 58 个函式
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()
--------------------------------------------------------------------------------
档案系统函式库
basename
传回不含路径的档案字串。
语法: string basename(string path);
传回值: 字串
函式种类: 档案存取
内容说明
将含路径及档案字串中的路径拿掉,传回只含档名的字串。在 Windows 系列的作业系统中,路径可以是斜线 (/) 或反斜线 (\);在 UNIX 系列的作业系统,路径为斜线 (/)。
使用范例
下例中的 $file 变数值为 "index.php"
$path = "/home/httpd/html/index.php";
$file = basename($path);
?>
参考
dirname()
--------------------------------------------------------------------------------
函式:chgrp()
--------------------------------------------------------------------------------
档案系统函式库
chgrp
改变档案所属的群组。
语法: int chgrp(string filename, mixed group);
传回值: 整数
函式种类: 档案存取
内容说明
本函式用来改变档案所属的群组,只有系统管理员权限可以任意改变档案所属群组,其余的使用者都只能改变本身拥有的档案。成功传回 true,失败传回 false;在 Windows 系列作业系统中,本函式什么也不做就传回 true。
参考
chown() chmod()
--------------------------------------------------------------------------------
函式: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()
--------------------------------------------------------------------------------
档案系统函式库
chown
改变档案的拥有者。
语法: int chown(string filename, mixed user);
传回值: 整数
函式种类: 档案存取
内容说明
本函式用来改变档案的拥有人,只有系统管理员权限可以任意改变档案所属群组,其余的使用者都只能改变本身拥有的档案。成功传回 true,失败传回 false;在 Windows 系列作业系统中,本函式什么也不做就传回 true。
参考
chmod()
函式:clearstatcache()
--------------------------------------------------------------------------------
档案系统函式库
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()
--------------------------------------------------------------------------------
档案系统函式库
copy
复制档案。
语法: int copy(string source, string dest);
传回值: 整数
函式种类: 档案存取
内容说明
本函式用来复制档案。成功则传回 true、失败传回 false。
使用范例
本例复制档案,失败时显示复制失败的讯息。
if (!copy($file, $file.'.bak')) {
print("复制档案 $file 失败...
\n");
}
?>
参考
rename()
--------------------------------------------------------------------------------
函式:delete()
--------------------------------------------------------------------------------
档案系统函式库
delete
无用的项目。
语法: void delete(string file);
传回值: 无
函式种类: 档案存取
内容说明
本函式为无用的项目。要删除档案用 unlink()、要删去变数用 unset()。
参考
unlink() unset()
--------------------------------------------------------------------------------
函式:dirname()
--------------------------------------------------------------------------------
档案系统函式库
dirname
取得路径中的目录名。
语法: string dirname(string path);
传回值: 字串
函式种类: 档案存取
内容说明
本函式传回 path 中的目录名称。在 Win32 系统中,用斜线 (/) 或者反斜线 (\) 都可以;但是其它的作业系统的路径都是 (/)。
使用范例
本例传回字串 $file 为 "/etc"。
$path = "/etc/hostname";
$file = dirname($path);
?>
参考
basename()
--------------------------------------------------------------------------------
函式:diskfreespace()
--------------------------------------------------------------------------------
档案系统函式库
diskfreespace
取得目录所在的剩余可用空间。
语法: float diskfreespace(string directory);
传回值: 浮点数
函式种类: 档案存取
内容说明
本函式用来取得目录所在储存装置的剩余空间,单位为位元组 (byte)。
使用范例
本例可以知道根目录的剩余空间。
$df = diskfreespace("/");
?>
--------------------------------------------------------------------------------
函式:fclose()
--------------------------------------------------------------------------------
档案系统函式库
fclose
关闭已开启的档案。
语法: int fclose(int fp);
传回值: 整数
函式种类: 档案存取
内容说明
本函式用来关闭已经开启的档案的指标 fp。成功传回 true,失败则传回 false。其中的档案指标必须是有效的,且必须是已经用 fopen() 或 fsockopen() 成功开档的指标。
--------------------------------------------------------------------------------
函式:feof()
--------------------------------------------------------------------------------
档案系统函式库
feof
测试档案指标是否指到档尾。
语法: int feof(int fp);
传回值: 整数
函式种类: 档案存取
内容说明
本函式测试档案的指标是否指到档尾 (End of File, EOF)。若是成功或发生错误则传回 true 值,其它情形传回 false 值。其中的档案指标必须是有效的,且必须是已经用 fopen()、popen() 或 fsockopen() 成功开档的指标。
--------------------------------------------------------------------------------
函式:fgetc()
--------------------------------------------------------------------------------
档案系统函式库
fgetc
取得档案指标所指的字元。
语法: string fgetc(int fp);
传回值: 字串
函式种类: 档案存取
内容说明
本函式取得档案指标所指的字元,传回字串型态的字元。指标若在 EOF 则传回 false。其中的档案指标必须是有效的,且必须是已经用 fopen()、popen() 或 fsockopen() 成功开档的指标。
参考
fread() fopen() popen() fsockopen() fgets()
--------------------------------------------------------------------------------
函式:fgetcsv()
--------------------------------------------------------------------------------
档案系统函式库
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()
--------------------------------------------------------------------------------
档案系统函式库
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()
--------------------------------------------------------------------------------
档案系统函式库
fgetss
取得档案指标所指的行,并去掉 HTML 语言标记。
语法: string fgetss(int fp, int length);
传回值: 字串
函式种类: 档案存取
内容说明
本函式除了 fgets() 的功能,并同时去掉取回字串中的 HTML 语言及 PHP 语法的标记字串。
参考
fopen() popen() fsockopen() fgets() strip_tags()