在php中打开.bat文件

时间:2010-06-23 23:14:43

标签: php hex batch-file hex-editors

我想创建一个在线php hexeditor,用户上传文件,服务器在其上执行指定的hexedit,然后将新文件保存在服务器上。我在想我应该编写一个.bat文件,在Windows上打开一个十六进制编辑器,执行指定的操作,然后返回新文件。我可以使用php函数system()或类似的东西。有人知道做这一切的好方法吗?

1 个答案:

答案 0 :(得分:1)

您当然可以使用PHP实现此目的。

您需要做的是:

  • 将文件读为二进制文件
  • 转换为十六进制表示
  • 以您喜欢的方式显示

查看 fread 函数,有一个示例显示如何将文件读取为二进制文件。

然后使用 bin2hex 函数,它将为您提供二进制数据的十六进制表示。

这是一个简单的例子:

<?php
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);

$cols = 8;
$hex = bin2hex($contents);
$hex_split = str_split($hex,4*$cols);

foreach($hex_split as $h)
{
  $tmp = str_split($h, 4);
  foreach($tmp as $t)
    echo $t.' ';
  echo "\r\n";
}
?>

您将获得例如:

d45b 0500 0000 0000 0c00 0000 0000 0000 
0000 0000 0000 0000 0100 0000 0000 0000 
0000 0000 0000 0000 0100 0000 0300 0000 
0000 0000 0000 0000 0000 0000 0000 0000 
e05b 0500 0000 0000 f400 0000 0000 0000 
0000 0000 0000 0000 0100 0000 0000 0000 
0000 0000 0000 0000