PHP中能一位一位的读取文件吗

PHP中能一位一位的读取文件吗

比如说我现在想读取文件的第145位,可以做到吗?我查手册发现都是按字节读取的

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕查理 2018-04-08 16:08:10

您好,可以使用fread读取第145个字节,但是需要注意的是汉子占用三个字节。因此如果是全英文状态下可以读取到145位,但是出现中文请考虑字节问题。

<?php
$file_path = "msg.txt";
if(file_exists($file_path)){
$fp = fopen($file_path,"r");
$str = fread($fp,145);//指定读取大小
echo $str;
}

祝学习愉快!

  • 提问者 不过是小丑 #1
    我说的位是指bit,1字节等于8bit。fread读取数据文件的单位是bit吧,我读取的是二进制文件,能理解吗?
    2018-04-08 20:01:42
  • 提问者 不过是小丑 #2
    说错了,fread读取文件的单位是字节,也就是8bit读的,但是145除8除不够
    2018-04-08 20:03:00
  • 啊临 回复 提问者 不过是小丑 #3
    兄台别纠结了,php对于二进制的支持是非常有限的,可以把php数据转换成二进制数据,但是最后用php函数读取二进制数据基本都是用的fread,也就是你说的按字节来读,没法按位来读,况且使用的都是系统封装的文件函数,没有这些文件函数要读取文件的话就要涉及到一些底层操作了,这个就不是php的范围了。php这门语言本身也是用底层语言写的。
    2018-04-09 15:44:54
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师