php 使用fopen函數(shù)創(chuàng)建、打開(kāi)文件詳解及實(shí)例代碼
php中沒(méi)有單獨(dú)的文件創(chuàng)建函數(shù),如果我們想創(chuàng)建函數(shù),可以使用fopen(),fopen()函數(shù)字面意思是打開(kāi)文件,但該函數(shù)也有創(chuàng)建文件的功能,當(dāng)使用 fopen() 函數(shù)打開(kāi)一個(gè)文件時(shí),如果文件不存在,則會(huì)嘗試創(chuàng)建該文件,并返回一個(gè)資源。
php fopen函數(shù)介紹
fopen函數(shù)打開(kāi)文件或者 URL
語(yǔ)法:
resource fopen( string filename, string mode )
fopen()將 filename 指定的名字資源綁定到一個(gè)流上。
參數(shù):
1. filename為嘗試打開(kāi)/創(chuàng)建的文件名。
如果 filename 是 "scheme://..." 的格式,則被當(dāng)成一個(gè) URL,PHP 將搜索協(xié)議處理器(也被稱(chēng)為封裝協(xié)議)來(lái)處理此模式。如果該協(xié)議尚未注冊(cè)封裝協(xié)議,PHP 將發(fā)出一條消息來(lái)幫助檢查腳本中潛在的問(wèn)題并將 filename 當(dāng)成一個(gè)普通的文件名繼續(xù)執(zhí)行下去。
如果 PHP 認(rèn)為 filename 指定的是一個(gè)本地文件,將嘗試在該文件上打開(kāi)一個(gè)流。該文件必須是 PHP 可以訪問(wèn)的,因此需要確認(rèn)文件訪問(wèn)權(quán)限允許該訪問(wèn)。如果激活了安全模式或者 open_basedir 則會(huì)應(yīng)用進(jìn)一步的限制。
如果 PHP 認(rèn)為 filename 指定的是一個(gè)已注冊(cè)的協(xié)議,而該協(xié)議被注冊(cè)為一個(gè)網(wǎng)絡(luò) URL,PHP 將檢查并確認(rèn) allow_url_fopen 已被激活。如果關(guān)閉了,PHP 將發(fā)出一個(gè)警告,而 fopen 的調(diào)用則失敗。
2. mode 指定了打開(kāi)模式,其可能的值如下:
打開(kāi)模式 | 說(shuō)明 |
---|---|
r | 只讀,并將文件指針指向文件開(kāi)始位置 |
r+ | 讀寫(xiě),將文件指針指向文件開(kāi)始位置 |
w | 只寫(xiě),將文件指針指向文件開(kāi)始位置并將文件內(nèi)容清空,如果文件不存在則嘗試創(chuàng)建之 |
w+ | 讀寫(xiě),將文件指針指向文件開(kāi)始位置并將文件內(nèi)容清空,如果文件不存在則嘗試創(chuàng)建之 |
a | 追加,將文件指針指向文件末尾來(lái)操作,如果文件不存在則嘗試創(chuàng)建之 |
a+ | 讀寫(xiě)追加,將文件指針指向文件末尾來(lái)操作,如果文件不存在則嘗試創(chuàng)建之 |
x | 只寫(xiě),并創(chuàng)建文件,如果文件已存在,則 fopen() 調(diào)用失敗并返回 FALSE |
x+ | 讀寫(xiě),并創(chuàng)建文件,如果文件已存在,則 fopen() 調(diào)用失敗并返回 FALSE |
php fopen函數(shù)實(shí)例
1、使用fopen函數(shù)創(chuàng)建文件:
$my_file = 'file.txt';//如果文件不存在(默認(rèn)為當(dāng)前目錄下) $handle = fopen($my_file, 'w') or die('Cannot open file: '.$my_file); //implicitly creates file
2、使用fopen函數(shù)打開(kāi)文件:
$my_file = 'file.txt';//假設(shè)文件file.txt存在 $handle = fopen($my_file, 'w') or die('Cannot open file: '.$my_file); //open file for writing ('w','r','a')...
3、fopen函數(shù)結(jié)合fread讀取文件:
$my_file = 'file.txt'; $handle = fopen($my_file, 'r'); $data = fread($handle,filesize($my_file));
4、fopen函數(shù)結(jié)合fwrite函數(shù)寫(xiě)文件
$my_file = 'file.txt'; $handle = fopen($my_file, 'w') or die('Cannot open file: '.$my_file); $data = 'This is the data'; fwrite($handle, $data);
5、fopen函數(shù)結(jié)合fwrite函數(shù)向文件中追加內(nèi)容:
$my_file = 'file.txt'; $handle = fopen($my_file, 'a') or die('Cannot open file: '.$my_file); $data = 'New data line 1'; fwrite($handle, $data); $new_data = "\n".'New data line 2'; fwrite($handle, $new_data);
6、fopen() 函數(shù)還可用于打開(kāi)互聯(lián)網(wǎng)上的 URL 地址:
<?php $fh = fopen("http://www.baidu.com/", "r"); if($fh){ while(!feof($fh)) { echo fgets($fh); } } ?>
注意:fopen() 返回的只是一個(gè)資源,要想顯示打開(kāi)的頁(yè)面地址,還需要用 fgets() 函數(shù)讀取并輸出。
通過(guò)此文希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
laravel接管Dingo-api和默認(rèn)的錯(cuò)誤處理方式
今天小編就為大家分享一篇laravel接管Dingo-api和默認(rèn)的錯(cuò)誤處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10PHP網(wǎng)頁(yè)游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(九)
這篇文章主要介紹了PHP網(wǎng)頁(yè)游戲Xnova(ogame)源碼解讀的艦隊(duì)相關(guān)函數(shù)部分,需要的朋友可以參考下2014-06-06thinkphp普通查詢與表達(dá)式查詢實(shí)例分析
這篇文章主要介紹了thinkphp普通查詢與表達(dá)式查詢,以實(shí)例形式較為詳細(xì)的分析了thinkphp中的普通查詢與表達(dá)式查詢具體用法,包含普通查詢的字符串方式與數(shù)組方式以及表達(dá)式查詢中的各種常用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-11-11php 404錯(cuò)誤頁(yè)面實(shí)現(xiàn)代碼
如果訪問(wèn)您站點(diǎn)的用戶由于各種原因暫時(shí)出現(xiàn)無(wú)法訪問(wèn)頁(yè)面的錯(cuò)誤,如何給他一個(gè)友好的答復(fù),并且你也知道發(fā)生了這個(gè)錯(cuò)誤,看看下面這段程序,是用來(lái)定制404錯(cuò)誤頁(yè)面和發(fā)通知給網(wǎng)管。2009-06-06關(guān)于擴(kuò)展 Laravel 默認(rèn) Session 中間件導(dǎo)致的 Session 寫(xiě)入失效問(wèn)題分析
這篇文章主要介紹了關(guān)于擴(kuò)展 Laravel 默認(rèn) Session 中間件導(dǎo)致的 Session 寫(xiě)入失效問(wèn)題分析的相關(guān)資料,需要的朋友可以參考下2016-01-01Laravel Intervention/image圖片處理擴(kuò)展包的安裝、使用與可能遇到的坑詳解
這篇文章主要給大家介紹了關(guān)于Laravel中Intervention/image圖片處理擴(kuò)展包的安裝、使用與在使用可能遇到的坑的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11PHP本地進(jìn)行API接口測(cè)試的實(shí)例
下面小編就為大家分享一篇PHP本地進(jìn)行API接口測(cè)試的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03PHP將XML轉(zhuǎn)數(shù)組過(guò)程詳解
本文講的是用PHP將XML對(duì)象轉(zhuǎn)換成數(shù)組的方法2013-11-11