Home > Backend Development > PHP Tutorial > php fopen()跟file_get_contents() 区别介绍

php fopen()跟file_get_contents() 区别介绍

WBOY
Release: 2016-06-13 12:29:05
Original
885 people have browsed it

php fopen()和file_get_contents() 区别介绍

本文章向码农们介绍PHP使用fopen与file_get_contents读取文件实例分享及这两个函数的区别,需要的码农可以参考一下。

php中读取文件可以使用fopen和file_get_contents这两个函数,二者之间没有本质区别,只是前者读取文件的php代码相比后者要复杂一点。本文章通过实例向大家讲解fopen和file_get_contents读取文件的实现代码。需要的码农可以参考一下。

fopen读取文件的代码如下:

<span style="color: #000000;">php</span><span style="color: #800080;">$file_name</span> = "1.txt"<span style="color: #000000;">;</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$file_name</span> . ""<span style="color: #000000;">;</span><span style="color: #800080;">$fp</span> = <span style="color: #008080;">fopen</span>(<span style="color: #800080;">$file_name</span>, 'r'<span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;">$buffer=fgets($fp);</span><span style="color: #0000ff;">while</span> (!<span style="color: #008080;">feof</span>(<span style="color: #800080;">$fp</span><span style="color: #000000;">)) {</span><span style="color: #800080;">$buffer</span> = <span style="color: #008080;">fgets</span>(<span style="color: #800080;">$fp</span><span style="color: #000000;">);</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$buffer</span><span style="color: #000000;">;}</span><span style="color: #008080;">fclose</span>(<span style="color: #800080;">$fp</span><span style="color: #000000;">);</span>?>
Copy after login

注意fopen读取文件需要配合使用fgets和fclose函数。

 

file_get_contents读取文件的代码如下:

<span style="color: #000000;">php</span><span style="color: #0000ff;">if</span> (<span style="color: #008080;">file_exists</span>(<span style="color: #800080;">$path</span><span style="color: #000000;">)) {</span><span style="color: #800080;">$body</span> = <span style="color: #008080;">file_get_contents</span>(<span style="color: #800080;">$path</span><span style="color: #000000;">);</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$body</span>; <span style="color: #008000;">//</span><span style="color: #008000;">输入文件内容</span>} <span style="color: #0000ff;">else</span><span style="color: #000000;"> {</span><span style="color: #0000ff;">echo</span> "文件不存在 <span style="color: #800080;">$path</span>"<span style="color: #000000;">;}</span>?>
Copy after login

这个函数是一次性读取所有文件内容并显示出来,但是如果文件超大会导致php占很大的内存了。

当然还有像file这种一般是把文件读成数组了,同时也可以实现读取文件了

 

下面给大家介绍下fopen()和file_get_contents()打开URL获得网页内容的用法区别

在php里,要想打开网页URL获得网页内容,比较常用的函数是fopen()和file_get_contents()。如果要求不苛刻,此两个函数多数情况下是可以根据个人爱好任意选择的,本文谈下此两函数的用法有什么区别,以及使用时需要注意的问题。

fopen()打开URL

下面是一个使用fopen()打开URL的例子:

<span style="color: #000000;">php</span><span style="color: #800080;">$fh</span> = <span style="color: #008080;">fopen</span>('http://www.baidu.com/', 'r'<span style="color: #000000;">);</span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$fh</span><span style="color: #000000;">){</span><span style="color: #0000ff;">while</span>(!<span style="color: #008080;">feof</span>(<span style="color: #800080;">$fh</span><span style="color: #000000;">)) {</span><span style="color: #0000ff;">echo</span> <span style="color: #008080;">fgets</span>(<span style="color: #800080;">$fh</span><span style="color: #000000;">);}}</span>?>
Copy after login

从此例子可以看到,fopen()打开网页后,返回的$fh不是字符串,不能直输出的,还需要用到fgets()这个函数来获取字符串。fgets()函数是从文件指针中读取一行。文件指针必须是有效的,必须指向由 fopen() 或 fsockopen() 成功打开的文件(并还未由 fclose() 关闭)。

可知,fopen()返回的只是一个资源,如果打开失败,本函数返回 FALSE 。

file_get_contents()打开URL

下面是一个使用file_get_contents()打开URL的例子:

<span style="color: #000000;">php</span><span style="color: #800080;">$fh</span>= <span style="color: #008080;">file_get_contents</span>('http://www.baidu.com/'<span style="color: #000000;">);</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$fh</span><span style="color: #000000;">;</span>?>
Copy after login

从此例子看到,file_get_contents()打开网页后,返回的$fh是一个字符串,可以直接输出的。

通过上面两个例子的对比,可以看出使用file_get_contents()打开URL,也许是更多人的选择,因为其比fopen()更简单便捷。

不过,如果是读取比较大的资源,则是用fopen()比较合适。

 

原文地址:http://www.manongjc.com/article/618.html

相关阅读:

php file_get_contents读取大文件

php file_get_contents超时处理方法

php file_get_contents("php://input", "r") 实例讲解

php file_get_contents获取远程页面出现乱码的解决方法

php file_get_contents 获取文件超时的处理方法

php fgets file_get_contents读取文件

php 使用fopen与file_get_contents读取文件实例

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template