发新话题
打印

PHP4手册:函数库及函数(十六) 文件系统函式库-1

本主题由 admin 于 2007-11-4 12:03 移动

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()

TOP

发新话题