熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

php打開文件fopen函數的使用說明

2013-11-15 12:33:32  來源: PHP編程 
本篇文章是對php中的打開文件fopen函數的使用進行了詳細的分析介紹需要的朋友參考下  

  resource  fopen(string  $filename string $mode [bool $use_include_path [ resource $zcontext]])
函數功能
fopen() 將 filename 指定的名字資源綁定到一個流上如果filename 是 "scheme://" 的格式則被當成一個 URLPHP 將搜索協議處理器(也被稱為封裝協議)來處理此模式如果該協議尚未注冊封裝協議PHP 將發出一條消息來幫助檢查腳本中潛在的問題並將filename 當成一個普通的文件名繼續執行下去
如果 PHP 認為 filename 指定的是一個本地文件將嘗試在該文件上打開一個流該文件必須是 PHP 可以訪問的因此需要確認文件訪問權限允許該訪問如果激活了安全模式或者open_basedir 則會應用進一步的限制

如果 PHP 認為 filename 指定的是一個已注冊的協議而該協議被注冊為一個網絡 URLPHP 將檢查並確認allow_url_fopen 已被激活如果關閉了PHP 將發出一個警告而 fopen 的調用則失敗

filename規定要打開的文件或URL
mode規定要求到該文件/流的訪問類型
include_path可選如果也需要在include_path中檢索文件的話可以將該參數設為或TRUE
context可選規定文件句柄的環境Context是可以修該流的行為的一套選項

mode 參數的可能的值
mode  說明
"r"  只讀方式打開將文件指針指向文件頭
"r+"  讀寫方式打開將文件指針指向文件頭
"w"  寫入方式打開將文件指針指向文件頭並將文件大小截為零如果文件不存在則嘗試創建之
"w+"  讀寫方式打開將文件指針指向文件頭並將文件大小截為零如果文件不存在則嘗試創建之
"a"  寫入方式打開將文件指針指向文件末尾如果文件不存在則嘗試創建之
"a+"  讀寫方式打開將文件指針指向文件末尾如果文件不存在則嘗試創建之
"x"  
創建並以寫入方式打開將文件指針指向文件頭如果文件已存在則 fopen() 調用失敗並返回 FALSE並生成一條 E_WARNING 級別的錯誤信息如果文件不存在則嘗試創建之
這和給底層的 open() 系統調用指定 O_EXCL|O_CREAT 標記是等價的
此選項被 PHP 以及以後的版本所支持僅能用於本地文件

  "x+"  
創建並以讀寫方式打開將文件指針指向文件頭如果文件已存在則 fopen() 調用失敗並返回 FALSE並生成一條 E_WARNING 級別的錯誤信息如果文件不存在則嘗試創建之
這和給底層的 open() 系統調用指定 O_EXCL|O_CREAT 標記是等價的
此選項被 PHP 以及以後的版本所支持僅能用於本地文件

  Note:
不同的操作系統家族具有不同的行結束習慣當寫入一個文本文件並想插入一個新行時需要使用 符合操作系統的行結束符號基於 Unix 的系統使用n 作為行結束字符基於 Windows 的系統使用 rn 作為行結束字符基於 Macintosh 的系統使用 r 作為行結束字符

如果寫入文件時使用了錯誤的行結束符號則其它應用程序打開這些文件時可能會表現得很怪異
Windows 下提供了一個文本轉換標記(t)可以透明地將 n 轉換為 rn與此對應還可以使用b 來強制使用二進制模式這樣就不會轉換數據要使用這些標記要麼用 b 或者用 t 作為 mode 參數的最後一個字符

默 認的轉換模式依賴於 SAPI 和所使用的 PHP 版本因此為了便於移植鼓勵總是指定恰當的標記如果是操作純文本文件並在腳本中使用了n 作為行結束符但還要期望這些文件可以被其它應用程序例如 Notepad 讀取則在 mode 中使用 t在所有其它情況下使用b

在操作二進制文件時如果沒有指定 b 標記可能會碰到一些奇怪的問題包括壞掉的圖片文件以及關於 rn 字符的奇怪問題


From:http://tw.wingwit.com/Article/program/PHP/201311/21171.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.