mrp修改打包解包函数.php读取mrp

2011/12/12 13:07:00  人气 705    修改美化论坛  

------------------
附上一份开发作者用php写的MRP信息内部修改及压缩解压函数,还没来得及封装成类。
dnmrp.php 用于读取并修改mrp信息
<?php
function binadd($$f,$$n)
{
while(strlen($$f)<$$n)
$$f=’0’.$$f;
$$f=substr($$f,0,$$n);
return $$f;
}
function gb2u0($$f)
{return mb_convert_encoding(str_replace(chr(0),’’,$$f),’utf-8’,’gb2312’);}
function u2gb0($$f,$$n)
{
$$f=mb_convert_encoding($$f,’gb2312’,’utf-8’);
for($$a=strlen($$f);$$a<=$$n;$$a++)
{$$f.=chr(0);}
$$f=substr($$f,0,$$n);
return $$f;
}
function getmrp($$f)
{
/*
参数:文件路径
返回一个包含mrp信息的数组(UTF-8编码)
*/
$$f=fopen($$f,’rb’);
if(fread($$f,4)!=’MRPG’)
{fclose($$f);
return false;}
fseek($$f,52,SEEK_SET);
$$ch=gb2u0(fread($$f,16));
fseek($$f,192,SEEK_SET);
$$bb=hexdec(bin2hex(fread($$f,4)));
fseek($$f,196,SEEK_SET);
$$id=hexdec(bin2hex(fread($$f,4)));
fseek($$f,16,SEEK_SET);
$$nn=gb2u0(fread($$f,12));
fseek($$f,28,SEEK_SET);
$$xn=gb2u0(fread($$f,24));
fseek($$f,88,SEEK_SET);
$$zz=gb2u0(fread($$f,40));
fseek($$f,68,SEEK_SET);
$$bb2=hexdec(bin2hex(strrev(fread($$f,4))));
fseek($$f,72,SEEK_SET);
$$id2=hexdec(bin2hex(strrev(fread($$f,4))));
fseek($$f,128,SEEK_SET);
$$js=gb2u0(fread($$f,64));
fclose($$f);
return array(
’id’=>$$id2.’&’.$$id,
’ch’=>$$ch,
’bb’=>$$bb2.’&’.$$bb,
’nn’=>$$nn,
’xn’=>$$xn,
’zz’=>$$zz,
’js’=>$$js);
}
function putmrp($$fn,$$v)
{
/*
参数:文件路径、包含要修改为的mrp信息的数组(与getmrp的结构相同)
返回一个包含mrp信息的数组(UTF-8编码)
*/
$$fp=fopen($$fn,’r+’);
if(fread($$fp,4)!=’MRPG’)
{return false;}
$$ch=u2gb0($$v[’ch’],16);
$$nn=u2gb0($$v[’nn’],12);
$$xn=u2gb0($$v[’xn’],24);
$$zz=u2gb0($$v[’zz’],40);
$$js=u2gb0($$v[’js’],64);
$$id=explode(’&’,$$v[’id’]);
$$id2=pack(’H*’,binadd(dechex($$id[0]),8));
$$id=pack(’H*’,binadd(dechex($$id[1]),8));
$$bb=explode(’&’,$$v[’bb’]);
$$bb2=pack(’H*’,binadd(dechex($$bb[0]),8));
$$bb=pack(’H*’,binadd(dechex($$bb[1]),8));
fseek($$fp,16);
fwrite($$fp,$$nn.$$xn.$$ch.strrev($$bb2).strrev($$id2));
fseek($$fp,88);
fwrite($$fp,$$zz.$$js.$$bb.$$id);
fclose($$fp);
return true;
}
?>
下页    上页    全部    余下    
 

. 请牢记绝客网域名:jkniu.com jkmrp.com

发表回复

   


  通知楼主

4楼

老虎改吃草.01-14 15:04
看不懂

回复只看TA

地板

烟消^【云散】.12-13 19:45
√☆爱得过火★★

回复只看TA

椅子

★风流小猪★.12-12 20:49
顶老大

回复只看TA

沙发

『韩雅』 √☆爱得过火★★.12-12 13:11
:很好!(此回复虽有且仅有两个字,却深刻地表达了回复人的深深的祝福,可谓言简意赅,一字千金,字字扣人心弦,字字催人泪下,足可见回复人扎实的文字功底和信手拈来的写作技巧及惨绝人环的创新能力。实在佩服佩服!再加上以感叹号收尾,点睛之笔,妙笔生花,意境深远,照应前文,升华主题,把回复人的感情表达得淋漓尽致,给人无限感动和惆怅,有浑然天成之感,实乃回复中之极品,祝福中之绝笔

回复只看TA