fopen() 函數用於在 PHP 中打開文件。
打開文件
fopen() 函數用於在 PHP 中打開文件。
此函數的第一個參數含有要打開的文件的名稱,第二個參數規定了使用哪種模式來打開文件:
<html>
<body>
<?php
$file=fopen("welcome.txt","r");
?>
</body>
</html>
文件可能通過下列模式來打開:
模式 |
描述 |
r
只讀。在文件的開頭開始。
r+
讀/寫。在文件的開頭開始。
w
只寫。打開並清空文件的內容;如果文件不存在,則創建新文件。
w+
讀/寫。打開並清空文件的內容;如果文件不存在,則創建新文件。
a
追加。打開並向文件文件的末端進行寫操作,如果文件不存在,則創建新文件。
a+
讀/追加。通過向文件末端寫內容,來保持文件內容。
x
只寫。創建新文件。如果文件以存在,則返回 FALSE。
x+
讀/寫。創建新文件。如果文件已存在,則返回 FALSE 和一個錯誤。
注釋:如果 fopen() 無法打開指定文件,則返回 0 (false)。
例子
如果 fopen() 不能打開指定的文件,下面的例子會生成一段消息:
<html>
<body>
<?php
$file=fopen("welcome.txt","r") or exit("Unable to open file!");
?>
</body>
</html>
關閉文件
fclose() 函數用於關閉打開的文件。
<?php
$file = fopen("test.txt","r");
//some code to be executed
fclose($file);
?>
檢測 End-of-file
feof() 函數檢測是否已達到文件的末端 (EOF)。
在循環遍歷未知長度的數據時,feof() 函數很有用。
注釋:在 w 、a 以及 x 模式,您無法讀取打開的文件!
if (feof($file)) echo "End of file";
逐行讀取文件
fgets() 函數用於從文件中逐行讀取文件。
注釋:在調用該函數之後,文件指針會移動到下一行。
例子
下面的例子逐行讀取文件,直到文件末端為止:
<?php
$file = fopen("welcome.txt", "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
while(!feof($file))
{
echo fgets($file). "<br />";
}
fclose($file);
?>
逐字符讀取文件
fgetc() 函數用於從文件逐字符地讀取文件。
注釋:在調用該函數之後,文件指針會移動到下一個字符。
例子
下面的例子逐字符地讀取文件,直到文件末端為止:
<?php
$file=fopen("welcome.txt","r") or exit("Unable to open file!");
while (!feof($file))
{
echo fgetc($file);
}
fclose($file);
?>
PHP Filesystem 參考手冊
如需完整的 PHP 文件系統參考手冊
PHP Filesystem 簡介
Filesystem 函數允許您訪問和操作文件系統。
安裝
Filesystem 函數是 PHP 核心的組成部分。無需安裝即可使用這些函數。
Runtime 配置
文件系統函數的行為受到 php.ini 中設置的影響。
文件系統配置選項:
名稱 |
默認 |
描述 |
可改變 |
allow_url_fopen
"1"
本選項激活了 URL 形式的 fopen 封裝協議使得可以訪問 URL 對象例如文件。默認的封裝協議提供用 ftp 和 http 協議來訪問遠程文件,一些擴展庫例如 zlib 可能會注冊更多的封裝協議。
(PHP 4.0.4 版以後可用。)
PHP_INI_SYSTEM
user_agent
NULL
定義 PHP 發送的 User-Agent。
(PHP 4.3.0 版以後可用。)
PHP_INI_ALL
default_socket_timeout
"60"
基於 socket 的流的默認超時時間(秒)。
(PHP 4.3.0 版以後可用。)
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 4.3.0 版以後可用。)
PHP_INI_ALL
Unix / Windows 兼容性
當在 Unix 平台上規定路徑時,正斜槓 (/) 用作目錄分隔符。而在 Windows 平台上,正斜槓 (/) 和反斜槓 (\) 均可使用。
PHP Filesystem 函數
PHP:指示支持該函數的最早的 PHP 版本。
函數 |
描述 |
PHP |
basename()
返回路徑中的文件名部分。
3
chgrp()
改變文件組。
3
chmod()
改變文件模式。
3
chown()
改變文件所有者。
3
clearstatcache()
清除文件狀態緩存。
3
copy()
復制文件。
3
delete()
參見 unlink() 或 unset()。
dirname()
返回路徑中的目錄名稱部分。
3
disk_free_space()
返回目錄的可用空間。
4
disk_total_space()
返回一個目錄的磁盤總容量。
4
diskfreespace()
disk_free_space() 的別名。
3
fclose()
關閉打開的文件。
3
feof()
測試文件指針是否到了文件結束的位置。
3
fflush()
向打開的文件輸出緩沖內容。
4
fgetc()
從打開的文件中返回字符。
3
fgetcsv()
從打開的文件中解析一行,校驗 CSV 字段。
3
fgets()
從打開的文件中返回一行。
3
fgetss()
從打開的文件中讀取一行並過濾掉 HTML 和 PHP 標記。
3
file()
把文件讀入一個數組中。
3
file_exists()
檢查文件或目錄是否存在。
3
file_get_contents()
將文件讀入字符串。
4
file_put_contents
將字符串寫入文件。
5
fileatime()
返回文件的上次訪問時間。
3
filectime()
返回文件的上次改變時間。
3
filegroup()
返回文件的組 ID。
3
fileinode()
返回文件的 inode 編號。
3
filemtime()
返回文件的上次修改時間。
3
fileowner()
文件的 user ID (所有者)。
3
fileperms()
返回文件的權限。
3
filesize()
返回文件大小。
3
filetype()
返回文件類型。
3
flock()
鎖定或釋放文件。
3
fnmatch()
根據指定的模式來匹配文件名或字符串。
4
fopen()
打開一個文件或 URL。
3
fpassthru()
從打開的文件中讀數據,直到 EOF,並向輸出緩沖寫結果。
3
fputcsv()
將行格式化為 CSV 並寫入一個打開的文件中。
5
fputs()
fwrite() 的別名。
3
fread()
讀取打開的文件。
3
fscanf()
根據指定的格式對輸入進行解析。
4
fseek()
在打開的文件中定位。
3
fstat()
返回關於一個打開的文件的信息。
4
ftell()
返回文件指針的讀/寫位置
3
ftruncate()
將文件截斷到指定的長度。
4
fwrite()
寫入文件。
3
glob()
返回一個包含匹配指定模式的文件名/目錄的數組。
4
is_dir()
判斷指定的文件名是否是一個目錄。
3
is_executable()
判斷文件是否可執行。
3
is_file()
判斷指定文件是否為常規的文件。
3
is_link()
判斷指定的文件是否是連接。
3
is_readable()
判斷文件是否可讀。
3
is_uploaded_file()
判斷文件是否是通過 HTTP POST 上傳的。
3
is_writable()
判斷文件是否可寫。
4
is_writeable()
is_writable() 的別名。
3
link()
創建一個硬連接。
3
linkinfo()
返回有關一個硬連接的信息。
3
lstat()
返回關於文件或符號連接的信息。
3
mkdir()
創建目錄。
3
move_uploaded_file()
將上傳的文件移動到新位置。
4
parse_ini_file()
解析一個配置文件。
4
pathinfo()
返回關於文件路徑的信息。
4
pclose()
關閉有 popen() 打開的進程。
3
popen()
打開一個進程。
3
readfile()
讀取一個文件,並輸出到輸出緩沖。
3
readlink()
返回符號連接的目標。
3
realpath()
返回絕對路徑名。
4
rename()
重名名文件或目錄。
3
rewind()
倒回文件指針的位置。
3
rmdir()
刪除空的目錄。
3
set_file_buffer()
設置已打開文件的緩沖大小。
3
stat()
返回關於文件的信息。
3
symlink()
創建符號連接。
3
tempnam()
創建唯一的臨時文件。
3
tmpfile()
建立臨時文件。
3
touch()
設置文件的訪問和修改時間。
3
umask()
改變文件的文件權限。
3
unlink()
刪除文件。
3
PHP Filesystem 常量
PHP:指示支持該常量的最早的 PHP 版本。
常量 |
描述 |
PHP |
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