PHP Filesystem 簡介
Filesystem 函數允許訪問和操作文件系統。
Runtime 配置
文件系統函數的行爲受到 php.ini 中設置的影響。
文件系統配置選項:
名稱 | 默認 | 描述 | 可改變 |
---|---|---|---|
allow_url_fopen | "1" |
本選項激活了 URL 形式的 fopen 封裝協議使得可以訪問 URL 對象例如文件。默認的封裝協議提供用 ftp 和 http 協議來訪問遠程文件,一些擴展庫例如 zlib 可能會註冊更多的封裝協議。 |
PHP_INI_SYSTEM |
user_agent | NULL |
定義 PHP 發送的 User-Agent。 |
PHP_INI_ALL |
default_socket_timeout | "60" |
基於 socket 的流的默認超時時間(秒)。 |
PHP_INI_ALL |
from | "" | 定義匿名 ftp 的密碼(您的 email 地址)。 | PHP_INI_ALL |
auto_detect_line_endings | "0" |
當設爲 On 時,PHP 將檢查通過 fgets() 和 file() 取得的數據中的行結束符號是符合 Unix,MS-DOS,還是 Macintosh 的習慣。 這使得 PHP 可以和 Macintosh 系統交互操作,但是默認值是 Off,因爲在檢測第一行的 EOL 習慣時會有很小的性能損失,而且在 Unix 系統下使用回車符號作爲項目分隔符的人們會遭遇向下不兼容的行爲。 |
PHP_INI_ALL |
Unix / Windows 兼容性
當在 Unix 平臺上規定路徑時,正斜槓 (/) 用作目錄分隔符。而在 Windows 平臺上,正斜槓 (/) 和反斜槓 (\) 均可使用。
PHP Filesystem 函數集錦
函數 |
描述 |
參數描述 |
basename(path,suffix) |
返回路徑中的文件名部分。 |
path 必需。規定要檢查的路徑。 |
suffix 可選。規定文件擴展名。如果文件有 suffix,則不會輸出這個擴展名。 |
||
chgrp(file,group) |
改變文件組。 |
file 必需。規定要檢查的文件。 |
group 可選。規定新的組。可以是組名或組的 ID。 |
||
chmod(file,mode) |
改變文件模式。 |
file 必需。規定要檢查的文件。 |
mode可選。規定新的權限。mode 參數由 4 個數字組成: * 第一個數字永遠是 0 * 第二個數字規定所有者的權限 * 第二個數字規定所有者所屬的用戶組的權限 * 第四個數字規定其他所有人的權限 可能的值(如需設置多個權限,請對下面的數字進行總計):
* 1 - 執行權限 * 2 - 寫權限 * 4 - 讀權限 |
||
chown(file,owner) |
改變文件所有者。 |
file 必需。規定要檢查的文件。 |
owner 規定新的所有者。可以是用戶名或用戶的 ID。 |
||
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 和 PHP 標記。 |
|
file() |
把文件讀入一個數組中。 |
|
file_exists() |
檢查文件或目錄是否存在。 |
|
file_get_contents() |
將文件讀入字符串。 |
|
file_put_contents |
將字符串寫入文件。 |
|
fileatime() |
返回文件的上次訪問時間。 |
|
filectime() |
返回文件的上次改變時間。 |
|
filegroup() |
返回文件的組 ID。 |
|
fileinode() |
返回文件的 inode 編號。 |
|
filemtime() |
返回文件的上次修改時間。 |
|
fileowner() |
文件的 user ID (所有者)。 |
|
fileperms() |
返回文件的權限。 |
|
filesize() |
返回文件大小。 |
|
filetype() |
返回文件類型。 |
|
flock() |
鎖定或釋放文件。 |
|
fnmatch() |
根據指定的模式來匹配文件名或字符串。 |
|
fopen() |
打開一個文件或 URL。 |
|
fpassthru() |
從打開的文件中讀數據,直到 EOF,並向輸出緩衝寫結果。 |
|
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() 打開的進程。 |
|
popen() |
打開一個進程。 |
|
readfile() |
讀取一個文件,並輸出到輸出緩衝。 |
|
readlink() |
返回符號連接的目標。 |
|
realpath() |
返回絕對路徑名。 |
|
rename() |
重名名文件或目錄。 |
|
rewind() |
倒回文件指針的位置。 |
|
rmdir() |
刪除空的目錄。 |
|
set_file_buffer() |
設置已打開文件的緩衝大小。 |
|
stat() |
返回關於文件的信息。 |
|
symlink() |
創建符號連接。 |
|
tempnam() |
創建唯一的臨時文件。 |
|
tmpfile() |
建立臨時文件。 |
|
touch() |
設置文件的訪問和修改時間。 |
|
umask() |
改變文件的文件權限。 |
|
unlink() |
刪除文件。 |
|
PHP Filesystem 常量
- GLOB_BRACE
- GLOB_ONLYDIR
- GLOB_MARK
- GLOB_NOSORT
- GLOB_NOCHECK
- GLOB_NOESCAPE
- PATHINFO_DIRNAME
- PATHINFO_BASENAME
- PATHINFO_EXTENSION
- FILE_USE_INCLUDE_PATH
- FILE_APPEND
- FILE_IGNORE_NEW_LINES
- FILE_SKIP_EMPTY_LINES
未完待續。。。各函數的用法稍後奉上。。。