【问题标题】:Open .bat file in php在 php 中打开 .bat 文件
【发布时间】:2011-03-07 13:56:46
【问题描述】:

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

【问题讨论】:

  • 你打算在 .bat 文件中做哪些 PHP 做不到的事情?

标签: php hex batch-file hex-editors


【解决方案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

【讨论】:

  • 非常感谢!!在我打开该文件后,您能帮我编写和编辑该文件吗?
  • 另外,当我尝试对一个非常大的文件执行此操作时出现错误。这可能只是php的限制吗?
  • 为了将来参考,我记得读过一些关于 PHP 在处理超过 2gb 的文件时遇到问题的内容。
猜你喜欢
  • 1970-01-01
  • 2016-08-22
  • 2018-09-07
  • 2016-11-17
  • 1970-01-01
  • 2012-09-28
  • 2011-05-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多