fread读不到popen值,但在命令行下运行正常

lantersen 2013-05-14 01:32:19
$output = '';
$pipe = popen($somecommand, 'r');

while(!feof($pipe))
{ $output .= fread($pipe, 1024);}


在命令行下执行$somecommand可以正常显示,可运行上述代码时却取不到值,望达人协助。
...全文
550 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
袁保康 2013-06-20
  • 打赏
  • 举报
回复
引用 楼主 lantersen 的回复:
$output = '';
$pipe = popen($somecommand, 'r');
	
while(!feof($pipe))
{ $output .= fread($pipe, 1024);}
在命令行下执行$somecommand可以正常显示,可运行上述代码时却取不到值,望达人协助。
你命令中加一个这个“2>&1”,我是在这里看到的:http://blog.csdn.net/kangear/article/details/9141481 我用的命令是dd,和你问题一样,加上那个就OK了。
lantersen 2013-05-17
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
你需要确认: 1、$somecommand 是进程而不是线程 2、$somecommand 是向标准输出写的 这种应用在测试环境玩玩还可以。如果正式环境出于安全考虑禁用了此类函数,那不就玩完了?
很久没来CSDN了,唠叨版主亲自解答,先行谢谢。之前也有考虑安全与效率问题想换成socket去调用;这边再请教下唠叨:在PHP中如果类似的应用有什么比较好的解决方案,从而可以获取调用的值?谢谢
xuzuning 2013-05-14
  • 打赏
  • 举报
回复
你需要确认: 1、$somecommand 是进程而不是线程 2、$somecommand 是向标准输出写的 这种应用在测试环境玩玩还可以。如果正式环境出于安全考虑禁用了此类函数,那不就玩完了?

20,398

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧