美文网首页
PHP操作文件

PHP操作文件

作者: 老衲灬 | 来源:发表于2018-07-01 22:45 被阅读5次
    1、打开文件fopen()

    1)描述:打开文件或者 URL
    2)语法:resource fopen ( string $filename , string $mode )
    3)参数:$filename指定要打开的目标文件或URL;$mode指定文件的打开方式。
    4)提示:为移植性考虑,在用 fopen()打开文件时总是使用 'b' 标记。
    5)返回值:成功时返回文件指针资源,如果打开失败,本函数返回 FALSE。

    2、打开文件的方式 图片.png
    3、关闭文件fclose()

    1)描述:关闭一个已打开的文件指针
    2)语法:bool fclose ( resource $handle )
    3)参数:$handle必须是由fopen()打开的文件指针。

    4、读取指定大小文件内容fread()

    1)描述:读取文件(可安全用于二进制文件)
    2)语法:string fread ( resource $handle , int $length )
    3)参数:$handle是由fopen()创建的handle$length最多读取的字节数。
    4)提示:在区分二进制文件和文本文件的系统上(如 Windows)打开文件时,fopen() 函数的 mode 参数要加上'b'。
    5)返回值:返回所读取的字符串, 或者在失败时返回 FALSE。
    示例代码:

    //声明文件类型为image/jpeg(MIME)
    header('content-type:image/jpeg');
    $filename='./abc.jpg';
    //以只读方式打开
    $handle=fopen($filename,'rb');
    //读取文件内容
    $str1=fread($handle,filesize($filename));
    //输出图像
    echo $str1;
    
    图片.png
    5、读取一行内容fgets()

    1)描述:从文件指针中读取一行
    2)语法:string fgets ( resource $handle [, int $length ] )
    3)参数:
    a、$handle:文件指针必须是有效的
    b、$length:从 handle指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。
    4)返回值:从指针 handle 指向的文件中读取了 length - 1 字节后返回字符串。 如果文件指针中没有更多的数据了则返回 FALSE。
    示例代码:

        $filename='./mark/bin.txt';
        //返回文件指针资源
        $handle=fopen($filename,'rb');
    
        //读取文件一行内容
        $str1=fgets($handle);
        echo iconv('gbk','utf-8',$str1).'<br>';
    
        // //读取文件全部内容
        // $str2=fread($handle,filesize($filename));
        // echo iconv('gbk','utf-8',$str2); 
        
        // 关闭一个已打开的文件指针
        fclose($handle);
    
    图片.png 图片.png 图片.png
    6、读取文件内容到数组中file()

    1)描述:把整个文件读入一个数组中
    2)语法:array file ( string $filename [, int $flags = 0 ] )
    3)参数:
    a、$filename文件的路径;
    b、$flags附加选项;
    c、FILE_USE_INCLUDE_PATH(1):在include_path 中查找文件;
    d、FILE_IGNORE_NEW_LINES(2):在数组的每个元素末尾不添加换行符;
    e、FILE_SKIP_EMPTY_LINES(4):跳过空行。
    4)注意:不需要打开文件和关闭文件。

    图片.png
    7、读取文件内容到字符串中file_get_contents()

    1)描述:将整个文件读入一个字符串,不需要打开文件和关闭文件。
    2)语法:string file_get_contents ( string $filename )
    3)返回:返回读取的数据,或在失败时返回false。

    图片.png 图片.png
    8、写入文件

    1)描述:写入文件(可安全用于二进制文件)
    2)语法:int fwrite ( resource $handle , string $string )
    3)返回:返回写入的字符数,出现错误时则返回 FALSE 。

    图片.png 注意:第八行回车后的第九行前边不能有空格,必须靠最左边,不然结果会写入空格。
    9、将一个字符串写入文件

    1)描述:和依次调用 fopen(),fwrite()以及 fclose() 功能一样。
    2)语法:int file_put_contents ( string $filename , mixed $data [, int $flags = 0] )
    3)参数:
    a、$filename要被写入数据的文件名。
    b、$data要写入的数据。类型可以是 string,array(一维数组)。
    c、$flags附加选项。
    d、FILE_USE_INCLUDE_PATH(1) 在 include 目录里搜索 filename
    e、FILE_APPEND(8)如果文件 filename已经存在,追加数据而不是覆盖。
    f、LOCK_EX(2)在写入时获得一个独占锁。
    4)提示:如果文件不存在,则会自动创建。如果文件过大,不能一次性处理。
    5)返回:该函数将返回写入到文件内数据的字节数,失败时返回FALSE。

    图片.png
    10、拷贝文件

    1)描述:将文件从 source 拷贝到 dest。
    2)语法:bool copy ( string $source , string $dest )
    3)提示:如果目标文件存在,则会覆盖。

    图片.png
    11、删除文件

    1)语法:bool unlink ( string $filename )
    2)返回:成功时返回 TRUE, 或者在失败时返回 FALSE。
    3)提示:可以删除虚拟空间之外的文件,但必须使用相对路径(../),但必须有权限。
    4)注意:删除的文件不会进入回收站。

    图片.png
    12、header函数相关

    网页跳转:header(“location:index.html”)
    网页刷新:header(“refresh:3; url=index.html”)
    网页字符集:header(“content-type:text/html;charset=utf-8”)
    声明内容为图片:header(“content-type:image/png”)
    附件处理方式:header(“content-disposition:attachment;filename=filename”)
    声明文件内容类型为八位字节流:header(“content-type:application/octet-stream”)

    13、其它的文件操作函数

    1)filesize(),可以获取文件大小,单位为字节。
    2)is_writable(),判断文件是否可写。
    3)is_readable(),判断文件是否可读。
    4)feof(),判断文件指针是否到达文件结尾。
    5)filectime(),获取创建文件的时间。
    6)fileatime(),获取文件最新访问时间。
    7)filemtime(),获取文件最后修改时间。
    示例代码:

            $filename='./mark/bin.txt';
    echo "bin.txt文件大小:".filesize($filename)."字节<br>";
    echo "bin.txt文件可写性:".is_writable($filename)."<br>";
    echo "bin.txt文件可读性:".is_readable($filename)."<br>";
    echo "bin.txt文件创建时间:".
        date('Y-m-d h:i:s',filectime($filename))."<br>";
    echo "bin.txt文件最新访问时间:".
        date('Y-m-d h:i:s',fileatime($filename))."<br>";
    echo "bin.txt文件最后修改时间:".
        date('Y-m-d h:i:s',filemtime($filename))."<br>";
    $handle=fopen($filename,'rb');
    
    //通过判断文件指针是否到达结尾,来循环读取文件的所有行内容  
    while(!feof($handle)){
        echo fgets($handle)."<br>";
    }
    
    结果如下: 图片.png

    相关文章

      网友评论

          本文标题:PHP操作文件

          本文链接:https://www.haomeiwen.com/subject/jnwhuftx.html