2

假设我读了一些这样的字节:

$data = fread($fp, 4096);

由于fread如果到达文件末尾将停止读取,我如何才能确切知道读取了多少?会strlen($data)工作吗?或者这可能是错误的?


我想要完成的是读取一些字节,然后回到我阅读之前的位置。而且我试图避免使用算术(ftell, fread, ftell, subract, fseek),因为文件可能大于PHP_INT_MAX并且可能会弄乱它。我想要的只是做fseek($fp, -$bytes_read, SEEK_CUR),但为此我需要知道我刚刚读了多少字节......

4

2 回答 2

6

fread使用后ftell($fp)获取当前文件位置。

于 2011-05-27T21:11:35.833 回答
4

检查这个(未经测试):

mb_strlen($data, '8bit')

第二个参数'8bit'强制函数返回字节数。

在mb_strlen 的 php 手册的评论中找到。

于 2011-05-27T21:56:16.493 回答