【问题标题】:PHP Replace binary file at hex address [closed]PHP替换十六进制地址的二进制文件[关闭]
【发布时间】:2015-08-30 00:46:37
【问题描述】:

我想修改 aprox 的二进制文件服务器端。 700kb 更改其中的 url 而不是保存它。

我的第一个想法是使用 bin to hex 和 preg_replace 来替换二进制中的 url。

二进制中url的地址总是相同的,但是每次调用我的函数时我都需要更改它。

有没有更好/更快的方法来做到这一点?

例子:

somesite.com/api***

例如,我想将 *** 替换为 var 中的一些数字。

*** 在十六进制地址 00010edb-00010edd 之间

谢谢!

【问题讨论】:

  • 字符串在二进制中的位置是否固定?
  • 是的。它的地址始终与用作模板替换的相同。我要替换的是十六进制地址 00010edb-00010edd

标签: php replace binary hex preg-replace


【解决方案1】:

如果字符串在固定位置,可以直接写入数据:

$position=hexdec("00010edb"); // You have to pre-calculate it once
$data="some data"; // Replacement
if ($f=fopen("your_file", "r+")) {
    fseek($f, $position);
    fwrite($f, $data);
    fclose($f);
} else {
    echo "Can't open file";
}

【讨论】:

  • 谢谢!有用。对于您的解决方案,在 PHP 中,我应该将模板二进制文件复制到我想要示例 site.com/api7 的文件夹中,而不是为该文件运行脚本。是否可以在不更改原始文件的情况下将更改保存在另一个文件中?再次感谢您。
  • 更好的方法是复制文件并创建一个唯一的文件名。
  • 我会这样做的,谢谢
猜你喜欢
  • 2016-08-31
  • 2021-01-29
  • 1970-01-01
  • 1970-01-01
  • 2013-11-16
  • 1970-01-01
  • 2020-08-08
  • 2014-06-10
  • 2023-03-22
相关资源
最近更新 更多