Php操作文件


  1. file_get_contents 读取整个文件内容
  2. fopen 创建和打开文件
  3. fclose 关闭文件
  4. fgets 读取文件一行内容
  5. file_exists 检查文件或目录是否存在
  6. file_put_contents 写入文件
  7. fwrite 写入文件

 

用 PHP 内置函数file_get_contents 读取整个文件内容


PHP 内置函数 file_get_contents 可以读取整个文件内容。

file_get_contents 函数读取整个文件,返回一个字符串。file_get_contents 最简单的写法如下:

file_get_contents(filepath)

举个例子,你有一个 .txt 文件,文件的路径为:

C:\blabla\php\hello.txt

下面的 php 代码用 file_get_contents 函数读取该文件,并输出该文件内容:

<html>
<body>
<?php
$f = file_get_contents("C:\\blabla\\php\\hello.txt");
echo $f;
?>
</body>
</html>

注意:由于文件路径含有反斜杠,而在 PHP 字符串里,反斜杠需要转义,要用两个反斜杠表示。(如果你忘记了 PHP某些特殊字符的转义,请翻阅前面所讲的 PHP字符串)

file_get_contents   函数的返回值是所读取的文件内容字符串,如果出错,返回 FALSE

用 PHP 内置函数 fopen 创建文件和打开文件


使用 PHP 内置函数 fopen,可以打开一个文件。

打开文件

fopen 最简单语法如下:

fopen(filepath,mode)

下面是打开一个文件的 PHP 代码示例:

<?php
$f = fopen("c:\\data\\info.txt", "r");
?> 

其中,c:\\data\\info.txt 是文件路径,r 表示打开文件的模式(mode) 为只读 (read only) 模式。

fopen 函数打开文件的模式有以下几种:

模式 (mode) 说明
r 只读,文件指针在文件开始处。
r+ 读和写,文件指针在文件开始处。
w

只写,文件指针在文件开始处,将文件长度截成0。

如果文件不存在,创建文件。

w+

读和写,文件指针在文件开始处,将文件长度截成0。

如果文件不存在,创建文件。

a

只写,文件指针在文件末尾处。

如果文件不存在,创建文件。

a+

读和写,文件指针在文件末尾处。

如果文件不存在,创建文件。

x

只写,文件指针在文件开始处。

如果文件已经存在,fopen () 函数返回 FALSE 并产生一个E_WARNING 级别的错误。

如果文件不存在,创建文件。

x+

读和写,文件指针在文件开始处。

如果文件已经存在,fopen () 函数返回 FALSE 并产生一个E_WARNING 级别的错误。

如果文件不存在,创建文件。

如果成功打开文件,fopen 函数的返回值是一个文件指针资源 (a file pointer resource),如果出错,返回 FALSE。

创建文件

选择 fopen 函数参数 mode 的适当的值 ,你可以用 fopen 创建一个文件,比如:

<?php
$f = fopen("c:\\data\\101.txt", "w");
$f = fopen("c:\\data\\102.txt", "w+");
$f = fopen("c:\\data\\103.txt", "a");
$f = fopen("c:\\data\\104.txt", "a+");
$f = fopen("c:\\data\\105.txt", "x");
$f = fopen("c:\\data\\106.txt", "x+");
?>
 

用 PHP 内置函数 fclose 关闭一个文件


上一节我们讲了如何用 fopen 函数打开一个文件,这一节我们讲述使用 PHP 内置函数 fclose 关闭一个文件。

fclose 函数语法如下:

fclose(filepointer)

如果成功,fclose 函数返回 TRUE,如果失败,fclose 函数返回 FALSE。

下面是一个 fclose 函数的 PHP 代码示例:

<?php
$f = fopen("c:\\data\\info.txt", "r");
fclose($f);
?>

 

用 PHP 内置函数 fgets 读取文件一行内容


用 PHP 内置函数 fgets 可以读取文件的一行内容。

fgets读取文件一行内容的语法是:

fgets(filepointer)

下面我们举个例子讲述如何一行行读取一个文件。

假设我们有一个 sites.txt 文件,该文件有三行,内容如下:

woyouxian.com
blabla.cn
google.com

sites.txt 的文件路径是:

C:\blabla\php\sites.txt

我们用 PHP 一行行读取文件内容,PHP代码如下:

<html>
<body>
<?php
$f= fopen("C:\\blabla\\php\\sites.txt","r");
while (!feof($f))
{
  $line = fgets($f);
  echo "site: ",$line,"<br />";
}
fclose($f);
?>
</body>
</html>

执行该 PHP 文件,返回的显示结果是:

site: woyouxian.com
site: blabla.cn
site: google.com

该 PHP 代码的第一行是打开文件,最后一行是关闭一个文件。当中的 while 循环语句表示,当文件没有结束,就读取一行,循环执行,直到文件指针到文章末尾为止。

feof 函数是PHP 的一个内置函数,用来测试文件指针是否已经到了文件末尾。如果是返回 TRUE,如果不是,返回 FALSE。eof 的英文意思就是 end of file,很容易记。

正常情况下,fgets 函数的返回值是一个字符串,如果出错,返回 FALSE。


用 PHP 内置函数 file_exists 检查文件或目录是否存在


用 PHP 内置函数 file_exists 可以检查某个文件或目录是否存在。如果文件或目录存在,file_exists 函数返回 TRUE,如果不存在,则返回 FALSE。

下面是一个简单的检查文件是否存在的实例代码:

<html>
<body>
<?php
$filename = "C:\\blabla\\php\\hello.txt";
if (file_exists($filename))
  {echo "The file $filename exists.";}
else
  {echo "The file $filename does not exist.";}
?>
</body>
</html>

如果文件存在,执行该 PHP 文件的显示结果是:

The file C:\blabla\php\hello.txt exists.

如果文件不存在,执行该 PHP 文件的显示结果是:

The file C:\blabla\php\hello.txt does not exist.

你也可以用file_exists 函数测试某个目录是否存在,示例代码如下:

if (file_exists("C:\\blabla\\php"))
  {echo "yes";}
else
  {echo "no";}
 

 

用 PHP 内置函数 file_put_contents 写入文件


PHP 内置函数 file_put_contents 用于写入文件。

file_put_contents 函数最简单的写法,可以只用两个参数,一个是文件路径,一个是要写入的内容,语法如下:

file_put_contents(filepath,data)

如果文件不存在,file_put_contents 函数会自动创建文件;如果文件已存在,原有文件被重写。

你可以利用 file_put_contents 函数创建并写入一个新文件,或者重写一个原有文件。

下面是一个使用 file_put_contents 函数的 PHP 代码示例:

<html>
<body>
<?php
$path ="C:\\blabla\\filesys\\one.txt";
$content = "one for all";
file_put_contents($path,$content);
if (file_exists($path))
  {echo "ok";}
else
  {echo "ng";}
?>
</body>
</html>

该 PHP 代码示例会创建一个路径为 C:\blabla\filesys\one.txt 的文件,该文件的内容是 one for all 。

如果你想在一个已有文件上追加内容,你也可以使用file_put_contents 函数,只需要加一个参数即可。

file_put_contents(filepath,data,flags)

当 flags 的值为 FILE_APPEND 时,表示在已有文件上追加内容。

比如我们要在上面示例的C:\blabla\filesys\one.txt 文件上追加内容,我们可以这样写:

<html>
<body>
<?php
$path ="C:\\blabla\\filesys\\one.txt";
$content = " all for one";
file_put_contents($path,$content,FILE_APPEND);
if (file_exists($path))
  {echo "ok";}
else
  {echo "ng";}
?>
</body>
</html>

执行该 PHP 文件之后,我们再看 C:\blabla\filesys\one.txt 文件,发现文件内容增加了,变成了:

one for all all for one

file_put_contents 函数返回写入文件的字节数 (number of bytes) ,如果出错,返回 FALSE。


用 PHP 内置函数 fwrite 写入文件


前面我们讲过用 fopen 打开文件,用 fclose 关闭文件,这一章节我们讲述如何用 fopenfwritefclose 来实现打开文件、写入文件和保存关闭文件的这一系列的操作。重点讲述fwrite 函数。

PHP 内置函数 fwrite 用于写入文件。

fwrite 函数的常用语法为:

fwrite(handle,string)

其中,参数 handle 表示文件指针资源 (通常由 fopen 函数创建),string 表示要写入的内容。

下面一个PHP 代码示例演示如何创建一个新文件,并写入内容,然后保存并关闭文件:

<html>
<body>
<?php
$f= fopen("C:\\blabla\\php\\write.txt","w");
fwrite($f,"It is awesome.");
fclose($f);
echo "done";
?>
</body>
</html>

执行该 PHP 文件后,会创建一个路径为 C:\blabla\php\write.txt 的文件,文件的内容是It is awesome.

如果你想在现有文件上再追加内容,你只要修改 fopen 的 参数 mode 值即可,如下:

$f= fopen("C:\\blabla\\php\\write.txt","a");

有关 fopen 函数的参数 mode 值,详见 fopen

fwrite 函数返回写入文件的字节数 (number of bytes) ,如果出错,返回 FALSE。

 
作者或编者:布啦布啦   最近更新日期:2008-06-05
参考来源:www.BlaBla.cn




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值