zoukankan      html  css  js  c++  java
  • php 读取文件

     

    我们在上一节当中,我们讲到了可以进行文件操作。而读取文件是一个最最常用的功能。大理石平台精度等级

    readfile读取文件

    那如何读取一个文件呢?我们先学一个函数。

    int readfile ( string $文件名)

    功能:传入一个文件路径,输出一个文件。

    下面的这一段代码中,只要传入文件名或者指定的文件路径就把文件读取出来了。

    <?php
       //linux类的读了方式
       readfile("/home/paul/test.txt");
       //windows类的读取方式
       readfile("c:\boot.ini");
    ?>

    注意:上面的代码中windows的斜线是斜线,可能会转义掉一些字符。因此,我们写的时候写上两个斜线。

    file_get_contents打开文件

    上面的是单纯打文件就直接输出了,有没有打开文件后,能够赋值给一个变量的操作方式呢。

    PHP当然会提供这种方式。这个方式就是PHP打开文件并返回内容的方式之一,我们来看看函数:

    string file_get_contents ( string filename)

    功能:传入一个文件或文件路径,打开这个文件返回文件的内容。文件的内容是一个字符串。

    <?php
    
       $filename = 'NoAlike.txt';
    
       $filestring = file_get_contents($filename);
       echo $filestring;
    ?>

    上面的代码,就打开了一个文件,并且将文件当中的内容进行了输出。

    我们来针对之前的知识把代码进行一下扩展。用一用之前的知识点。

    <?php
       //假设我们有一个多行的文件叫NoAlike.txt,没有的话你可以新建一个这个文件
        $filename = 'NoAlike.txt';
    
    
       //打开这个文件,将文件内容赋值给$filestring
       $filestring = file_get_contents($filename);
    
       //因为每一行有一个回车即
    ,我用
    来把这个字符串切割成数组
       $filearray = explode("
    ", $filestring);
    
       //把切割成的数组,下标赋值给$key,值赋值给$val,每次循环将$key加1。
       while (list($key, $val) = each($filearray)) {
           ++$key;
           $val = trim($val);
    
           //用的单引号,单引号不解释变量进行了拼接而已
           print 'Line' . $key .':'.  $val.'<br />';
       }
    ?>

    上面,我们就把之前所学的知识进行了组合。

    fopen、fread、fclose操作读取文件

    上面file_get_contents打开文件的方式简单、粗暴。下面的

    resource fopen ( string $文件名, string 模式)

    string fread ( resource $操作资源, int 读取长度)

    bool fclose ( resource $操作资源 )

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

    1.打开资源

    2.使用相关函数进行操作

    3.关闭资源

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

    1.文件打开的路径

    2.打开文件的模式

    返回类型是一个资源类型,我们第一次遇到了之前基础类型的时候讲到的资源类型。
    资源类型需要其他的函数来操作这个资源。所有的资源有打开就要有关闭。

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

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

    了解完函数,后两个函数比较简单。而fopen函数的模式到底是什么,fopen的模式有下面几个,我们来讲一下fopen的模式:

    模式说明
    r 只读方式打开,将文件指针指向文件头。
    r+ 读写方式打开,将文件指针指向文件头。
    w 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建
    w+ 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建
    a 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建
    a+ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之
    x 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建
    x+

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

    接下来,我们只来学习r模式,下结课我们在将写入的时候再来讲讲其他几个模式。

    我们先会读取文件了,才能很好的掌握写入文件。

    1.打开文件

    <?php
       //你可以创建一个NoAlike.txt,以只读模式打开
       $fp = fopen('NoAlike.txt', "r");
    
    
       //var_dump()操作一下$fp看看效果,输出的是不是只有类型提示的是resource
       var_dump($fp);
    ?>

    2.读取文件

    <?php
       $fp = fopen('NoAlike.txt', "r");
    
       //打开一个文件类型后,读取长度
       $contents = fread($fp, 1024);
    ?>

    3.关闭文件

    <?php
       $fp = fopen($filename, 'r');
       $contents = fread($fp, 1024);
       fclose($fp);
       echo $contents;
    ?>

    其他注意事项:

    模式说明
    t windows下将 转为
    b 二进制打开模式


    说明:

    实验无法让肉眼看到这个实验效果。大家记住有这个特点即可。

    Windows 下提供了一个文本转换标记('t')可以透明地将 转换为 。
    与此对应还可以使用 'b' 来强制使用二进制模式,这样就不会转换数据。要使用这些标记,要么用 'b' 或者用 't' 作为 mode 参数的最后一个字符。

  • 相关阅读:
    详解Twitter开源分布式自增ID算法snowflake(附演算验证过程)
    分布式自增ID算法-Snowflake详解
    关于分布式唯一ID,snowflake的一些思考及改进(完美解决时钟回拨问题)
    分布式ID增强篇--优化时钟回拨问题
    专题:性能调优之工具---perf
    Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,消息队列有什么优点和缺点
    Zookeeper框架Curator使用
    Zookeeper 3.5启动时 8080端口被占用
    Qt状态机框架(状态机就开始异步的运行了,也就是说,它成为了我们应用程序事件循环的一部分了)
    Qt插件开发入门(两种方法:High-Level API接口,Low-Level API接口)
  • 原文地址:https://www.cnblogs.com/furuihua/p/12073668.html
Copyright © 2011-2022 走看看