XXXVIII. Filesystem 檔案系統函數

需求

無需外部庫檔案就可以加入本增加模組的支援。但如要使 PHP 在 Linux 上支援 LFS(大檔案)的話,必須有最新的 glibc 並在編譯時加入參數:-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

安裝

本增加模組作為 PHP 內核的一部分,無需安裝即可使用。

運行時配置

這些函數的行為受 php.ini 的影響。

表格 1. 檔案系統和流配置選項

名稱預設值可修改範圍更新記錄
allow_url_fopen"1"PHP_INI_SYSTEM在 PHP <= 4.3.4 時是 PHP_INI_ALL。PHP 4.0.4 版以後可用。
user_agentNULLPHP_INI_ALLPHP 4.3.0 版以後可用。
default_socket_timeout"60"PHP_INI_ALLPHP 4.3.0 版以後可用。
from""PHP_INI_ALL 
auto_detect_line_endings"0"PHP_INI_ALLPHP 4.3.0 版以後可用。

以下是配置選項的簡要解釋。

allow_url_fopen boolean

本選項啟動了 URL 形式的 fopen 封裝協定使得可以訪問 URL 物件例如檔案。預設的封裝協定提供用 ftp 和 http 協定來訪問遠端檔案,一些增加庫例如 zlib 可能會註冊更多的封裝協定。

注: 出於安全性考慮,此選項只能在 php.ini 中設定。

注: 此選項是緊接著版本 4.0.3 發佈後引進的。版本 4.0.3 以及之前的版本只能在編譯時通過配置項 --disable-url-fopen-wrapper 來取消此特性。

警示

Windows 版在 PHP 4.3.0 之前,以下函數不支援遠端檔案訪問:include()include_once(), require()require_once()參考 LVII, Image 圖像函數中的 imagecreatefromXXX 函數。

user_agent string

定義 PHP 傳送的 User-Agent。

default_socket_timeout integer

基於 socket 的流的預設逾時時間(秒)。

注: 本配置參數是 PHP 4.3.0 引進的。

from string

定義匿名 ftp 的密碼(email 位址)。

auto_detect_line_endings boolean

當設為 On 時,PHP 將檢查通過 fgets()file() 取得的資料中的行結束符號是符合 Unix,MS-DOS,還是 Macintosh 的習慣。

這使得 PHP 可以和 Macintosh 系統互動動作,但是預設值是 Off,因為在檢驗第一行的 EOL 習慣時會有很小的效能損失,而且在 Unix 系統下使用換行符號作為項目分隔設定的人們會遭遇向下不相容的行為。

注: 本配置參數是 PHP 4.3.0 引進的。

預定義常量

以下常量由本增加模組定義,因此只有在本增加模組被編譯到 PHP 中,或是在運行時被動態加載後才有效。

GLOB_BRACE (integer)

GLOB_ONLYDIR (integer)

GLOB_MARK (integer)

GLOB_NOSORT (integer)

GLOB_NOCHECK (integer)

GLOB_NOESCAPE (integer)

PATHINFO_DIRNAME (integer)

PATHINFO_BASENAME (integer)

PATHINFO_EXTENSION (integer)

FILE_USE_INCLUDE_PATH (integer)

FILE_APPEND (integer)

FILE_IGNORE_NEW_LINES (integer)

FILE_SKIP_EMPTY_LINES (integer)

參見

關聯函數參見目錄函數程式執行函數

有關可以用於遠端檔案的各種 URL 封裝協定的說明清單,參見附錄 M

目錄
basename -- 返回路徑中的檔案名部分
chgrp -- 改變檔案所屬的組
chmod -- 改變檔案模式
chown -- 改變檔案的所有者
clearstatcache -- 清除檔案狀態暫存
copy -- 複製檔案
delete -- 參見 unlink()unset()
dirname -- 返回路徑中的目錄部分
disk_free_space -- 返回目錄中的可用空間
disk_total_space -- 返回一個目錄的磁碟總大小
diskfreespace -- disk_free_space() 的別名
fclose -- 關閉一個已開啟的檔案指標
feof -- 測試檔案指標是否到了檔案結束的位置
fflush -- 將緩衝內容輸出到檔案
fgetc -- 從檔案指標中讀取字元
fgetcsv -- 從檔案指標中讀入一行並解析 CSV 欄位
fgets -- 從檔案指標中讀取一行
fgetss -- 從檔案指標中讀取一行並過濾掉 HTML 旗標
file_exists -- 檢查檔案或目錄是否存在
file_get_contents -- 將整個檔案讀入一個字串
file_put_contents -- 將一個字串寫入檔案
file -- 把整個檔案讀入一個陣列中
fileatime -- 取得檔案的上次訪問時間
filectime -- 取得檔案的 inode 修改時間
filegroup -- 取得檔案的組
fileinode -- 取得檔案的 inode
filemtime -- 取得檔案修改時間
fileowner -- 取得檔案的所有者
fileperms -- 取得檔案的權限
filesize -- 取得檔案大小
filetype -- 取得檔案類型
flock -- 輕便的咨詢檔案鎖定
fnmatch -- 用模式符合檔案名
fopen -- 開啟檔案或是 URL
fpassthru -- 輸出檔案指標處的所有剩餘資料
fputcsv -- 將行格式化為 CSV 並寫入檔案指標
fputs -- fwrite() 的別名
fread -- 讀取檔案(可安全用於二進位檔案)
fscanf -- 從檔案中格式化輸入
fseek -- 在檔案指標中定位
fstat -- 通過已開啟的檔案指標取得檔案訊息
ftell -- 返回檔案指標讀/寫的位置
ftruncate -- 將檔案裁斷到給定的長度
fwrite -- 寫入檔案(可安全用於二進位檔案)
glob -- 尋找與模式符合的檔案路徑
is_dir -- 判斷給定檔案名是否是一個目錄
is_executable -- 判斷給定檔案名是否可執行
is_file -- 判斷給定檔案名是否為一個標準的檔案
is_link -- 判斷給定檔案名是否為一個符號連線
is_readable -- 判斷給定檔案名是否可讀
is_uploaded_file -- 判斷檔案是否是通過 HTTP POST 上傳的
is_writable -- 判斷給定的檔案名是否可寫
is_writeable -- is_writable() 的別名
link -- 建立一個硬連線
linkinfo -- 取得一個連線的訊息
lstat -- 給出一個檔案或符號連線的訊息
mkdir -- 新增目錄
move_uploaded_file -- 將上傳的檔案搬移到新位置
parse_ini_file -- 解析一個配置檔
pathinfo -- 返回檔案路徑的訊息
pclose -- 關閉程式檔案指標
popen -- 開啟程式檔案指標
readfile -- 輸出一個檔案
readlink -- 返回符號連線指向的目的
realpath -- 返回規範化的絕對路徑名
rename -- 更名一個檔案或目錄
rewind -- 倒回檔案指標的位置
rmdir -- 移除目錄
set_file_buffer -- stream_set_write_buffer() 的別名
stat -- 給出檔案的訊息
symlink -- 建立符號連線
tempnam -- 建立一個具有唯一檔案名的檔案
tmpfile -- 建立一個暫存檔案
touch -- 設定檔案的訪問和修改時間
umask -- 改變現用的的 umask
unlink -- 移除檔案