1
A
回答
0
passthru
的内部不会对您有太大帮助,因为它们太低而不能被PHP重现。
我的目标是将输出转发到任何任意文件,而不仅仅是php:// stdout。
如果你想这样做PHP的水平而无需首先读取整个输出到一个变量,我建议像popen
。这可以让你打开一个指向进程的指针,从中你可以一点一点地读取数据,并将数据一点一点地写入文件(实际上这可能非常接近passthru
所做的)。例如:
while (($buffer = fread($p, 1024)) !== false) {
fwrite($file, $buffer);
}
但是,如果您正在使用命令行,那么为什么不直接写入文件呢?
exec('command > file');
0
执行命令后需要显示二进制数据吗?
您想如何改变标准行为?
据我所知,passthru()的工作方式与exec()和system()类似,但也允许处理/显示二进制数据,所以我的猜测是它将管道输出从passthru )命令直接到二进制流。
请参阅http://php.net/manual/en/function.passthru.php。
我希望这可以帮助,否则我应该得到一票否决票。
1
为什么不使用shell_exec
并附加>> file
命令?
function exec_to_file($cmd,$file){
shell_exec(escapeshellcmd($cmd) . ' >> ' . $file);
}
0
到中继可以ext/standard/exec.c中发现的源 - 它实际上是相当可读的,应该可以直接用PHP编写你自己的版本。
这听起来像你需要做的只是使用popen来打开一个进程,然后你可以像读取任何其他文件句柄一样从它读取输出。
相关问题
- 1. passthru不工作在pdftk
- 2. passthru不能在Xampp中工作1.7.5
- 3. COPY-ITEM Passthru在遇到错误时无法正常工作
- 4. mysqldump passthru returncode的
- 5. PHP的passthru()vs shell_exec()
- 6. 透明PNG imagemagick passthru
- 7. PHP passthru执行状态
- 8. PHP/passthru/mysqldump似乎超时
- 9. Powershell启动进程Java PassThru
- 10. Mailx passthru()与包含变量
- 11. 如何在PHP中使用passthru显示javac错误消息?
- 12. 如何工作?
- 13. 如何:(){:| :& } ;:工作
- 14. hgearman工人如何工作?
- 15. set_error_handler不工作我想如何工作
- 16. 在PHP和passthru执行功能?
- 17. PHP passthru()块与进程更换
- 18. WMB ESQL将常量传递给passthru
- 19. 服务器上的passthru问题
- 20. mpegts如何工作
- 21. AJAX如何工作?
- 22. printf如何工作?
- 23. ArrayAdapter.getView()如何工作?
- 24. jdbc如何工作
- 25. match_parent如何工作?
- 26. DisplacementMapFilter如何工作?
- 27. servlet如何工作?
- 28. sendmsg如何工作?
- 29. TabLayout如何工作?
- 30. paintComponent如何工作?
你可以参考PHP源代码,而不是让别人为你做。为什么你想创建自己的功能类似的功能,为什么这个不适合你? – 2011-02-13 09:23:18
`passthru`最终是用C写成的。答案应该与C内部相关,还是“PHP级别”解释? – deceze 2011-02-13 09:23:27