FSEEK()的功能究竟怎么个用法才好? 这个问题,我个人认为只能从你的文件格式上做手脚,将你的文件格式化,如:一行固定多上字符,不够的补空格,超出的删除,这样才可以使用fseek准确的定位. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把文件中你要读出的部分用特殊符号来分开.如一个文件内容为:His name is Jackson.你只想读出这个文件中的姓名,而且假如在文件当中很难确定它的位置,这时你在写文件的时候用一种特殊的格式,比如:His name is |Jackson| (其它的特殊字符都可以)这样判断这个字符的起始位置,然后fseek定位到这个位置,再得到终止位置,得到长度,最后用fread读出来. 使用类似索引文件的方法。设有数据文件data.txt,其内容为111122222334444444455566666666我们可以给他作一个索引文件data.ind,方法如下:$fp = fopen("data.txt","r");$ind = fopen("data.ind","w");do { $n = ftell($ind); // 保存独立行,行首偏移量 fputs($ind,sprintf("%10d",$n); // 假定数据文件大小<10000000000字节}while($buffer=fgets($fp,4096)); // 假定独立行长度<=4096字节fclose($fp);fclose($ind);// 至此,索引文件创建完毕根据索引定位数据$h = 4; // 假定需要读取第4行内容$ind = fopen("data.ind","r");fseek($ind,($h-1)*10);$n = fread($ind,10);$fp = fopen("data.txt","r");fseek($fp,$n);$buf = fgets($fp,4096);// 此时$buf中的内容即为文件data.txt第4行的内容// 当数据文件较大时,这是非常高效的 对于楼主的具体应用fseek函数是不起作用的,你需要的是串的定位。只要你知道特征串就行了。 $count为什么输出为0!!指教 php程序交流 自学PHP入门到精通要买什么书看啊? PHP 表单计算 请问如何导出csv文件 请问哪里有纯PHP版的diff,比较两个文件的异同 我已经加载了我加载了php_iconv.dll模块,但是却Call to undefined function: iconv() 如何定義數組 今天用上了zend studio 2,感觉很差劲。用过的朋友来讨论一下。 奇怪的错误(可以去掉session测试一下)大分相送。答对者在送100 求助:如何让用户在用IE工具条上的Back键返回某页面时。。。 怎样实现在线用户列表?
如一个文件内容为:
His name is Jackson.
你只想读出这个文件中的姓名,而且假如在文件当中很难确定它的位置,
这时你在写文件的时候用一种特殊的格式,比如:
His name is |Jackson| (其它的特殊字符都可以)
这样判断这个字符的起始位置,然后fseek定位到这个位置,
再得到终止位置,得到长度,最后用fread读出来.
设有数据文件data.txt,其内容为
1111
22222
33
44444444
555
66666666我们可以给他作一个索引文件data.ind,方法如下:
$fp = fopen("data.txt","r");
$ind = fopen("data.ind","w");
do {
$n = ftell($ind); // 保存独立行,行首偏移量
fputs($ind,sprintf("%10d",$n); // 假定数据文件大小<10000000000字节
}while($buffer=fgets($fp,4096)); // 假定独立行长度<=4096字节
fclose($fp);
fclose($ind);
// 至此,索引文件创建完毕根据索引定位数据$h = 4; // 假定需要读取第4行内容
$ind = fopen("data.ind","r");
fseek($ind,($h-1)*10);
$n = fread($ind,10);
$fp = fopen("data.txt","r");
fseek($fp,$n);
$buf = fgets($fp,4096);
// 此时$buf中的内容即为文件data.txt第4行的内容
// 当数据文件较大时,这是非常高效的
只要你知道特征串就行了。