[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 編程技術 > Php > 正文
PHP4手冊:函數庫及函數(十六) 文件系統函式庫-1
http://netleader.126.com 星空浪子 (2001-04-18 12:22:36)

--------------------------------------------------------------------------------
 檔案系統函式庫 
--------------------------------------------------------------------------------
 


本函式庫共有 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()  
  (http://www.fanqiang.com)
    進入【UNIX論壇


相關文章
PHP4手冊:函數庫及函數(四十六) SNMP 網管函式庫 (2001-04-18 16:56:55)
PHP4手冊:函數庫及函數(四十五) Solid 資料庫連結函式庫 (2001-04-18 16:54:16)
PHP4手冊:函數庫及函數(四十四) 信號與共享記憶體函式庫 (2001-04-18 16:49:09)
PHP4手冊:函數庫及函數(四十三) 常規表示法函式庫 (2001-04-18 16:40:33)
PHP4手冊:函數庫及函數(四十二) URL 處理函式庫 (2001-04-18 16:37:13)
PHP4手冊:函數庫及函數(四十一) PostgreSQL 資料庫函式庫 (2001-04-18 15:58:12)
PHP4手冊:函數庫及函數(四十) PDF 格式檔案函式庫 - 2 (2001-04-18 15:53:53)
PHP4手冊:函數庫及函數(四十) PDF 格式檔案函式庫 - 1 (2001-04-18 15:53:35)
PHP4手冊:函數庫及函數(三十九) Perl 相容語法函式庫 (2001-04-18 15:45:08)
PHP4手冊:函數庫及函數(三十八) Oracle 資料庫函式庫 (2001-04-18 15:43:09)

===更多相關===
 

★  樊強制作 歡迎分享  ★