php如何读取文件的部分类容

时间:2016-08-22
文件操作是php中非常基础的知识点,大多数我们读取文件是将文件内容全部读取出来,但有时候我们只需要读取文件部分内容,那么该如何实现呢,本文章向大家介绍php如何读取文件的部分类容,需要的朋友可以参考一下。

在php文件操作函数中,有一个函数可以用于文件指针定位,该函数是fseek(),关于该函数的描述,我们看一下php手册是怎么说的。

fseek() 函数在打开的文件中定位。

该函数把文件指针从当前位置向前或向后移动到新的位置,新位置从文件头开始以字节数度量。

如果成功该函数返回 0,如果失败则返回 -1。请注意,移动到文件末尾(EOF)之后的位置不会产生错误。

语法

fseek(file,offset,whence)

参数

参数 描述
file 必需。规定要在其中定位的文件。
offset 必需。规定新的位置(从文件头开始以字节数度量)。
whence 可选。(PHP 4 中新增的)。 可能的值:
  • SEEK_SET - 设定位置等于 offset。默认。
  • SEEK_CUR - 设定位置为当前位置加上 offset。
  • SEEK_END - 设定位置为文件末尾(EOF)加上 offset(要移动到文件末尾之前的位置,offset 必须是一个负值)。

从上面描述可知,我们可以使用该函数来实现读取文件的部分类容,具体实现代码如下:

<?php
    $filename = "data.txt";
    $fp = fopen( $filename, "r" ) or die("Couldn't open $filename");
    $fsize = filesize($filename);
    $halfway = (int)( $fsize / 2 );
    /* http://www.manongjc.com/article/1388.html */
    print "Halfway point: $halfway <br/>\n";
    fseek( $fp, $halfway );
    $chunk = fread( $fp, ($fsize - $halfway) );
    print $chunk;
?>