温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP中如何读取文件

发布时间:2021-10-18 16:32:32 来源:亿速云 阅读:122 作者:iii 栏目:编程语言

这篇文章主要介绍“PHP中如何读取文件”,在日常操作中,相信很多人在PHP中如何读取文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP中如何读取文件”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

PHP中如何读取文件

在我们使用电脑时,我们都会使用电脑来打开关闭一个文件,创建一个文件或者上传一个文件。那么这些操作在代码里能不能做呢?如果能做的话,应该怎样去做?其实很简单,学习文件处理实际上就是学习文件处理的函数,再结合之前所学习的内容。那么接下来我们一起来看看吧。

读取文件算得上是我们再日常使用中最常见的一个操作了,那么再代码里要怎样实现。

下面来介绍一下如何使用 PHP 中的函数来读取文件内容。

fgetc():从文件中读取一个字符

在使用这些函数读取文件之前,我们需要先在服务器根目录下建立一个文本文件(这里我们以 text.txt 为例),文本内容如下:

PHP中如何读取文件

接下来我们来看一看,fgetc()在使用中应该怎样去用,输出的结果又是如何:

<?php
    header("Content-Type: text/html;charset=utf-8");   
    $handle = fopen('test.txt', 'r');             
   
$a = fgetc($handle)  ;
       echo $a; 
       
?>

输出结果:

PHP中如何读取文件

fgetc只能读取一个字符,我们可以利用之前讲到的循环来进行结合,就可以得到下面示例:

<?php
    header("Content-Type: text/html;charset=utf-8");    //设置字符编码
    $handle = fopen('test.txt', 'r');                 //打开文件
    if (!$handle) {                                     //判断文件是否打开成功
        echo '文件打开失败!';
    }
    while (false !== ($char = fgetc($handle))) {        //循环读取文件内容
        echo $char;
    }
    fclose($handle);                                    //关闭文件
?>

输出结果:

PHP中如何读取文件

fgets()fgetss():逐行读取文件

<?php
    header("Content-Type: text/html;charset=utf-8");   
    $handle = fopen('test.txt', 'r');             
   
$a = fgets($handle)  ;
       echo $a; 
       
?>

输出结果:

PHP中如何读取文件

fgetss()函数是fgets()的一个变式,也是用来读取一行数据,读取的同时它还会过滤掉读取内容中的PHP和HTML标记,

可以看出,通过fgets可以逐行读取文件,同时可以和上文一样,我们可以利用循环来读取全部文件。

示例如下:

<?php
    $handle = @fopen("test.txt", "r");
    if ($handle) {
        while (($info = fgets($handle, 1024)) !== false) {
            echo $info.'<br>';
        }
        fclose($handle);
    }                                
?>

输出结果:

PHP中如何读取文件

fread():读取文件(任意长度)

PHP中如何读取文件

<?php
    $filename = "test.txt";
    $handle = fopen($filename, "r");
    $contents = fread($handle, '6');
    echo '从文件中读取 6 个字符长度:'.$contents.'<br>';
    rewind($handle);
    $contents = fread($handle, filesize($filename));
    echo '读取全部的文件内容:'.$contents;
    fclose($handle);
?>

输出结果:

PHP中如何读取文件

readfile():读取全部文件

<?php
    $file = 'test.txt';
    $info = readfile($file);
?>

输出结果:

PHP中如何读取文件

file():把整个文件读入一个数组中

<?php
    $file = 'test.txt';
    $arr  = file($file, FILE_IGNORE_NEW_LINES);
    $arr2 = file($file);
    echo '<pre>';
    var_dump($arr);
    var_dump($arr2);
?>

输出结果:

PHP中如何读取文件

file_get_contents():将文件读入一个字符串

首先,我们先创建一个test.txt文件

PHP中如何读取文件

然后输入:

<?php
    $a = 'test.txt';
   $b = file_get_contents($a);
   //因为每一行有一个回车即\n,我用\n来把这个字符串切割成数组
   $c = explode("\n", $b);
   //把切割成的数组,下标赋值给$key,值赋值给$val,每次循环将$key加1。
   while (list($key, $val) = each($c)) {
       ++$key;
       $val = trim($val);
       //用的单引号,单引号不解释变量进行了拼接而已
       print 'Line' . $key .':'.  $val.'<br />';
   }
?>

通过与我们之前学的知识结合起来,输出结果:

PHP中如何读取文件

这就是我们学习的知识进行了整合,先是通过file_get_contents先打开文件,然后在通过list each语句和while循环,得到了输出结果。

扩展知识:fopen、fread、fclose操作读取

上述的file_get_contents打开文件的方式简单又粗暴,那么接下来的几个

resource fopen ( string $文件名, string 模式)
string fread ( resource $操作资源, int 读取长度)
bool fclose ( resource $操作资源 )

通过上面的函数我们来讲解资源类型的通常操作方式:

  • 打开资源

  • 使用相关函数进行操作

  • 关闭资源

fopen函数 fopen函数的功能是打开文件,参数主要有两个:

  • 文件打开的路径

  • 打开文件的模式

返回类型是一个资源类型,资源类型需要其他的函数来操作这个资源。所有的资源有打开就要有关闭。

fread函数: 函数的功能的功能是读取打开的文件资源。读取指定长度的文件资源,读取一部份向后移动一部份。至到文件结尾。

fclose函数 :fclose函数的功能是关闭资源。资源有打开就有关闭。

接下来给大家介绍一下fopen函数的模式:

  • r   只读方式打开,将文件指针指向文件头。

  • r+    读写方式打开,将文件指针指向文件头。

  • w    写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建

  • w+   读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建

  • a    写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建

  • a+    读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之

  • x   创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建

  • x+    创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建

到此,关于“PHP中如何读取文件”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI