PHP作为16进制修改器,有些难办问题 16进制的方式大开????听不明白楼主需要怎么样。你是不是要把文件 显示为 16进制?????象用WinHEX打开时那样显示? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 难道楼住想修改exe文件??牛帮你顶一把 2进制16进制都只是数据的表现形式而已,和你用不用bin2hex没有关系所谓的16进制编辑器显示的16进制,只是方便人看而已。你用bin2hex变成人看懂的16进制后,让人修改后可以用下面的函数还原成2进制数据,并用fopen,fwrite重新写入进去。不过由于这是一次读取一次写入,对于大文件而言效率不高function hex2bin($hex_string) { if(preg_match('/^[0-9a-f]+$/i', $hex_string)) return pack('H*', (string)$hex_string); $len=strlen($hex_String); return $hex_string; } 哈....感谢...能不能细细诉说一下pack()的用处....这个问题现在有点好办了...我是首先将2进制方式读取出来转换成为16进制模式...的确,东西还是一样的东西....然后,其他人输入要修改的东西,如找到0000FF,在Offset 18上面,最后修改为FFFFFF.现在....经过你的方式...可以直接将他们变成bin了...我本来还想用一个16进制到ASCII的function{ //Remove delimiters from hex string $hex = str_replace($delimeter, "", $hex); $strLength = strlen($hex); $returnVal = ''; for($i=0; $i<$strLength; $i += 2) { $dec_val = hexdec(substr($hex, $i, 2)); $returnVal .= chr($dec_val); } return $returnVal;}变成ASCII,然后再想方法变成bin写入(不过听说PHP的功能都是bin safe的...可能不需要再变成ASCII了) pack的资料网上很多的,很多脚本语言有这个的。呵呵,用法都一样 等等...我想到了...干脆...直接读取文件,得到ASCII的String然后将用户要求修改的原来HEX和后来HEX都变成ASCII!然后利用Offset直接查找修改...然后使用ASCII的方式存放回去...听说PHP是binary safe的...所以...这个应该是最快的方式.... 用php建个留言簿发送指定邮箱,不要连接数据库,也不要发送什么outlook邮箱 在mysql表中插入记录 纵向弹出菜单问题 PHP读取TXT信息并拆分 添加soap支持问题 在线等 mail 如何不重启apache,所加入的国际域名就能生效 求把php文件转化为zend加密格式的工具 PHP中使用COM的问题! 我人品有问题么?散分 百万数据条件排序应该怎样做优化? 太奇怪了!在没有条件控制代码的情况下PHP代码一次执行了二遍。
所谓的16进制编辑器显示的16进制,只是方便人看而已。你用bin2hex变成人看懂的16进制后,让人修改后可以用下面的函数还原成2进制数据,并用fopen,fwrite重新写入进去。不过由于这是一次读取一次写入,对于大文件而言效率不高
function hex2bin($hex_string)
{
if(preg_match('/^[0-9a-f]+$/i', $hex_string))
return pack('H*', (string)$hex_string);
$len=strlen($hex_String);
return $hex_string;
}
能不能细细诉说一下pack()的用处....
这个问题现在有点好办了...
我是首先将2进制方式读取出来
转换成为16进制模式...的确,东西还是一样的东西....
然后,其他人输入要修改的东西,如找到0000FF,在Offset 18上面,最后修改为FFFFFF.
现在....经过你的方式...可以直接将他们变成bin了...
我本来还想用一个16进制到ASCII的function
{
//Remove delimiters from hex string
$hex = str_replace($delimeter, "", $hex);
$strLength = strlen($hex);
$returnVal = ''; for($i=0; $i<$strLength; $i += 2)
{
$dec_val = hexdec(substr($hex, $i, 2));
$returnVal .= chr($dec_val);
}
return $returnVal;
}
变成ASCII,然后再想方法变成bin写入(不过听说PHP的功能都是bin safe的...可能不需要再变成ASCII了)
干脆...直接读取文件,得到ASCII的String然后将用户要求修改的原来HEX和后来HEX都变成ASCII!
然后利用Offset直接查找修改...
然后使用ASCII的方式存放回去...
听说PHP是binary safe的...
所以...这个应该是最快的方式....