首頁 >後端開發 >PHP問題 >php fopen函數怎麼用

php fopen函數怎麼用

藏色散人
藏色散人原創
2019-05-28 14:23:343087瀏覽

php fopen函數用於開啟檔案或URL,其語法是fopen(filename,mode,include_path,context),參數filename必需,指規定要開啟的檔案或URL,mode 必需,指規定要求到該檔案/流的存取類型。

php fopen函數怎麼用

php fopen函數怎麼用?

定義和用法

fopen() 函數開啟檔案或 URL。

如果開啟失敗,本函數傳回 FALSE。

語法

fopen(filename,mode,include_path,context)

參數 

#filename 必要。規定要開啟的文件或 URL。

mode 必需。規定要求到該文件/流的存取類型。可能的值見下表。

include_path 可選。如果也需要在 include_path 中檢索檔案的話,可以將該參數設為 1 或 TRUE。

context 可選。規定文件句柄的環境。 Context 是可以修改流的行為的一套選項。

mode 參數的可能的值

mode 說明

"r" 只讀方式打開,將檔案指標指向檔案頭。

"r " 讀寫方式打開,將檔案指標指向檔案頭。

"w" 寫入方式打開,將檔案指標指向檔案頭並將檔案大小截為零。如果文件不存在則嘗試建立之。

"w " 讀寫方式打開,將檔案指標指向檔案頭並將檔案大小截為零。如果文件不存在則嘗試建立之。

"a" 寫入方式打開,將檔案指標指向檔案結尾。如果文件不存在則嘗試建立之。

"a " 讀寫方式打開,將檔案指標指向檔案結尾。如果文件不存在則嘗試建立之。

"x"建立並以寫入方式打開,將檔案指標指向檔案頭。如果檔案已存在,則 fopen() 呼叫失敗並傳回 FALSE,並產生一條 E_WARNING 層級的錯誤訊息。如果文件不存在則嘗試建立之。

這和給底層的 open(2) 系統呼叫指定 O_EXCL|O_CREAT 標記是等價的。

此選項由 PHP 4.3.2 以及以後的版本所支持,僅能用於本機檔案。

"x "建立並以讀寫方式打開,將檔案指標指向檔案頭。如果檔案已存在,則 fopen() 呼叫失敗並傳回 FALSE,並產生一條 E_WARNING 層級的錯誤訊息。如果文件不存在則嘗試建立之。

這和給底層的 open(2) 系統呼叫指定 O_EXCL|O_CREAT 標記是等價的。

此選項由 PHP 4.3.2 以及以後的版本所支持,僅能用於本機檔案。

說明

fopen() 將 filename 指定的名字資源綁定到一個流。如果 filename 是 "scheme://..." 的格式,則被當成一個 URL,PHP 將搜尋協定處理器(也稱為封裝協定)來處理此模式。如果該協議尚未註冊封裝協議,PHP 將發出一條訊息來幫助檢查腳本中潛在的問題並將 filename 當成一個普通的檔案名稱繼續執行下去。

如果 PHP 認為 filename 指定的是一個本機文件,就會嘗試在該文件上開啟一個流。該檔案必須是 PHP 可以存取的,因此需要確認檔案存取權限允許該存取。如果啟動了安全模式或 open_basedir 則會套用進一步的限制。

如果 PHP 認為 filename 指定的是一個已註冊的協議,而該協議被註冊為一個網路 URL,PHP 將檢查並確認 allow_url_fopen 已被啟動。如果關閉了,PHP 將發出一個警告,而 fopen 的呼叫則失敗。

對 context 的支援是 PHP 5.0.0 新增的。

提示與註解

註解:不同的作業系統家族有不同的行結束習慣。當寫入一個文字檔案並想插入一個新行時,需要使用符合作業系統的行結束符號。基於 Unix 的系統使用 \n 作為行結束字符,基於 Windows 的系統使用 \r\n 作為行結束字符,基於 Macintosh 的系統使用 \r 作為行結束字符。如果寫入檔案時使用了錯誤的行結束符號,則其它應用程式開啟這些檔案時可能會表現得很怪異。

Windows 下方提供了一個文字轉換標記("t")可以透明地將 \n 轉換為 \r\n。與此對應也可以使用 "b" 來強制使用二進位模式,這樣就不會轉換資料。要使用這些標記,要么用 "b" 或用 "t" 作為 mode 參數的最後一個字元。

預設的轉換模式依賴 SAPI 和所使用的 PHP 版本,因此為了方便移植鼓勵總是指定適當的標記。如果是操作純文字檔案並在腳本中使用了 \n 作為行結束符,但也要期望這些檔案可以被其它應用程式例如 Notepad 讀取,則在 mode 中使用 "t"。在所有其它情況下使用 "b"。

在操作二进制文件时如果没有指定 "b" 标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于 \r\n 字符的奇怪问题。

注释:为移植性考虑,强烈建议在用 fopen() 打开文件时总是使用 "b" 标记。

注释:再一次,为移植性考虑,强烈建议你重写那些依赖于 "t" 模式的代码使其使用正确的行结束符并改成 "b" 模式。

例子

<?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");
?>

以上是php fopen函數怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn