>백엔드 개발 >PHP 튜토리얼 >文件头到底是哪里~~

文件头到底是哪里~~

WBOY
WBOY원래의
2016-06-23 14:09:152676검색

"r" 只读方式打开,将文件指针指向文件头。

这个文件头到底是哪里。

比如一个文件的内容是abc,,

所谓的文件头是指abc的前面那个位置,还是a字母这个位置。。。。。。

所谓的EOF又在哪,是c这个位置,还是abc后面那个位置。。。。

============
比如我们经常用fgetc来读取文件,一个字符一个字符的,
    $fp=fopen("data.html","r");
    if(!$fp){
        echo "can't open the file!";
    }else{
        while(!feof($fp)){
              $char=fgetc($fp);
              echo $char."
";
        }
    }
?>
是不是文件头是在a字母这个位置,而不是a前面那个位置,
然后执行一次fgetc,指针就下移动一位,所以当读完字母c的时候,
指针就在c的后面,也就是文件的EOF处,这个时候feof($fp)为true,程序不执行?


回复讨论(解决方案)

所谓的文件头是指abc的前面那个位置

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

那不对呀。。既然一开始打印出0.。。。

那0应该就是字母a的位置阿。。。尾巴是abc后面那个。。。

毕竟你只打印出4个位置,
分别是a,b,c和EOF。。。

语文啊,语文

语文啥呀 哈哈。

版主第一次出错

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.