https://www.jmqz1000.com

PHP文件操作之读写

  • PHP中对文件的操作:创建、读取、上传、编辑。 PHP提过了多种相关的函数

    1、readfile()

    int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )

    参数:

    filename:文件名; use_include_path:是否也在include_path中搜索文件; context:规定文件句柄的环境。Context 是可以修改流的行为的一套选项。

    返回值:返回从文件中读入的字节数。如果出错返回 FALSE 并且除非是以 @readfile() 形式调用,否则会显示错误信息。
    示例:
    1.php和new.txt在同一个文件夹

    1.php内容:

    <?php
    echo @readfile('new.txt');
    ?>

    new.txt内容:

    It's a new file.

    运行1.php结果:

    It's a new file.16

    2、fopen()

    resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )

    参数:

    filename:如果 filename 是 “scheme://…” 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。; mode:指定了所要求到该流的访问类型; use_include_path:是否也在include_path中搜索文件; context:规定文件句柄的环境。Context 是可以修改流的行为的一套选项。

    返回值:
    成功时返回文件指针资源,如果打开失败,本函数返回 FALSE。
    注:文件访问类型表

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

    3、fread()

    string fread ( resource $handle , int $length )
    从文件指针 handle 读取最多 length 个字节

    参数:

    head:文件系统指针,是典型地由 fopen() 创建的 resource(资源); length:最多读取 length 个字节。

    返回值:
    返回所读取的字符串, 或者在失败时返回 FALSE。

    4、fclose()

    bool fclose ( resource $handle )
    将指定文件关闭(好习惯,减少服务器资源占用)。文件指针必须有效,并且是通过 fopen() 或 fsockopen() 成功打开的。

    5、fgets()

    string fgets ( resource $handle [, int $length ] )
    从文件中读取一行数据。从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。

    6、feof()

    bool feof ( resource $handle )
    测试文件指针是否到了文件结束的位置。

    7、fgetc()

    string fgetc ( resource $handle )
    从文件中读取单个字符。

    8、fwrite()

    int fwrite ( resource $handle , string $string [, int $length ] )

    参数:

    handle:文件系统指针,是典型地由 fopen() 创建的 resource(资源); string:要写入的字符串; length:如果指定了 length,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况。

    返回值:
    fwrite() 返回写入的字符数,出现错误时则返回 FALSE 。

    9、一个超级简单的评论墙
    <html>
    <head>
    <title>评论墙</title>
    </head>
    <body>
    <!--评论表单-->
    <form method='post'  action='<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>'>
    昵称:<input type='text' name='name'></input>
    <br />
    评论:<textarea rows='5' cols='19' name='comment'></textarea>
    <br />
    <input type='submit' name='submit' value='提交'>
    </form>
    <!--保存评论到文件-->
    <?php
    /**
    文件的读写测试
    */
    if($_SERVER['REQUEST_METHOD']=='POST'){
    #打开文件
    $fname='D:\comment.txt';
    $file=fopen($fname,'a+');
    #写入数据
    $name=@$_POST['name'];
    $comment=@$_POST['comment'];
    $str=$name.'`'.$comment.'
    ';
    fwrite($file,$str);
    #关闭文件
    fclose($file);
    }
    ?>
    <!--显示评论内容-->
    <table cellpadding='4' >
    <tr>
    <td><b>昵称</b></td>
    <td><b>评论</b></td>
    </tr>
    <?php
    $fname='D:\comment.txt';
    $file=fopen($fname,'r');
    while(!feof($file)){
        $line=fgets($file);
        $arr=explode('`',$line);
        echo @'<tr><td>$arr[0]</td><td>$arr[1]</td></tr>';
    }
    fclose($file);
    ?>
    </table>
    
    </body>
    </html>

    版权声明:本文为Lshare原创文章,需要转载的请联系我,有问题欢迎评论或私信。

    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 相关文章阅读