php7实践指南-ch13目录文件文件指针

PHP可以实现文件指针的定位及查询,从而实现所需信息的快速查询。指针的位置就是从文件头部开始的字节数,默认的文件指针通常存在于文件头或结尾,可以通过PHP提供的fseek()、feof()和ftell()等函数对指针位置进行操作。

● rewind()

倒回文件指针的位置,语法如下

function rewind ($handle) bool

其作用是将handle的文件位置指针设为文件流的开头。

● fseek()

在文件指针中定位,语法如下:

function fseek ($handle, $offset, $whence = SEEK_SET) int

该函数的作用是在与handle关联的文件中设定文件指针位置。新位置从文件头开始以字节数度量,是以whence指定的位置再加上offset。成功时返回0,否则返回-1,移动到EOF之后的位置不算错误。

● ftell()

返回文件指针读写的位置,语法如下:

function ftell ($handle) false|int

该函数返回由handle指定的文件指针的位置,也就是文件流中的偏移量。

下面演示一个示例介绍这几个函数的用法。

假设目录中有这样一个文件1.txt,里面的内容为:abcdefghijklmnopqrstuvwxyz。

编写zhizhen.php代码如下:

<?php
$filename="1.txt";
if(is_file($filename)){
    echo "文件总字节数: ".filesize($filename)."<br/>";
    $file=fopen($filename,"r");
    echo "初始指针位置是: " .ftell($file)."<br/>";
    echo "输出当前指针后面的内容:".fgets($file)."<br/>";

    fseek($file,5);
    echo "使用fseek()函数后指针位置: ".ftell($file)."<br/>";

    //当前指针后面的内容从5开始,fgets()函数输出5以后的内容
    echo "输出当前指针后面的内容:".fgets($file)."<br/>";

    if(feof($file))
        echo "当月前指针指向文件末尾: ".ftell($file)."<br/>";

    rewind($file);
    echo "使用rewind()函数后指针的位置: " .ftell($file)."<br/>";

    //fgets()函数执行成功时从参数handle所指向的文件中读取一行
    //并返回长度最多为length-1字节的字符串,因此设置06时可以输出前5个字节内容
    echo "输出前5个字节内容: " .fgets($file,6);

    fclose($file);
}else
{
    echo "文件不存在";
}

执行zhizhen.php文件,将会在浏览器中打印出以下结果:

文件总字节数: 26
初始指针位置是: 0
输出当前指针后面的内容:abcdefghijklmnopqrstuvwxyz
使用fseek()函数后指针位置: 5
输出当前指针后面的内容:fghijklmnopqrstuvwxyz
当月前指针指向文件末尾: 26
使用rewind()函数后指针的位置: 0
输出前5个字节内容: abcde

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值