【发布时间】:2013-06-19 12:12:52
【问题描述】:
一个简单的例子,什么是 bash 中hexdump 的合适输出(需要什么选项)以使其适合作为 php 中 hex2bin 函数的输入!
P.S:我正在使用它通过网络服务流式传输证书(由 OpenSSL 命令制作)。
我已将 PHP 更新到 5.4.0 并且我正在使用 CentOS 6
【问题讨论】:
一个简单的例子,什么是 bash 中hexdump 的合适输出(需要什么选项)以使其适合作为 php 中 hex2bin 函数的输入!
P.S:我正在使用它通过网络服务流式传输证书(由 OpenSSL 命令制作)。
我已将 PHP 更新到 5.4.0 并且我正在使用 CentOS 6
【问题讨论】:
解决办法是去掉bash输出的空格 在 bash 中:
res=`xxd -p $exportedkey`
echo "${res//[[:space:]]/}"
在 php 中:
$hex = hex2bin($result);
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=hex.pfx");
header('Content-Length: '. strlen($hex));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
echo $hex;
exit();
希望这可以帮助其他有同样问题的人。
【讨论】:
hexdump -e '1/1 "%02x"' 可以解决问题。
附:为了避免对 hexdump 二进制文件的额外依赖,您可能需要考虑为此使用 php,并编写一个从标准输入读取并通过 bin2hex() 写出的短循环。
【讨论】: