文件读取失败 . 请看是什么原因 .
学习fseek函数之后 . 自己写了一个读文件尾部几行类似 linux tail 的功能 . 运行之后出现问题 .
ftell函数返回1 , 然后使用fread去读取却读取不到内容,
但是再次重新调用 fseek($handle,1) 之后,使用fread就能读取到内容了 .
是我哪里弄错了吗?
php代码如下
文本文件如下
--------------------------------------------------------------------------------------
改了一下,使用fgetc读取当前字符,前面的读取到的是ascii 0,后面的读取到的是ascii 13
结果是
确定是这里的问题(遇到空字符fread被截断了) ,但是ftell返回的为什么是1 . 是我写的有问题 还是这里是一个bug?
ftell函数返回1 , 然后使用fread去读取却读取不到内容,
但是再次重新调用 fseek($handle,1) 之后,使用fread就能读取到内容了 .
是我哪里弄错了吗?
php代码如下
<?php
$demo = 'demo.txt';
$handle = fopen($demo, 'r');
$readLines = 4; $pos = -1; $data = array();
while ($readLines){
$curChar = '';
while ($curChar != "\n"){
$ftell = ftell($handle);
fseek($handle, $pos,SEEK_END);
$curChar = fgetc($handle);
$pos--;
if(!($ftell-1)) break;
}
$readLines--;
}
//指针==1 但是读不到内容
echo '#'.$curPointer = ftell($handle).'#';
var_dump(fread($handle,4096));
echo '<br />';
//调用fseek重置指针之后 可以获取到内容
fseek($handle, $curPointer);
echo '#'.ftell($handle).'#';
var_dump(fread($handle,4096));
文本文件如下
1
2
3
4
--------------------------------------------------------------------------------------
改了一下,使用fgetc读取当前字符,前面的读取到的是ascii 0,后面的读取到的是ascii 13
<?php
$demo = 'demo.txt';
$handle = fopen($demo, 'r');
$readLines = 4; $pos = -1; $data = array();
while ($readLines){
$curChar = '';
while ($curChar != "\n"){
$ftell = ftell($handle);
fseek($handle, $pos,SEEK_END);
$curChar = fgetc($handle);
$pos--;
if(!($ftell-1)) break;
}
$readLines--;
}
//指针==1 但是读不到内容
echo '#'.$curPointer = ftell($handle).'#';
var_dump(ord(fgetc($handle)));
//var_dump(fread($handle,4096));
echo '<br />';
//调用fseek重置指针之后 可以获取到内容
fseek($handle, $curPointer);
echo '#'.ftell($handle).'#';
//var_dump(fread($handle,4096));
var_dump(ord(fgetc($handle)));
结果是
#1#int(0)
#1#int(13)
确定是这里的问题(遇到空字符fread被截断了) ,但是ftell返回的为什么是1 . 是我写的有问题 还是这里是一个bug?
...全文
相关推荐
Scala之文件读取、写入、控制台操作的方法示例
主要介绍了Scala之文件读取、写入、控制台操作的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
访问 IIS 元数据库失败解决问题的方法
近日调试一Asp.net程序,出现了“访问 IIS 元数据库失败”的错误信息,最后经过搜索发现了解决问题的方法。
解决MSSQL重新安装是出现失败
重新安装MS SQL SERVER 是容易出现配置错误, 尤其是2000版。 我在网上搜到了最好的解决办法。 和大家同享。
oracle客户端PLSQL连接失败解决方法
从家回来,继续我那工作,打开oracle客户端PLSQL,呀,突然连接不上了
浅析PHP 中move_uploaded_file 上传中文文件名失败
主要介绍了PHP 中move_uploaded_file 上传中文文件名失败的原因分析及解决方法 ,需要的朋友可以参考下


基础编程
