首页 >社区问答列表 >echo fseek($fp,10);输出怎么变成0了

echo fseek($fp,10);输出怎么变成0了

echo fseek($fp,10);

  • 卿立平
  • 卿立平     2018-01-28 21:30:33 5楼

    可以查一下php7手册,fseek函数是指针向后移动指定字节的函数。但是这个指针移动是有一点的要求的,有三种结果:1、是在设定位置(文件的开头)向后加要指定的字节;2、是在设定位置(文件的开头)向文件尾加要指定的字节 ,3、设定的位置(文件指针的定前位置)等于要增加的字节数。
    此函数的返回值是:增加成功则返回 0;否则返回 -1。
    而此时我们用fseek($fp,10) ,此时的理解应该是指针回到文件开头,然后再向后移动了10个字节。
    我们来测试一下,我有一个文件叫“mylove.txt”,内容如下:“我们要牢记人民对美好生活的向往就是我们的奋斗目标,坚持以人民为中心的发展思想,努力抓好保障和改善民生各项工作,不断增强人民的获得感、幸福感、安全感,不断推进全体人民共同富裕。”2017年10月25日,习近平总书记在十九届中共中央政治局常委同中外记者见面时的讲话,掷地有声。”

    执行程序:

    <?php

    $fp = fopen('D:\phpStudy\PHPTutorial\WWW\demo\mylove.txt' , 'r+');

    // 读取10个字符

    echo fread($fp, 10); //通过fread读取文件时,文件指针读取完指定长度字符串时,指针会停留在指定长度的位置。

    //指针设置回到开始处

    rewind($fp);

    echo '<br/>';

    echo fread($fp,10); // 此时读取完之后,指针停在第10个字节处。输出内容“我们要牢记”

    echo '<br/>';

    echo fseek($fp,20); //文件指针从文件头向后移动20个字符。说明这个操作成功了,所以返回值为0。但此时的指针位置应该处在第20个字符位置处。

    echo '<br/>';

    echo fread($fp,10);// 此时应该人第20个字节字符处向后读取10个字节的长度,所以输出的应该是“生活的向往”

    echo '<br/>';

    ?>

     

    程序输出的结果是:

    我们要牢记
    我们要牢记
    0
    生活的向往

    结合这个案例,应该就可以更好的理解fseek ()函数了。最好还是查看一下手册理解一下。

    +0 添加回复

  • 回复
  • 卿立平
  • 卿立平     2018-01-28 21:18:53 4楼

    可以查一下php7手册,fseek函数是指针向后移动指定字节的函数。但是这个指针移动是有一点的要求的,有三种结果:1、是在设定位置向后加要指定的字节;2、是在设定位置向文件尾加要指定的字节 ,3、设定的位置等于要增加的字节数。
    此函数的返回值是:增加成功则返回 0;否则返回 -1。

    +0 添加回复

  • 回复