PHP移动文件指针ftell()、fseek()、rewind()函数总结


Posted in PHP onNovember 18, 2014

在对文件进行读写过程中,有时需要在文件中跳转、同不同位置读取,以及将数据写入到不同的位置。例如,使用文件模拟数据库保存数据,就需要移动文件指针。指针的位置是以从文件头开始的字节数度量的,默认以不同模式打开文件时,文件指针通常在文件的开头或是结尾处,可以通过ftell()、fseek()和rewind()三个函数对文件指针进行操作,它们的原型如下所示:

int ftell(resource handle)         //返回文件指针的当前位置

int fseek(resource hanlde,int offset[,int whence])          //移动文件指针到指定位置

bool rewind(resource handle)          //移动文件指针到文件的开头

使用这些函数时,必须提供一个用fopen()函数打开的、合法的文件指针。函数ftell()获取由指定的资源中的文件指针当前位置的偏移量;函数rewind()将文件指针移回到指定资源的开头;而函数fseek()函数则将指针移动到第二个参数offset指定的位置,如果没有提供第三个可选参数whence,则位置将设置为从文件开头的offset字节处。否则,第三个参数whence可以设置为三个可能的值,它将影响指针的位置。

★SEEK_CUR:设置指针位置为当前位置加上第二个参数所提供的offset字节。
★SEEK_END:设置指针位置为EOF加上offset字节。在这里,offset必须设置为负值。
★SEEK_SET:设置指针位置为offset字节处。这与忽略第三个参数whence效果相同。

如果fseek()函数执行成功,将返回0,失败则返回-1.如果将文件以追加模式“a”或“a+”打开,写入文件的任何数据是会被附加在后面,不会管文件指针的位置。代码如下所示:

<?php

$fp = fopen('data.txt' ,'r')or die("文件打开失败");

 

echo ftell($fp)."<br>";         //输出刚打开文件的指针默认位置,指针在文件的开头位置为0

echo fread($fp, 10)."<br>";        //读取文件中的前10个字符输出,指针位置发生了变化

echo ftell($fp)."<br>";           //读取文件的前10个字符之后,指针移动的位置在第10个字节处

 

fseek($fp, 100,SEEK_CUR);       //又将指针移动到倒数10个字节位置处

echo ftell($fp); //文件的位置在110个字节处

echo fread($fp,10)."<br>";     //读取110到120字节数位置的字符串,读取后指针的位置为120

 

fseek($fp,-10,SEEK_END);         //又将指针移动到倒数10个字节位置处

echo fread($fp, 10)."<br>";        //输出文件中最后10个字符

 

rewind($fp);          //又移动文件指针到文件的开头

echo ftell($fp);           //指针在文件的开头位置,输出0

 

fclose($fp);

?>
PHP 相关文章推荐
一棵php的类树(支持无限分类)
Oct 09 PHP
生成静态页面的PHP类
Nov 25 PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
Oct 12 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
Apr 20 PHP
php设计模式 Builder(建造者模式)
Jun 26 PHP
hadoop常见错误以及处理方法详解
Jun 19 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
Jan 14 PHP
php版微信公众号接口实现发红包的方法
Oct 14 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
Nov 30 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
Sep 26 PHP
PHP addslashes()函数讲解
Feb 03 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
Mar 16 PHP
PHP文件锁函数flock()详细介绍
Nov 18 #PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
Nov 18 #PHP
PHP操作文件的一些基本函数使用示例
Nov 18 #PHP
一个经典的PHP文件上传类分享
Nov 18 #PHP
php数组查找函数总结
Nov 18 #PHP
一个经典的PHP验证码类分享
Nov 18 #PHP
一个经典实用的PHP图像处理类分享
Nov 18 #PHP
You might like
多文件上传的例子
2006/10/09 PHP
PHP 二维数组根据某个字段排序的具体实现
2014/06/03 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
2016/04/23 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
JQuery 常用操作代码
2010/03/14 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
jquery移动listbox的值原理及代码
2013/05/03 Javascript
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
2013/12/31 Javascript
js中scrollTop()方法和scroll()方法用法示例
2016/10/03 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
JavaScript中的&quot;=、==、===&quot;区别讲解
2019/01/22 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
JS实现可控制的进度条
2020/03/25 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
2020/09/21 Javascript
Python实现多进程共享数据的方法分析
2017/12/04 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
德国著名廉价网上药店:Shop-Apotheke
2017/07/23 全球购物
Topman美国官网:英国著名的国际平价时尚男装品牌
2017/12/22 全球购物
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
函授本科毕业自我鉴定
2013/10/09 职场文书
八项规定整改措施
2014/02/12 职场文书
模具专业毕业生自荐书范文
2014/02/19 职场文书
预备党员2014全国两会学习心得体会
2014/03/10 职场文书
供电工程专业求职信
2014/08/09 职场文书
卢旺达饭店观后感
2015/06/05 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书
实习报告怎么写
2019/06/20 职场文书
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript