fileinode()
作用
fileinode() 函式返回指定檔案的 inode 編號。
如果成功,該函式返回指定檔案的 inode 編號。如果失敗,則返回 FALSE。
用法
fileinode(filename)
測試案例
<?php
echo fileinode("test.txt");
?>
filemtime()
作用
filemtime() 函式返回檔案內容的上次修改時間。
如果成功,該函式將以 Unix 時間戳形式返回檔案內容的上次修改時間。如果失敗,則返回 FALSE。
用法
filemtime(filename)
提示和註釋
註釋:該函式的結果會被快取。請使用 clearstatcache() 來清除快取。
測試案例
<?php
echo filemtime("test.txt");
echo "<br />";
echo "Last modified: ".date("F d Y H:i:s.",filemtime("test.txt"));
?>
結果
1139919766
Last modified: February 14 2006 13:22:46.
fileowner()
作用
fileowner() 函式返回指定檔案的使用者 ID(所有者)。
如果成功,該函式返回使用者 ID。如果失敗,則返回 FALSE。
用法
fileowner(filename)
提示和註釋
註釋:該函式的結果會被快取。請使用 clearstatcache() 來清除快取。
註釋:該函式不能在 Windows 系統上執行。
提示:請使用 posix_getpwuid() 來把使用者 ID 轉換為使用者名稱。
測試案例
<?php
echo fileowner("test.txt");
?>
fileperms()
作用
fileperms() 函式返回檔案或目錄的許可權。
如果成功,該函式以數字形式返回許可權。如果失敗,則返回 FALSE。
用法
fileperms(filename)
提示和註釋
註釋:該函式的結果會被快取。請使用 clearstatcache() 來清除快取。
註釋:該函式不能在 Windows 系統上執行。
提示:請使用 posix_getpwuid() 來把使用者 ID 轉換為使用者名稱。
測試案例
<?php
echo fileperms("test.txt");
?>
結果
33206
filesize()
作用
filesize() 函式返回指定檔案的大小。
如果成功,該函式返回檔案大小的位元組數。如果失敗,則返回 FALSE。
用法
filesize(filename)
提示和註釋
註釋:該函式的結果會被快取。請使用 clearstatcache() 來清除快取。
測試案例
<?php
echo filesize("test.txt");
?>
結果
20
filetype()
作用
filetype() 函式返回指定檔案或目錄的型別。
如果成功,該函式返回 7 種可能的值之一。如果失敗,則返回 FALSE。
可能的返回值:
- fifo
- char
- dir
- block
- link
- file
- unknown
用法
filetype(filename)
提示和註釋
註釋:該函式的結果會被快取。請使用 clearstatcache() 來清除快取。
測試案例
<?php
echo filetype("test.txt");
?>
結果
file
flock()
作用
flock() 函式鎖定或釋放檔案。
如果成功,該函式返回 TRUE。如果失敗,則返回 FALSE。
用法
flock(file,lock,block)
lock 必需。規定要使用哪種鎖定型別。
可能的值:
LOCK_SH - 共享鎖定(讀取的程式)。允許其他程式訪問該檔案。
LOCK_EX - 獨佔鎖定(寫入的程式)。防止其他程式訪問該檔案。
LOCK_UN - 釋放一個共享鎖定或獨佔鎖定
LOCK_NB - 鎖定的情況下避免阻塞其他程式。
block 可選。若設定為 1,則當進行鎖定時阻塞其他程式。
提示和註釋
註釋:這些鎖僅在當前的 PHP 程式中使用。如果許可權允許,其他的程式可修改或刪除一個 PHP-locked 檔案。
註釋:flock() 在 Windows 下具有強制性。
提示:可以通過 fclose() 來釋放鎖定操作,指令碼執行完成時會自動呼叫。
測試案例
<?php
$file = fopen("test.txt","w+");
// exclusive lock
if (flock($file,LOCK_EX)) {
fwrite($file,"Write something");
// release lock
flock($file,LOCK_UN);
} else {
echo "Error locking file!";
}
fclose($file);
?>
fnmatch()
作用
fnmatch() 函式根據指定的模式來匹配檔名或字串。
用法
fnmatch(pattern,string,flags)
pattern 必需。規定要檢索的模式。
提示和註釋
註釋:該函式無法在 Windows 平臺上使用。
測試案例
<?php
$txt = "My car is darkgrey";
if (fnmatch("*gr[ae]y",$txt))
{
echo "some form of gray ...";
} else {
echo "NO";
}
結果
some form of gray ...
fopen()
作用
fopen() 函式開啟一個檔案或 URL。
如果 fopen() 失敗,它將返回 FALSE 並附帶錯誤資訊。您可以通過在函式名前面新增一個 '@' 來隱藏錯誤輸出。
用法
fopen(filename,mode,include_path,context)
mode 必需。規定您請求到該檔案/流的訪問型別。
可能的值:
"r" (只讀方式開啟,將檔案指標指向檔案頭)
"r+" (讀寫方式開啟,將檔案指標指向檔案頭)
"w" (寫入方式開啟,清除檔案內容,如果檔案不存在則嘗試建立之)
"w+" (讀寫方式開啟,清除檔案內容,如果檔案不存在則嘗試建立之)
"a" (寫入方式開啟,將檔案指標指向檔案末尾進行寫入,如果檔案不存在則嘗試建立之)
"a+" (讀寫方式開啟,通過將檔案指標指向檔案末尾進行寫入來儲存檔案內容)
"x" (建立一個新的檔案並以寫入方式開啟,如果檔案已存在則返回 FALSE 和一個錯誤)
"x+" (建立一個新的檔案並以讀寫方式開啟,如果檔案已存在則返回 FALSE 和一個錯誤)
include_path 可選。如果您還想在 include_path(在 php.ini 中)中搜尋檔案的話,請設定該引數為 '1'。
提示和註釋
註釋:當書寫一個文字檔案時,請確保您使用了正確的行結束符!在 Unix 系統中,行結束符為 \n;在 Windows 系統中,行結束符為 \r\n;在 Macintosh 系統中,行結束符為 \r。Windows 系統中提供了一個文字轉換標記 "t" ,可以透明地將 \n 轉換為 \r\n。您還可以使用 "b" 來強制使用二進位制模式,這樣就不會轉換資料。為了使用這些標記,請使用 "b" 或者 "t" 來作為 mode 引數的最後一個字元。
測試案例
<?php
$file = fopen("test.txt","r");
$file = fopen("/home/test/test.txt","r");
$file = fopen("/home/test/test.gif","wb");
$file = fopen("http://www.example.com/","r");
$file = fopen("ftp://user:password@example.com/test.txt","w");
?>
fpassthru()
作用
fpassthru() 函式從開啟檔案的當前位置開始讀取所有資料,直到檔案末尾(EOF),並向輸出緩衝寫結果。
該函式返回傳遞的字元數,如果失敗則返回 FALSE。
用法
fpassthru(file)
提示和註釋
註釋:當在 Windows 系統的二進位制檔案中使用 fpassthru() 函式時,請牢記,必須以二進位制的模式開啟檔案。
提示:如果您已經向檔案寫入資料,就必須呼叫 rewind() 來將檔案指標指向檔案頭。
提示:如果您只想將檔案的內容輸出到輸出緩衝,而不對它進行修改,請使用 readfile() 函式代替,這樣可以省去 fopen() 呼叫。
測試案例
<?php
$file = fopen("test.txt","r");
// Read first line
fgets($file);
// Send rest of the file to the output buffer
echo fpassthru($file);
fclose($file);
?>
結果
There are three lines in this file.
This is the last line.59
fputcsv()
作用
fputcsv() 函式將行格式化為 CSV 並寫入一個開啟的檔案中。
該函式返回寫入字串的長度。如果失敗,則返回 FALSE。
用法
fputcsv(file,fields,seperator,enclosure)
file 必需。規定要寫入的開啟檔案。
fields 必需。規定要從中獲得資料的陣列。
separator 可選。設定欄位分界符(只允許一個字元),預設值為逗號( , )。
enclosure 可選。設定欄位環繞符(只允許一個字元),預設值為雙引號( " )。
測試案例
<?php
$list = array
(
"Peter,Griffin,Oslo,Norway",
"Glenn,Quagmire,Oslo,Norway",
);
$file = fopen("contacts.csv","w");
foreach ($list as $line)
{
fputcsv($file,split(',',$line));
}
fclose($file); ?>
fputs()
作用
fputs() 函式將內容寫入一個開啟的檔案中。
函式會在到達指定長度或讀到檔案末尾(EOF)時(以先到者為準),停止執行。
如果函式成功執行,則返回寫入的位元組數。如果失敗,則返回 FALSE。=
fputs() 函式是 fwrite() 函式的別名。
用法
fputs(file,string,length)
file 必需。規定要寫入的開啟檔案。
string 必需。規定要寫入開啟檔案的字串。
length 可選。規定要寫入的最大位元組數。
提示和註釋
該函式是二進位制安全的。(意思是二進位制資料(如影像)和字元資料都可以使用此函式寫入。)
測試案例
<?php
$file = fopen("test.txt","w");
echo fputs($file,"Hello World. Testing!");
fclose($file);
?>
結果
21
fread()
作用
fread() 函式讀取開啟的檔案。
函式會在到達指定長度或讀到檔案末尾(EOF)時(以先到者為準),停止執行。
該函式返回讀取的字串,如果失敗則返回 FALSE。
用法
string fread ( resource $handle , int $length )
handle 檔案系統指標,是典型地由 fopen() 建立的 resource(資源)。
length 必需。規定要讀取的最大位元組數。
提示和註釋
該函式是二進位制安全的。(意思是二進位制資料(如影像)和字元資料都可以使用此函式寫入。)
測試案例
<?php
// 從檔案中讀取 10 個位元組
$file = fopen("test.txt","r");
$contents = fread($file,"10");
fclose($file);
// 讀取整個檔案
$file = fopen("test.txt","r");
$contents = fread($file,filesize("test.txt"));
fclose($file);
?>
fscanf()
作用
fscanf() 函式根據指定的格式對來自開啟的檔案的輸入進行解析。
用法
fscanf(file,format,mixed)
format 必需。規定格式。
可能的格式值:
%% - 返回一個百分號 %
%b - 二進位制數
%c - ASCII 值對應的字元
%d - 包含正負號的十進位制數
%e - 科學計數法(例如:1.2e+2)
%u - 不包含正負號的十進位制數
%f - 浮點數(本地屬性)
%F - 浮點數(非本地屬性)
%o - 十進位制數
%s - 字串
%x - 十六進位制數(小寫字母)
%X - 十六進位制數(大寫字母)
附加的格式值。必需放置在 % 和字母之間(例如 %.2f):
+ (在數字前面加上 + 或 - 來定義數字的正負性。預設情況下,只有負數才做標記,正數不做標記)
' (規定使用什麼作為填充,預設是空格。它必須與寬度指定器一起使用。例如:%'x20s(使用 "x" 作為填充))
- (左調整變數值)
[0-9] (規定變數值的最小寬度)
.[0-9] (規定小數位數或最大字串長度)
註釋:如果使用多個上述的格式值,它們必須按照上面的順序進行使用,不能打亂。
提示和註釋
註釋:格式字串中的任何空白會與輸入流中的任何空白匹配。這意味著格式字串中的製表符 \t 也會與輸入流中的一個單一的空格字元匹配。
fseek()
作用
fseek() 函式在開啟的檔案中定位。
該函式把檔案指標從當前位置向前或向後移動到新的位置,新位置從檔案頭開始以位元組數度量。
如果成功該函式返回 0,如果失敗則返回 -1。請注意,移動到檔案末尾(EOF)之後的位置不會產生錯誤。
用法
fseek(file,offset,whence)
file 必需。規定要在其中定位的檔案。
offset 必需。規定新的位置(從檔案頭開始以位元組數度量)。
whence 可選。(PHP 4 中新增的)。 可能的值:
SEEK_SET - 設定位置等於 offset。預設。
SEEK_CUR - 設定位置為當前位置加上 offset。
SEEK_END - 設定位置為檔案末尾(EOF)加上 offset(要移動到檔案末尾之前的位置,offset 必須是一個負值)。
提示和註釋
通過使用 ftell() 來找到當前位置!
測試案例
<?php
$file = fopen("test.txt","r");
// read first line
fgets($file);
// move back to beginning of file
fseek($file,0);
?>
fstat()
作用
fstat() 函式返回關於一個開啟的檔案的資訊。
該函式將返回一個包含下列元素的陣列:
[0] 或 [dev] - 裝置編號
[1] 或 [ino] - inode 編號
[2] 或 [mode] - inode 保護模式
[3] 或 [nlink] - 連線數目
[4] 或 [uid] - 所有者的使用者 ID
[5] 或 [gid] - 所有者的組 ID
[6] 或 [rdev] - inode 裝置型別
[7] 或 [size] - 檔案大小的位元組數
[8] 或 [atime] - 上次訪問時間(Unix 時間戳)
[9] 或 [mtime] - 上次修改時間(Unix 時間戳)
[10] 或 [ctime] - 上次 inode 改變時間(Unix 時間戳)
[11] 或 [blksize] - 檔案系統 IO 的塊大小(如果支援)
[12] 或 [blocks] - 所佔據塊的數目
用法
fstat(file)
提示和註釋
註釋:從這個函式返回的結果與伺服器到伺服器的結果是不相同的。這個陣列包含了數字索引、名稱索引或同時包含上述二者。
提示:fstat() 函式與 stat() 函式大致類似。唯一的不同點就是,fstat()函式在使用時,檔案必須已經開啟。
測試案例
<?php
$file = fopen("test.txt","r");
print_r(fstat($file));
fclose($file);
?>
結果
Array
(
[0] => 0
[1] => 0
[2] => 33206
[3] => 1
[4] => 0
[5] => 0
[6] => 0
[7] => 92
[8] => 1141633430
[9] => 1141298003
[10] => 1138609592
[11] => -1
[12] => -1
[dev] => 0
[ino] => 0
[mode] => 33206
[nlink] => 1
[uid] => 0
[gid] => 0
[rdev] => 0
[size] => 92
[atime] => 1141633430
[mtime] => 1141298003
[ctime] => 1138609592
[blksize] => -1
[blocks] => -1
)
ftell()
作用
ftell() 函式返回在開啟檔案中的當前位置。
返回檔案指標的當前位置,如果失敗則返回 FALSE。
用法
ftell(file)
提示和註釋
註釋:從這個函式返回的結果與伺服器到伺服器的結果是不相同的。這個陣列包含了數字索引、名稱索引或同時包含上述二者。
提示:fstat() 函式與 stat() 函式大致類似。唯一的不同點就是,fstat()函式在使用時,檔案必須已經開啟。
測試案例
<?php
$file = fopen("test.txt","r");
// print current position
echo ftell($file);
// change current position
fseek($file,"15");
// print current position again
echo "<br />" . ftell($file);
fclose($file);
?>
結果
0
15
ftruncate()
作用
ftruncate() 函式把開啟檔案截斷到指定的長度。
如果成功則返回 TRUE,如果失敗則返回 FALSE。
用法
ftruncate(file,size)
測試案例
<?php
//check filesize
echo filesize("test.txt");
echo "<br />";
$file = fopen("test.txt", "a+");
ftruncate($file,100);
fclose($file);
//Clear cache and check filesize again
clearstatcache();
echo filesize("test.txt");
?>
結果
792
100
fwrite()
作用
fwrite() 函式將內容寫入一個開啟的檔案中。
函式會在到達指定長度或讀到檔案末尾(EOF)時(以先到者為準),停止執行。
如果函式成功執行,則返回寫入的位元組數。如果失敗,則返回 FALSE。
用法
fwrite(file,string,length)
測試案例
<?php
$file = fopen("test.txt","w");
echo fwrite($file,"Hello World. Testing!");
fclose($file);
?>
結果
21
glob()
作用
glob() 函式返回一個包含匹配指定模式的檔名或目錄的陣列。
該函式返回一個包含有匹配檔案/目錄的陣列。如果失敗則返回 FALSE。
用法
glob(pattern,flags)
pattern 必需。規定檢索模式。
flags 可選。規定特殊的設定。
可能的值:
GLOB_MARK - 在每個返回的專案中加一個斜線
GLOB_NOSORT - 按照檔案在目錄中出現的原始順序返回(不排序)
GLOB_NOCHECK - 如果沒有檔案匹配則返回用於搜尋的模式
GLOB_NOESCAPE - 反斜線不轉義元字元
GLOB_BRACE - 擴充 {a,b,c} 來匹配 'a','b' 或 'c'
GLOB_ONLYDIR - 僅返回與模式匹配的目錄項
GLOB_ERR - (PHP 5.1 新增的)如果錯誤則停止,預設情況下忽略所有錯誤
測試案例
<?php
print_r(glob("*.txt"));
print_r(glob("*.*"));
?>
結果
Array
(
[0] => target.txt
[1] => source.txt
[2] => test.txt
[3] => test2.txt
)
Array
(
[0] => contacts.csv
[1] => default.php
[2] => target.txt
[3] => source.txt
[4] => tem1.tmp
[5] => test.htm
[6] => test.ini
[7] => test.php
[8] => test.txt
[9] => test2.txt
)
is_dir()
作用
is_dir() 函式檢查指定的檔案是否是一個目錄。
如果目錄存在,該函式返回 TRUE。
用法
is_dir(file)
提示和註釋
註釋:該函式的結果會被快取。請使用 clearstatcache() 來清除快取。
測試案例
<?php
$file = "images";
if (is_dir($file)) {
echo ("$file is a directory");
} else {
echo ("$file is not a directory");
}
?>
結果
images is a directory
is_executable()
作用
is_executable() 函式檢查指定的檔案是否可執行。
如果檔案可執行,該函式返回 TRUE。
用法
is_executable(file)
提示和註釋
註釋:該函式的結果會被快取。請使用 clearstatcache() 來清除快取。
註釋:自 PHP 5.0 版本起,is_executable() 函式可用於 Windows。
測試案例
<?php
$file = "setup.exe";
if (is_executable($file)) {
echo ("$file is executable");
} else {
echo ("$file is not executable");
}
?>
結果
setup.exe is executable
is_file()
作用
is_file() 函式檢查指定的檔案是否是常規的檔案。
如果檔案是常規的檔案,該函式返回 TRUE。
用法
is_file(file)
提示和註釋
該函式的結果會被快取。請使用 clearstatcache() 來清除快取。
測試案例
<?php
$file = "test.txt";
if (is_file($file)) {
echo ("$file is a regular file");
} else {
echo ("$file is not a regular file");
}
?>
結果
test.txt is a regular file
is_link()
作用
is_link() 函式檢查指定的檔案是否是一個連線。
如果檔案是一個連線,該函式返回 TRUE。
用法
is_link(file)
提示和註釋
該函式的結果會被快取。請使用 clearstatcache() 來清除快取。
測試案例
<?php
$link = "images";
if (is_link($link)) {
echo ("$link is a link");
} else {
echo ("$link is not a link");
}
?>
結果
images is not a link
is_readable()
作用
is_readable() 函式檢查指定的檔案是否可讀。
如果檔案可讀,該函式返回 TRUE
用法
is_readable(file)
提示和註釋
註釋:該函式的結果會被快取。請使用 clearstatcache() 來清除快取。
測試案例
<?php
$file = "test.txt";
if (is_readable($file)) {
echo ("$file is readable");
} else {
echo ("$file is not readable");
}
?>
結果
test.txt is readable
is_uploaded_file()
作用
is_uploaded_file() 函式檢查指定的檔案是否是通過 HTTP POST 上傳的。
如果檔案是通過 HTTP POST 上傳的,該函式返回 TRUE。
用法
is_uploaded_file(file)
提示和註釋
註釋:該函式的結果會被快取。請使用 clearstatcache() 來清除快取。
測試案例
<?php
$file = "test.txt";
if(is_uploaded_file($file)) {
echo ("$file is uploaded via HTTP POST");
} else {
echo ("$file is not uploaded via HTTP POST");
}
?>
結果
test.txt is not uploaded via HTTP POST
is_writable()
作用
is_writable() 函式檢查指定的檔案是否可寫。
如果檔案可寫,該函式返回 TRUE。是通過 HTTP POST 上傳的,該函式返回 TRUE。
用法
is_writable(file)
提示和註釋
註釋:該函式的結果會被快取。請使用 clearstatcache() 來清除快取。
測試案例
<?php
$file = "test.txt";
if (is_writable($file)) {
echo ("$file is writeable");
} else {
echo ("$file is not writeable");
}
?>
結果
test.txt is writeable
is_writeable()
作用
is_writeable() 函式檢查指定的檔案是否可寫。
如果檔案可寫,該函式返回 TRUE。
該函式是 is_writable() 函式的別名。如果檔案可寫,該函式返回 TRUE。是通過 HTTP POST 上傳的,該函式返回 TRUE。
用法
is_writeable(file)
提示和註釋
註釋:該函式的結果會被快取。請使用 clearstatcache() 來清除快取。
測試案例
<?php
$file = "test.txt";
if (is_writeable($file)) {
echo ("$file is writeable");
} else {
echo ("$file is not writeable");
}
?>
結果
test.txt is writeable
link()
作用
link() 函式建立一個從指定名稱連線的現存目標檔案開始的硬連線。
如果成功,該函式返回 TRUE。如果失敗,則返回 FALSE。
用法
link(target,link)
target 必需。
link 必需。
提示和註釋
註釋:這不是一個 HTML 連線,而是一個檔案系統中的連線。
註釋:該函式不能作用於遠端檔案。
測試案例
<?php
$target = 'source.ext'; // This is the file that already exists
$link = 'newfile.ext'; // This the filename that you want to link it to
link($target, $link);
?>
linkinfo()
作用
linkinfo() 函式返回有關一個硬連線的資訊。
該函式返回裝置 ID,如果失敗則返回 FALSE。
用法
linkinfo(path)
path 必需。規定要檢查的路徑。
提示和註釋
註釋:這不是一個 HTML 連線,而是一個檔案系統中的連線。
註釋:該函式不能在 Windows 平臺上執行。
測試案例
<?php
echo linkinfo('/vmlinuz'); // 835
?>
lstat()
作用
lstat() 函式返回關於檔案或符號連線的資訊。
該函式將返回一個包含下列元素的陣列:
[0] 或 [dev] - 裝置編號
[1] 或 [ino] - inode 編號
[2] 或 [mode] - inode 保護模式
[3] 或 [nlink] - 連線數目
[4] 或 [uid] - 所有者的使用者 ID
[5] 或 [gid] - 所有者的組 ID
[6] 或 [rdev] - inode 裝置型別
[7] 或 [size] - 檔案大小的位元組數
[8] 或 [atime] - 上次訪問時間(Unix 時間戳)
[9] 或 [mtime] - 上次修改時間(Unix 時間戳)
[10] 或 [ctime] - 上次 inode 改變時間(Unix 時間戳)
[11] 或 [blksize] - 檔案系統 IO 的塊大小(如果支援)
[12] 或 [blocks] - 所佔據塊的數目
用法
lstat(file)
path 必需。規定要檢查的路徑。
提示和註釋
註釋:從這個函式返回的結果與伺服器到伺服器的結果是不相同的。這個陣列包含了數字索引、名稱索引或同時包含上述二者。
註釋:該函式的結果會被快取。請使用 clearstatcache() 來清除快取。
提示:lstat() 函式與 stat() 函式大致類似。唯一的不同點就是,如果 file 引數是一個符號連線,那麼將返回該符號連線的狀態(而不是該符號連線所指向的檔案的狀態)。
測試案例
<?php
print_r(lstat("test.txt"));
?>
結果
Array
(
[0] => 0
[1] => 0
[2] => 33206
[3] => 1
[4] => 0
[5] => 0
[6] => 0
[7] => 92
[8] => 1141633430
[9] => 1141298003
[10] => 1138609592
[11] => -1
[12] => -1
[dev] => 0
[ino] => 0
[mode] => 33206
[nlink] => 1
[uid] => 0
[gid] => 0
[rdev] => 0
[size] => 92
[atime] => 1141633430
[mtime] => 1141298003
[ctime] => 1138609592
[blksize] => -1
[blocks] => -1
)
參考
本作品採用《CC 協議》,轉載必須註明作者和本文連結