php如何读取二进制文件?

时间:2022-01-12 20:56:07
在用php读取文件的时候,该文件为二进制文件,就是直接文本打开是乱码,用UltraEdit打开用二进制查看是 00 30 80 0A BA 之类的,需要对其进行解码,但我不知用哪种方法能获取这些值,下面是我写的函数,求教高手。

function an2my($file)
{
$repdir="./an/loadfiles/";      /*文件执行到的目录*/
$nom_rep=$repdir.$file;

if (is_readable($nom_rep) == false) {
return "false";
}
else{
$hanle = fopen($nom_rep,'rb');
$buf = fread($hanle,filesize($nom_rep));
fclose($hanle);

$contant = $buf;

return $contant;

}

这样读出来的东西仍然是乱码,我该怎么办?

10 个解决方案

#1


二进制文件是不是应该只有0和1啊?怎么还会出现ABC?

#2


你试试这样写行不行$hanle = fopen($nom_rep,'b');

#3


引用 2 楼 zmouki 的回复:
你试试这样写行不行$hanle = fopen($nom_rep,'b');

仍然不行呢

#4


把你的那个文件能发来么?我试试看!zmouki@gmail.com

#5


路过。。学习了。。。。。。

#6


把文件发过来....
[email=striker.un@gmail.com][/email]

#7


已发给两位大哥,帮忙看看啊

我的目的是,把这个二进制文件读出来,然后通过文件结构把它翻译成可看的文本,如我直接用UltraEdit打开,用二进制查看可以看到该文件:30 80 A0 80 80 01 01 81 17 59……
 
按文件结构,第6位应该是01,就是我所要的,同理第9位起就是我所要的文本,问题在于,我怎么取得这第6位和第9位呢?

#8



$buf = bin2hex(fread($hanle,filesize($nom_rep)));

#9


引用 1 楼 zmouki 的回复:
二进制文件是不是应该只有0和1啊?怎么还会出现ABC?


我寒

#10


引用 9 楼 yifanwu 的回复:
引用 1 楼 zmouki 的回复:
二进制文件是不是应该只有0和1啊?怎么还会出现ABC? 
 

我寒

#1


二进制文件是不是应该只有0和1啊?怎么还会出现ABC?

#2


你试试这样写行不行$hanle = fopen($nom_rep,'b');

#3


引用 2 楼 zmouki 的回复:
你试试这样写行不行$hanle = fopen($nom_rep,'b');

仍然不行呢

#4


把你的那个文件能发来么?我试试看!zmouki@gmail.com

#5


路过。。学习了。。。。。。

#6


把文件发过来....
[email=striker.un@gmail.com][/email]

#7


已发给两位大哥,帮忙看看啊

我的目的是,把这个二进制文件读出来,然后通过文件结构把它翻译成可看的文本,如我直接用UltraEdit打开,用二进制查看可以看到该文件:30 80 A0 80 80 01 01 81 17 59……
 
按文件结构,第6位应该是01,就是我所要的,同理第9位起就是我所要的文本,问题在于,我怎么取得这第6位和第9位呢?

#8



$buf = bin2hex(fread($hanle,filesize($nom_rep)));

#9


引用 1 楼 zmouki 的回复:
二进制文件是不是应该只有0和1啊?怎么还会出现ABC?


我寒

#10


引用 9 楼 yifanwu 的回复:
引用 1 楼 zmouki 的回复:
二进制文件是不是应该只有0和1啊?怎么还会出现ABC? 
 

我寒