"r" 只读方式打开,将文件指针指向文件头。这个文件头到底是哪里。比如一个文件的内容是abc,,所谓的文件头是指abc的前面那个位置,还是a字母这个位置所谓的EOF又在哪,是c这个位置,还是abc后面那个位置。============
比如我们经常用fgetc来读取文件,一个字符一个字符的,
<?php
    $fp=fopen("data.html","r");
    if(!$fp){
        echo "can't open the file!";
    }else{
        while(!feof($fp)){
              $char=fgetc($fp);
              echo $char."<br/>";
        }
    }
?>
是不是文件头是在a字母这个位置,而不是a前面那个位置,
然后执行一次fgetc,指针就下移动一位,所以当读完字母c的时候,
指针就在c的后面,也就是文件的EOF处,这个时候feof($fp)为true,程序不执行?

解决方案 »

  1.   

    所谓的文件头是指abc的前面那个位置所谓的EOF是abc后面那个位置
    while(!feof($fp)){
      echo ftell($fp), ' '; //这样应该就看清楚了
      $char=fgetc($fp);
      echo $char."<br/>";
    }
      

  2.   

    那不对呀。。既然一开始打印出0.那0应该就是字母a的位置阿尾巴是abc后面那个毕竟你只打印出4个位置,
    分别是a,b,c和EOF