PHP4手册:函数库及函数(十六) 文件系统函式库-2
--------------------------------------------------------------------------------
函式:file()
--------------------------------------------------------------------------------
档案系统函式库
file
将档案全部读入阵列变数中。
语法: array file(string filename);
传回值: 阵列
函式种类: 档案存取
内容说明
本函式与 readfile() 类似,不同的地方为本函式将档案全部读出,并输出到阵列的变数中,每行都是单独的阵列元素。
参考
fopen() popen() readfile()
--------------------------------------------------------------------------------
函式:file_exists()
--------------------------------------------------------------------------------
档案系统函式库
file_exists
检查档案是否存在。
语法: int file_exists(string filename);
传回值: 整数
函式种类: 档案存取
内容说明
本函式用来测试检查档案是否存在,传回 true 表示档案存在。传回值放在快取缓冲区中,可以参考 clearstatcache()。
--------------------------------------------------------------------------------
函式:fileatime()
--------------------------------------------------------------------------------
档案系统函式库
fileatime
取得档案最后的存取时间。
语法: int fileatime(string filename);
传回值: 整数
函式种类: 档案存取
内容说明
本函式传回指定档案 filename 的最后存取时间。传回 false 表示发生错误。传回值放在快取缓冲区中,可以参考 clearstatcache()。
--------------------------------------------------------------------------------
函式:filectime()
--------------------------------------------------------------------------------
档案系统函式库
filectime
取得档案最后的改变时间。
语法: int filectime(string filename);
传回值: 整数
函式种类: 档案存取
内容说明
本函式传回指定档案 filename 的 inode 最后改变时间。传回 false 表示发生错误。传回值放在快取缓冲区中,可以参考 clearstatcache()。
--------------------------------------------------------------------------------
函式:filegroup()
--------------------------------------------------------------------------------
档案系统函式库
filegroup
取得档案所属的群组。
语法: int filegroup(string filename);
传回值: 整数
函式种类: 档案存取
内容说明
本函式传回指定档案的群组使用者 GID 值。传回 false 表示发生错误。传回值放在快取缓冲区中,可以参考 clearstatcache()。
--------------------------------------------------------------------------------
函式:fileinode()
--------------------------------------------------------------------------------
档案系统函式库
fileinode
取得档案的 inode 值。
语法: int fileinode(string filename);
传回值: 整数
函式种类: 档案存取
内容说明
本函式传回指定档案的 inode 值。传回 false 表示发生错误。传回值放在快取缓冲区中,可以参考 clearstatcache()。
--------------------------------------------------------------------------------
函式:filemtime()
--------------------------------------------------------------------------------
档案系统函式库
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()
--------------------------------------------------------------------------------
档案系统函式库
fileowner
取得档案的拥有者。
语法: int fileowner(string filename);
传回值: 整数
函式种类: 档案存取
内容说明
本函式传回指定档案拥有者的 UID 值。传回 false 表示发生错误。传回值放在快取缓冲区中,可以参考 clearstatcache()。
--------------------------------------------------------------------------------
函式:fileperms()
--------------------------------------------------------------------------------
档案系统函式库
fileperms
取得档案的权限设定。
语法: int fileperms(string filename);
传回值: 整数
函式种类: 档案存取
内容说明
本函式传回指定档案的权限设定值。传回 false 表示发生错误。传回值放在快取缓冲区中,可以参考 clearstatcache()。
--------------------------------------------------------------------------------
函式:filesize()
--------------------------------------------------------------------------------
档案系统函式库
filesize
获得档案的大小。
语法: int filesize(string filename);
传回值: 整数
函式种类: 档案存取
内容说明
本函式传回指定档案的档案大小。传回 false 表示发生错误。传回值放在快取缓冲区中,可以参考 clearstatcache()。
函式:filetype()
--------------------------------------------------------------------------------
档案系统函式库
filetype
获得档案的型态。
语法: string filetype(string filename);
传回值: 字串
函式种类: 档案存取
内容说明
本函式传回指定档案的档案型态。可能的传回型态有 fifo、char、dir、block、link、file 及 unknown 等等。传回 false 表示发生错误。传回值放在快取缓冲区中,可以参考 clearstatcache()。
--------------------------------------------------------------------------------
函式:flock()
--------------------------------------------------------------------------------
档案系统函式库
flock
锁住档案。
语法: boolean flock(int fp, int operation);
传回值: 布林值
函式种类: 档案存取
内容说明
本函式用来锁住档案,使别的行程无法存取。传入的参数 fp 为档案的指标。参数 operation 的值为下列的数字之一:1 表示设定锁住档案可以允许别的行程读取;2 表示只有该行程可以写入档案;3 表示读写均锁住;4 则不锁住区块 (block)。而本函式无论在 UNIX 或是 Windows 系列中的锁住效果都相近。执行成功则传回 true 值,否则传回 false 值。
--------------------------------------------------------------------------------
函式:fopen()
--------------------------------------------------------------------------------
档案系统函式库
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()
--------------------------------------------------------------------------------
档案系统函式库
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()
--------------------------------------------------------------------------------
档案系统函式库
fputs
写到档案指标。
语法: int fputs(int fp, string str, int [length]);
传回值: 整数
函式种类: 档案存取
内容说明
本函式即 fwrite(),只是一个别名。用来将字串 str 写到档案指标。
函式:fread()
--------------------------------------------------------------------------------
档案系统函式库
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()
--------------------------------------------------------------------------------
档案系统函式库
fseek
移动档案指标。
语法: int fseek(int fp, int offset);
传回值: 整数
函式种类: 档案存取
内容说明
本函式将档案 fp 的指标移到指定的偏移位元 (offset) 上。使用本函式就像 C 语言中的 fseek(fp, offset, SEEK_SET) 函式。成功则传回 0,失败则传回 -1 值。当 fp 由 fopen() 开启 "http://...." 或是 "ftp://...." 等 URL 档案时,本函式无法作用。
参考
ftell() rewind()
--------------------------------------------------------------------------------
函式:ftell()
--------------------------------------------------------------------------------
档案系统函式库
ftell
取得档案读写指标位置。
语法: int ftell(int fp);
传回值: 整数
函式种类: 档案存取
内容说明
本函式传回档案 fp 的指标偏移位元 (offset) 值。当发生错误时,传回 false 值。档案指标 fp 必须是有效的,且使用 fopen() 或者 popen() 二个函式开启方可作用。
参考
fopen() popen() fseek() rewind()
--------------------------------------------------------------------------------
函式:fwrite()
--------------------------------------------------------------------------------
档案系统函式库
fwrite
二进位位元方式写入档案。
语法: int fwrite(int fp, string string, int [length]);
传回值: 整数
函式种类: 档案存取
内容说明
本函式将字串 string 写入档案资料流的指标 fp 上。若有指定长度 length,则会写入指定长度字串,或是写到字串结束。值得注意的是若指定了长度,则在 PHP 环境设定值 magic_quotes_runtime 的设定将被忽略,同时字串中的斜线不会被删除。
参考
fread() fopen() popen() fsockopen() fputs()
--------------------------------------------------------------------------------
函式:set_file_buffer()
--------------------------------------------------------------------------------
档案系统函式库
set_file_buffer
设定档案缓冲区大小。
语法: int set_file_buffer(int fp, int buffer);
传回值: 整数
函式种类: 档案存取
内容说明
本函式设定档案的缓冲区大小供写入档案使用。若 buffer 值设为 0,则在写入操作时无缓冲区。成功则传回 0 值。值得注意的是当档案开启 (fopen) 时,会使用本函式将内定的缓冲区设为 8k。
参考
fopen()
--------------------------------------------------------------------------------
函式:is_dir()
--------------------------------------------------------------------------------
档案系统函式库
is_dir
测试档案是否为目录。
语法: boolean is_dir(string filename);
传回值: 布林值
函式种类: 档案存取
内容说明
本函式传回 true 值则表示指定的 filename 为目录名称。传回值放在快取缓冲区中,可以参考 clearstatcache()。
注意: php@wastelan.com (11-Jun-1999) 指出若用 is_dir("..");
的方式,传回的也是 true。
参考
is_file() is_link()
--------------------------------------------------------------------------------
函式:is_executable()
--------------------------------------------------------------------------------
档案系统函式库
is_executable
测试档案是否为可执行档。
语法: boolean is_executable(string filename);
传回值: 布林值
函式种类: 档案存取
内容说明
本函式传回 true 值则表示指定的 filename 存在并为可执行档。传回值放在快取缓冲区中,可以参考 clearstatcache()。
参考
is_file() is_link()