叁柒設計 三七设计 Three seven design 我的学习与分享
详细信息
来自:关键字:

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

  December 21th,2008 22:39:58   Category : PHP+Mysql
 Click (938)

--------------------------------------------------------------------------------
 档案系统函式库 
--------------------------------------------------------------------------------
 


本函式库共有 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()

[ 资讯评论 ]
暂时没有任何评论!
[ 提交评论 ]
请选择表情
  • 昵称:
  • *
  • 验证码:
  • *点击更换验证码
  • 尚能输入个字符
申明:本网站部分分享内容来自网络,如有侵权请及时与我联系,谢谢,另网友评论仅代表个人观点,与本站立场无关,如果在评论中发表违反我国任何法律的,请即时与我们联系(QQ:77132915),我们将立即予以删除. [ 注:提交评论后,通过审核后方能在网站上显示!]