PHP文件操作

一、文件基础操作


1)打开文件
在PHP中,我们可以使用fopen()函数来打开一个文件,该函接收连个参数:

文件名和打开模式
打开模式可以是"r" (只读模式)、“w” (写入模式) “a”(追加模式)等。

 fopen函数的格式

 fopen("文件名","打开模式")

 

下面是一个打开文件的示例:
$file= fopen("example.txt", "r");
在上面的示例中,我们打开了一个名为"example.txt"的文件,并指定了只读模式。

打开文件案例 

 <?
header("content-type:text/html; charset=utf-8");
$file = "a111.txt";
// fopen()打开文件的时候,如果打开成功,则返回真,如果打开失败,则返回假
// 在函数前面加上@可以屏蔽掉函数的报错和警告输出
$fileObj = @fopen($file, "r");
if($fileObj)
{
echo "打开文件成功<br>";
}
else
{
echo "打开文件失败<br>";
exit();
}
?>

2)读取文件 

 逐行读取文件

 fgets() 函数用于从文件中逐行读取文件。
注释:在调用该函数之后,文件指针会移动到下一行。
实例:下面的实例逐行读取文件,直到文件末尾为止:
<?
header("content-type:text/html; charset=utf-8");
// 定义文件名
$file = "a.txt";
// 打开文件
$fileObj = @fopen($file, "r");
// 判断文件是否打开成功
if($fileObj)
{
echo "打开文件成功<br>";
}
else
{
echo "打开文件失败<br>";
exit();
}
// 从文件中读取内容
while(!feof($fileObj)) # feof() 判断指针是否指向文件的末尾,如果是的话,则为真
{
// fgets() 执行一次,就会从打开的文件中读取一行
// 读取了一行一行,指针就会向后移动一行
$content = fgets($fileObj);
// 输出读取的这行的内容
echo "$content <br>";
echo "<hr>";
}
fclose($fileObj);
?>

feof() 函数检查是否已到达文件末尾(EOF)。
如果出错或者文件指针到了文件末尾(EOF)则返回 TRUE,否则返回 FALSE。

逐字符读取文件 

 fgetc() 函数用于从文件中逐字符地读取文件。
注释:在调用该函数之后,文件指针会移动到下一个字符。
实例:下面的实例逐字符地读取文件,直到文件末尾为止:
<?
header("content-type:text/html; charset=utf-8");
// 定义文件名
$file = "a.txt";
// 打开文件
$fileObj = @fopen($file, "r");
// 判断文件是否打开成功
if($fileObj)
{
echo "打开文件成功<br>";
}
else
{
echo "打开文件失败<br>";
exit();
}
// 从文件中读取内容
while(!feof($fileObj)) # feof() 判断指针是否指向文件的末尾,如果是的话,则为真
{
// fgets() 执行一次,就会从打开的文件中读取一个字符
// 读取了一个字符,指针就会向后移动一位
// 英文字母和数字,一个字符就是一个,但是一个汉字,占用2-6个字符,具体要看编码类型
$content1 = fgetc($fileObj);
$content2 = fgetc($fileObj);
$content3 = fgetc($fileObj);
$content4 = fgetc($fileObj);
// 输出读取的这行的内容
echo "$content1";
echo "$content2";
echo "$content3";
echo "$content4";
echo "<hr>";
}
fclose($fileObj);
?>

 读取全部内容:fread

 <?php
header("content-type:text/html; charset=utf-8");
// 定义文件名
$file = "a.txt";
// 打开文件
$fileObj = @fopen($file, "r");
// 判断文件是否打开成功
if ($fileObj) {
echo "打开文件成功<br>";
} else {
echo "打开文件失败<br>";
exit();
}
$content = fread($fileObj, filesize("a.txt"));
fclose($fileObj);
echo $content
?>

 fread函数

 fread() 函数读取打开的文件。
函数会在到达指定长度或读到文件末尾(EOF)时(以先到者为准),停止运行。
该函数返回读取的字符串,如果失败则返回 FALSE。
string fread ( resource $handle , int $length )

filesize函数 

 filesize() 函数返回指定文件的大小。

如果成功,该函数返回文件大小的字节数。如果失败,则返回 FALSE。

 3)导入文件

 与读取文件类似,我们可以使用fwrite()函数来向文件中写入内容。下面是一个写入文件的示例:
<?
header("content-type:text/html; charset=utf-8");
// 定义文件名
$file = "a.txt";
// 打开文件
$fileObj = @fopen($file, "r");
// 判断文件是否打开成功
if($fileObj)
{
echo "打开文件成功<br>";
}
else
{
echo "打开文件失败<br>";
exit();
}
// fwrite()向文件写入内容的时候,则返回的是写入到文件的字符个数
// php中,数字0表示假,非0表示真,因此可以基于这个特性来判断写入操作是否成功
$res = fwrite($fileObj, "a");
echo "写入到文件中 $res 个字符";
?>

在上面的示例中,我们首先以写入模式打开一个文件,然后使用fwrite()函数将字符串"Hello, World!"写入文件中。最后,我们使用fclose()函数关闭文件。

 4)修改文件

 如果需要修改文件中的内容,我们可以先将文件内容读取到一个字符串中,然后对字符串进行修改,最 后再将修改后的内容写入文件中。下面是一个修改文件的示例:

 
<?php
header("Content-Type:text/html; charset=utf-8");
// 打开读取文件内容
$file=fopen("a.txt", "r");
$content= fread($file, filesize("a.txt"));
fclose($file);
echo "1: 读取文件完成....<br>";
// 对内容进行字符串替换
$content= str_replace("大力", "张美丽", $content);
echo "2: 替换内容完成....<br>";
// 将替换后的字符串再次写入到源文件中
$file= fopen("a.txt", "w");
fwrite($file, $content);
fclose($file);
echo "3: 重新写入完成....<br>";
?>

 5)删除文件

 要删除一个文件,可以使用PHP的unlink()函数。以下是一个简单的示例代码:
 

if (unlink("example.txt")) {
echo "文件已删除";
} else {
echo "无法删除文件";
}

 6)关闭文件

 fclose() 函数用于关闭打开的文件:
<?php
$file = fopen("test.txt","r");
//执行一些代码
fclose($file);
?>

补充1:file_exists:文件是否存在 

 $file = "check.txt";
if(file_exists($file))
{
echo "当前目录中,文件".$file."存在";
}
else
{
echo "当前目录中,文件".$file."不存在";
}

补充2:is_dir:目录是否存在 

 $dir = "c:/dir1";
if(is_dir($dir))
{
echo "当前目录下,目录".$dir."存在";
}
else
{
echo "当前目录下,目录".$dir."不存在";

}

  • 31
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值