PHP使用fopen與file_get_contents讀取文件實(shí)例分享
php中讀取文件可以使用fopen和file_get_contents這兩個(gè)函數(shù),二者之間沒有本質(zhì)區(qū)別,只是前者讀取文件的php代碼相比后者要復(fù)雜一點(diǎn)。本文章通過實(shí)例向大家講解fopen和file_get_contents讀取文件的實(shí)現(xiàn)代碼。需要的碼農(nóng)可以參考一下。
fopen讀取文件的代碼如下:
<?php
$file_name = "1.txt";
echo $file_name . "
";
$fp = fopen($file_name, 'r');
//$buffer=fgets($fp);
while (!feof($fp)) {
$buffer = fgets($fp);
echo $buffer;
}
fclose($fp);
?>
注意fopen讀取文件需要配合使用fgets和fclose函數(shù)。
file_get_contents讀取文件的代碼如下:
<?php
if (file_exists($path)) {
$body = file_get_contents($path);
echo $body; //輸入文件內(nèi)容
} else {
echo "文件不存在 $path";
}
?>
這個(gè)函數(shù)是一次性讀取所有文件內(nèi)容并顯示出來,但是如果文件超大會(huì)導(dǎo)致php占很大的內(nèi)存了。
當(dāng)然還有像file這種一般是把文件讀成數(shù)組了,同時(shí)也可以實(shí)現(xiàn)讀取文件了
下面給大家介紹下fopen()和file_get_contents()打開URL獲得網(wǎng)頁內(nèi)容的用法區(qū)別
在php里,要想打開網(wǎng)頁URL獲得網(wǎng)頁內(nèi)容,比較常用的函數(shù)是fopen()和file_get_contents()。如果要求不苛刻,此兩個(gè)函數(shù)多數(shù)情況下是可以根據(jù)個(gè)人愛好任意選擇的,本文談下此兩函數(shù)的用法有什么區(qū)別,以及使用時(shí)需要注意的問題。
fopen()打開URL
下面是一個(gè)使用fopen()打開URL的例子:
<?php
$fh = fopen('http://www.baidu.com/', 'r');
if($fh){
while(!feof($fh)) {
echo fgets($fh);
}
}
?>
從此例子可以看到,fopen()打開網(wǎng)頁后,返回的$fh不是字符串,不能直輸出的,還需要用到fgets()這個(gè)函數(shù)來獲取字符串。fgets()函數(shù)是從文件指針中讀取一行。文件指針必須是有效的,必須指向由 fopen() 或 fsockopen() 成功打開的文件(并還未由 fclose() 關(guān)閉)。
可知,fopen()返回的只是一個(gè)資源,如果打開失敗,本函數(shù)返回 FALSE 。
file_get_contents()打開URL
下面是一個(gè)使用file_get_contents()打開URL的例子:
<?php
$fh= file_get_contents('http://www.baidu.com/');
echo $fh;
?>
從此例子看到,file_get_contents()打開網(wǎng)頁后,返回的$fh是一個(gè)字符串,可以直接輸出的。
通過上面兩個(gè)例子的對(duì)比,可以看出使用file_get_contents()打開URL,也許是更多人的選擇,因?yàn)槠浔萬open()更簡單便捷。
不過,如果是讀取比較大的資源,則是用fopen()比較合適。
相關(guān)文章
Laravel 修改驗(yàn)證異常的響應(yīng)格式實(shí)例代碼詳解
這篇文章主要介紹了Laravel 修改驗(yàn)證異常的響應(yīng)格式,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
使用php方法curl抓取AJAX異步內(nèi)容思路分析及代碼分享
怎樣抓取AJAX網(wǎng)站的內(nèi)容?這是一個(gè)熱門的問題,也是一個(gè)棘手的問題。但實(shí)際上呢,抓取ajax異步內(nèi)容的頁面和抓普通的頁面區(qū)別不大。ajax只不過是做了一次異步的http請(qǐng)求,只要使用firebug類似的工具,找到請(qǐng)求的后端服務(wù)url和傳值的參數(shù),然后對(duì)該url傳遞參數(shù)進(jìn)行抓取即可2014-08-08
php 搜索框提示(自動(dòng)完成)實(shí)例代碼
輸入要搜索的文字時(shí)在搜索框下方提示相關(guān)的搜索信息實(shí)現(xiàn)方法,就是自動(dòng)完成效果2012-02-02
PHP實(shí)現(xiàn)WebService的簡單示例和實(shí)現(xiàn)步驟
這篇文章主要介紹了PHP實(shí)現(xiàn)WebService的簡單示例和實(shí)現(xiàn)步驟,本文直接給出示例代碼并分步驟講解,需要的朋友可以參考下2015-03-03
無需數(shù)據(jù)庫在線投票調(diào)查php代碼
這篇文章主要為大家詳細(xì)介紹了無需數(shù)據(jù)庫在線投票調(diào)查php代碼2016-07-07
laravel框架實(shí)現(xiàn)為 Blade 模板引擎添加新文件擴(kuò)展名操作示例
這篇文章主要介紹了laravel框架實(shí)現(xiàn)為 Blade 模板引擎添加新文件擴(kuò)展名操作,結(jié)合實(shí)例形式詳細(xì)分析了laravel框架Blade 模板引擎添加新文件擴(kuò)展名具體操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-01-01
thinkphp框架page類與bootstrap分頁(美化)
這篇文章主要介紹了thinkphp框架page類與bootstrap分頁(美化) ,需要的朋友可以參考下2017-06-06

