$file = fopen("welcome.txt", "r") while(!feof($file))
  {
  echo fgets($file). "<br />";
  }fclose($file);
没有一个$i++的东西,那循环是怎么产生的呢?我的理解是,用fopen()打开的$file,每调用一次,就自动走到下一行...

解决方案 »

  1.   

    fopen只是打开一个file resource,文件本身是不存在行或者列的概念的,它只是一个字节流,
    fgets每次读若干字符,当读到指定长度-1,或者遇到\n,或者遇到EOF时返回
    早期的php,fgets有最长限制,到达限制后会返回,不管是否遇到上述3个条件
    循环是根据feof的返回值判断的,feof返回真值的时候,表明文件已经读完
      

  2.   

    读的字节数是php内部控制的吧
      

  3.   

    我大概明白了,就是通常情况下,fgets($file)每调用一回就读一行,从上次调用时读取的末尾开始读。