php如何读取二进制文件?

mscbsc 2008-04-02 12:02:03
在用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;

}

这样读出来的东西仍然是乱码,我该怎么办?
...全文
1066 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
luou_net 2008-08-30
[Quote=引用 9 楼 yifanwu 的回复:]
引用 1 楼 zmouki 的回复:
二进制文件是不是应该只有0和1啊?怎么还会出现ABC?


我寒
[/Quote]
回复
yifanwu 2008-04-03
[Quote=引用 1 楼 zmouki 的回复:]
二进制文件是不是应该只有0和1啊?怎么还会出现ABC?
[/Quote]

我寒
回复
zmouki 2008-04-02
你试试这样写行不行$hanle = fopen($nom_rep,'b');
回复
zmouki 2008-04-02
二进制文件是不是应该只有0和1啊?怎么还会出现ABC?
回复
薄荷脑 2008-04-02

$buf = bin2hex(fread($hanle,filesize($nom_rep)));
回复
mscbsc 2008-04-02
已发给两位大哥,帮忙看看啊

我的目的是,把这个二进制文件读出来,然后通过文件结构把它翻译成可看的文本,如我直接用UltraEdit打开,用二进制查看可以看到该文件:30 80 A0 80 80 01 01 81 17 59……

按文件结构,第6位应该是01,就是我所要的,同理第9位起就是我所要的文本,问题在于,我怎么取得这第6位和第9位呢?
回复
striker_un 2008-04-02
把文件发过来....

回复
playboy001 2008-04-02
路过。。学习了。。。。。。
回复
zmouki 2008-04-02
把你的那个文件能发来么?我试试看!zmouki@gmail.com
回复
mscbsc 2008-04-02
[Quote=引用 2 楼 zmouki 的回复:]
你试试这样写行不行$hanle = fopen($nom_rep,'b');
[/Quote]
仍然不行呢
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2008-04-02 12:02
社区公告
暂无公告