首先,使用fgets($handle 1024)函数读取一个文件的第一行内容之后,这时候文件指针在什么位置?是不是应该指在第二行的第一个字符处?我建立了一个文件,第一行的内容是'123456789',当读取这一行内容之后我用ftell($handle)跟踪文件指针位置,显示的是“11”,该怎样理解?

解决方案 »

  1.   

    你的文件应该有换行,而且是windows格式换行
    \r \n分别占一个
      

  2.   

      如果是的话,我对fseek()这个函数就有点不解了,就下边的代码吧:<?php
         $handle=fopen("little.txt","r");
         $buffer=fgets($handle,1024);
         echo $buffer."<br>";
         echo ftell($handle);
         fseek($handle,6,seek_cup);
         $buffer=fgets($handle,1024);
         echo $buffer."<br>";
         fclose($handle);
    ?>
    文件"little.txt"的第一行是“123456789”第二行是“abcdefghi”,这段代码的运行结果是:
    123456789
    11
    789
    首先我对这个“11”不是很理解,既然此时的指针是位于第二行第一个字符,而这个字符不是整个文件的第10个字符吗?为什么结果不是“9”呢?  然后fseek($handle,6,seek_cup);的作用不是在当前指针的位置上(也就是第二行首字符)移动6个字节吗?那么结果为什么不是"ghi"?
    希望大家能帮我解答下!!!
      

  3.   

    \r\n你看不见但也是字符,所以你会觉得多了两个,如果你把格式改成unix那就变成10,因为只有一个\n了另外我不知道你的seek_cup是什么,也许你应该用SEEK_CUR