php 使用fopen函數(shù)創(chuàng)建、打開文件詳解及實例代碼
php中沒有單獨的文件創(chuàng)建函數(shù),如果我們想創(chuàng)建函數(shù),可以使用fopen(),fopen()函數(shù)字面意思是打開文件,但該函數(shù)也有創(chuàng)建文件的功能,當(dāng)使用 fopen() 函數(shù)打開一個文件時,如果文件不存在,則會嘗試創(chuàng)建該文件,并返回一個資源。
php fopen函數(shù)介紹
fopen函數(shù)打開文件或者 URL
語法:
resource fopen( string filename, string mode )
fopen()將 filename 指定的名字資源綁定到一個流上。
參數(shù):
1. filename為嘗試打開/創(chuàng)建的文件名。
如果 filename 是 "scheme://..." 的格式,則被當(dāng)成一個 URL,PHP 將搜索協(xié)議處理器(也被稱為封裝協(xié)議)來處理此模式。如果該協(xié)議尚未注冊封裝協(xié)議,PHP 將發(fā)出一條消息來幫助檢查腳本中潛在的問題并將 filename 當(dāng)成一個普通的文件名繼續(xù)執(zhí)行下去。
如果 PHP 認(rèn)為 filename 指定的是一個本地文件,將嘗試在該文件上打開一個流。該文件必須是 PHP 可以訪問的,因此需要確認(rèn)文件訪問權(quán)限允許該訪問。如果激活了安全模式或者 open_basedir 則會應(yīng)用進一步的限制。
如果 PHP 認(rèn)為 filename 指定的是一個已注冊的協(xié)議,而該協(xié)議被注冊為一個網(wǎng)絡(luò) URL,PHP 將檢查并確認(rèn) allow_url_fopen 已被激活。如果關(guān)閉了,PHP 將發(fā)出一個警告,而 fopen 的調(diào)用則失敗。
2. mode 指定了打開模式,其可能的值如下:
| 打開模式 | 說明 |
|---|---|
| r | 只讀,并將文件指針指向文件開始位置 |
| r+ | 讀寫,將文件指針指向文件開始位置 |
| w | 只寫,將文件指針指向文件開始位置并將文件內(nèi)容清空,如果文件不存在則嘗試創(chuàng)建之 |
| w+ | 讀寫,將文件指針指向文件開始位置并將文件內(nèi)容清空,如果文件不存在則嘗試創(chuàng)建之 |
| a | 追加,將文件指針指向文件末尾來操作,如果文件不存在則嘗試創(chuàng)建之 |
| a+ | 讀寫追加,將文件指針指向文件末尾來操作,如果文件不存在則嘗試創(chuàng)建之 |
| x | 只寫,并創(chuàng)建文件,如果文件已存在,則 fopen() 調(diào)用失敗并返回 FALSE |
| x+ | 讀寫,并創(chuàng)建文件,如果文件已存在,則 fopen() 調(diào)用失敗并返回 FALSE |
php fopen函數(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ù)打開文件:
$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ù)寫文件
$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ù)還可用于打開互聯(lián)網(wǎng)上的 URL 地址:
<?php
$fh = fopen("http://www.baidu.com/", "r");
if($fh){
while(!feof($fh)) {
echo fgets($fh);
}
}
?>
注意:fopen() 返回的只是一個資源,要想顯示打開的頁面地址,還需要用 fgets() 函數(shù)讀取并輸出。
通過此文希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Zend Framework教程之路由功能Zend_Controller_Router詳解
這篇文章主要介紹了Zend Framework教程之路由功能Zend_Controller_Router,詳細(xì)分析了路由功能Zend_Controller_Router的原理,使用技巧與相關(guān)注意事項,需要的朋友可以參考下2016-03-03
PHP getallheaders無法獲取自定義頭(headers)的問題
這篇文章主要介紹了PHP getallheaders無法獲取自定義頭(headers)的問題的相關(guān)資料,需要的朋友可以參考下2016-03-03
自編函數(shù)解決pathinfo()函數(shù)處理中文問題
本文主要介紹了小編在使用pathinfo()函數(shù)處理中文文件名時遇到的一個小BUG的處理方式,有相同問題的童鞋們可以參考下2014-11-11
PHP經(jīng)典面試題之設(shè)計模式(經(jīng)常遇到)
php中設(shè)計模式非常多,但是設(shè)計模式在php面試題經(jīng)常會提到,本文主要給大家介紹php經(jīng)典面試題之設(shè)計模式,需要的朋友一起看看吧2015-10-10
Yii凈化器CHtmlPurifier用法示例(過濾不良代碼)
這篇文章主要介紹了Yii凈化器CHtmlPurifier用法,可實現(xiàn)過濾不良代碼的功能,涉及在控制器、模型、過濾器及視圖中的相關(guān)使用技巧,需要的朋友可以參考下2016-07-07
跟我學(xué)Laravel之請求(Request)的生命周期
這篇文檔包含了關(guān)于請求生命周期的高層次概述,以及啟動文件和應(yīng)用程序事件的相關(guān)內(nèi)容。是篇非常不錯的文章,有需要的朋友可以參考下2014-10-10

