【发布时间】:2019-06-18 16:48:45
【问题描述】:
在我的 PHP 脚本中,我有一个变量 $pkcs7_bin,我想通过 openssl 对其进行转换。
假设我在文件中输入了内容,我可以使用 bash 执行此操作:
cat in.pkcs7 | openssl pkcs7 -inform DER > out.pkcs7
我想在 PHP 中做同样的事情,例如:
$exit_status execute('openssl pkc7 -inform DER', $pkcs7_bin, $pkcs7_out);
我当然不想使用中间文件。
这是一种简单的方法吗?
目前我已经写了这个:
function execute($process, $stdin, &$stdout)
{
ob_start();
$handle = popen($process, 'w');
$write = fwrite($handle, $stdin)
&$stdout = ob_get_clean();
pclose($handle);
}
但我意识到ob_start 没有捕捉到我屏幕上刷新的输出:(
【问题讨论】:
-
我对openSSL不太了解,但是PHP中有openSSL扩展。对您的用例来说还不够吗?
-
谢谢,我知道,但这不是我的问题,标签是
php和popen,而不是openssl:) -
@Chipster,这不是重复的。看我问题的标题。我想将 STDIN 传递给命令并从 STDOUT 获取结果。您链接的问题没有解决这个问题。