怎样操作16进制文件???

w8c 2003-09-02 08:27:13
打开一个2进制文件,
bin2hex($str); //转为16进制
然后编辑,
接下来,
decbin(hexdec($str)); // 按位取,转为2进制,
但最后写入失败

有谁知道?
...全文
100 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2003-09-03
  • 打赏
  • 举报
回复
二进制文件编辑器
  本程序是直接在浏览器里面编写二进制文件,界面左半部分是十六进制代码,右半部分是相应的字符,可以自由编辑保存。
  程序文件只有一个,存为任意*.php均可。

<?
/**********************************************************************
    Written by caocao
    caocao@eastday.com
    http://caocao.oso.com.cn
**********************************************************************/
if (!$action)
{
?>
<html>
<head>
<title>二进制文件编辑器</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<frameset rows="0,*" cols="*" frameborder="NO" border="0" framespacing="0">
<frame name="action" noresize scrolling="NO" src="<? echo $PHP_SELF."?action=2";?>">
<frame name="main" src="<? echo $PHP_SELF."?action=1";?>">
</frameset>
<noframes>
<body bgcolor="#FFFFFF">
<p>本页使用页面框架,抱歉您的浏览器不支持</p>
</body>
</noframes>
</html>
<?
exit;
}
if ($action==1)
{
?>
<html>
<head>
<title>二进制文件编辑器</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<table width="760" border="0" cellspacing="0" cellpadding="0" height="25">
<tr>
<td>
<div align="center"><b>二进制文件编辑器</b></div>
</td>
</tr>
</table>
<table width="760" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<form name="form" method="post" action="<? echo $PHP_SELF."?action=2";?>" target="action">
<div align="center">
<textarea name="code1" cols="32" rows="20"></textarea>
<textarea name="code2" cols="16" rows="20"></textarea>
<hr width="400">
<input type="text" name="path" size="40">
<input type="hidden" name="status" value="1">
<br>
<input type="submit" name="save" value=" 保 存 " onclick="form.status.value=1;">
 
<input type="submit" name="read" value=" 读 取 " onclick="form.status.value=0;">
</div>
</form>
</td>
</tr>
</table>
</body>
</html>
<?
exit;
}
if ($action==2)
{
$javascript="";
if ($path)
{
if ($status)
{
if ($code1)
{
$fp=fopen($path,"wb");
for ($i=0;$i<strlen($code1)/2;$i++)
{
fwrite($fp,chr(hexdec(substr($code1,$i*2,2))),1);
}
if (fclose($fp))
{
$javascript="parent.main.form.code1.value=\"保存成功\";";
$javascript.="parent.main.form.code2.value=\"\";";
}
else
{
$javascript="parent.main.form.code1.value=\"保存失败\";";
}
}
else
{
$javascript="parent.main.form.code1.value=\"没有数据\";";
}
}
else
{
$code1="";
$code2="";
if ($fp=fopen($path,"rb"))
{
$file_data=fread($fp,filesize($path));
fclose($fp);
for ($i=0;$i<strlen($file_data);$i++)
{
$code1.=bin2hex(substr($file_data,$i,1));
}
$code2=ereg_replace("%+[0-9A-F]{2}",".",rawurlencode($file_data));
$javascript="parent.main.form.code1.value=\"".$code1."\";";
$javascript.="parent.main.form.code2.value=\"".$code2."\";";
}
else
{
$javascript="parent.main.form.path.value=\"文件不存在\";";
}
}
}
if (!$path&&($read||$save))
{
$javascript="parent.main.form.path.value=\"请输入文件名和路径\";";
}
?>
<script language="javascript">
<? echo $javascript;?>
</script>
<?
exit;
}
?>
DFlyingchen 2003-09-03
  • 打赏
  • 举报
回复
把整个代码贴出来吧

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧