...........................
//以上代码写读取文件信息到$tmp
for($i=0;$i<count($tmp);$i++)
{
$tmparr[i]=dechex(ord(substr($tmp,$i,1)));  
}
for($i=0;$i<count($tmp);$i++)
{
if(tmparr[$i]==0x00)
$ii=0;
while(tmparr[$i]!=0x00)
{$tmps[$ii]=$tmps[$ii].asc(hexdec($tmparr[$i]));
$i++;
}
}
}//最终$tmps数组是00~00之间的信息了,当然直接用echo来显示是乱码

解决方案 »

  1.   

    $i++;位置放错了,放在while结束之后
      

  2.   

    $fp = fopen("文件名","rb"); //win32系统下必须有b属性
    fseek($fp,偏移值);
    $out = "";
    while(! feof($fp) || ($ch=fgetc($fp) != "\0")) {
      $out .= $ch;
    }
    fclose($fp);
    echo $out;
      

  3.   

    应该是\00吧,不知道老大的是不这样的$fp = fopen("文件名","rb"); //win32系统下必须有b属性
    fseek($fp,偏移值);
    $out = "";
    while(! feof($fp) || ($ch=fgetc($fp) != "\00")) {
      $out .= $ch;
    }
    fclose($fp);
    echo $out;
      

  4.   

    不知道php有没有读取一个结构对象的。
    如typedef struct a
    {
      int a;
      long b;
    }c;
    c obj;
    fread(obj,sizeof,1,fp);