php 快速入门(四)

一、文件操作

1.1 文件基础操作

1.1.1 打开文件

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

文件名和打开模式。

打开模式可以使“r”(只读模式)、“w”(写入模式)、“a”(追加模式)等。

fopen 函数的格式

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

模式描述
r只读。在文件的开头开始。
r+读/写。在文件的开头开始。
w

只写。打开并清空文件的内容;如果文件不存在,则创建新文件。

w+读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
a追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件
a+读/追加。通过向文件末尾写内容,来保持文件内容。
x只写。创建新文件。如果文件已存在,则返回FALSE和一个错误。
x+读/写。创建新文件,如果文件已存在,则返回FALSE和一个错误

下面是一个打开文件的实例:

$file = fopen("example.txt","r");

打开文件案例:

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

逐行读取文件

fgets() 函数用于从文件中逐行读取文件。

注释:在调用该函数之后,文件指针会移动到下一行。
实例:下面的实例逐行读取文件,直到文件末尾为止;

<?php
    header("conteent-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() 判断指针是否指向文件的末尾,如果是的话,则为真
    {
        // fgetc() 执行一次,就会从打开的文件中读取一个字符
        // 读取了一个字符,指针就会向后移动一位
        // 英文字母和数字,一个字符就是一个,但是一个汉字,占用2-6个字符,具体要看编码类型
        $content1 = fgetc($fileObj);
        $content2 = fgetc($fileObj);
        $content3 = fgetc($fileObj);
        $content4 = fgetc($fileObj);

        // 输出读取的这行的内容
        echo "$content1";
        echo "$content2";
        echo "$content3";
        echo "$content4";
        
        echo "<br>";
    }

    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"));
    fcloes($fileObj);
    
    echo $content;
?>

fread函数

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

filesize函数

  • filesize() 函数返回指定文件的大小。
  • 如果成功,该函数返回文件大小的字节数。如果失败,则返回 FALSE。
1.1.3 写入文件

与读取文件类似,我们可以使用fwrite()函数来向文件中写入内容。下面是一个写入文件的示例:

<?php
    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,"Hello,World!");
    echo "写入到文件中 $res 个字符";

    fclose($fileObj);
?>

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

1.1.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>";
?>

在上面的示例中,我们先将文件内容读取到$content变量中,然后使用str_replace()函数将字符串"大力"替换为"张美丽"。最后,我们将修改后的内容写入文件中。

1.1.5 删除文件

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

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

在上述代码中,我们使用unlink()函数删除了名为example.txt的文件。如果删除成功,则该函数返回true,否则返回fales。

1.1.6 关闭文件

fclose() 函数用于关闭打开的文件:

<?pphp
    $file = fopen("text.txt","r");
    
    //执行一些代码
    
    fclose($file);
?>
1.1.7 判断文件是否存在

file_exists()函数用于判断文件是否存在

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

is_dir() 函数用于判断目录是否存在

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

1.2 操作文件的函数

1.2.1 fopen() 函数

fopen() 函数用于在PHP中打开文件,它可以用来读取文件的内容,也可以用来写入文件的内容。下面是一个示例:

$file = 'test.txt';
$fp = fopen($file,'r');
while (!feof($fp)){
    $content = fgets($fp);
}
fclose($fp);
echo $content;
1.2.2 file_get_contents() 函数

file_get_content()函数用于将整个文件读入到一个字符串中,它是最简单也是最常用的读取文件内容的方法,使用起来也非常方便。下面是一个示例:

$file = "test.txt";
$content = file_get_contents($fiel);
echo $content;
1.2.3 readfile() 函数

readfile()函数用于将文件的内容读取到输出缓冲中,它可以用来输出文本文件、图片文件等。下面是一个示例:

$file = 'test.txt';
readfile($file);
1.2.4 file() 函数

file()函数用于读取文件的内容,将文件内容读取到一个数组中,每一行为数组中的一个元素。下面是一个示例:

$fiel = 'test.txt';
$content = file($file);
foreach($content as $line){
    echo $line;
}
  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ys52IT

你的鼓励将是我创作的最大动力你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值