php 调用 可执行程序问题

baohua100 2008-11-28 02:57:50
php 调用了 一个 /bin 下面的 可执行程序,需要运行很久, 但是调用的时候,页面一直在等待,怎样让页面不等待,程序还是运行?
...全文
100 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
baohua100 2008-12-02
php 里面 有一句

exec($cmd,$t);

调用的可执行程序 需要 执行一到4天,在php页面上点击完 运行后,页面一直在等待。 怎么在 页面 直接 打印 一句话,说 到时会发封邮件 把结果告诉给用户, 页面不要一直等待了。


if (ob_get_level() == 0) ob_start();

for ($i = 0; $i <10; $i++){

ob_start();
ob_end_clean();
flush();
echo($i);
sleep(1);
ob_end_flush();

}

这段代码放在php代码的什么地方?我放在 exec($cmd,$t); 后面 还是不行啊
回复
baohua100 2008-12-02
自己解决了

pclose(popen($cmd.' /dev/null &', 'r'));

php页面不用再等待了,关键是加上 /dev/null &
回复
baohua100 2008-12-02
不过还清楚 怎么 用 cli 模式 调用 一个 可执行程序?
回复
baohua100 2008-12-02
[Quote=引用 10 楼 yanhuajin 的回复:]
你在点击后exec执行前echo出提示不就OK了
[/Quote]

没有任何意义。




ShadowSniper 正解。
回复
an9ryfr09 2008-12-02
用cli模式执行,这种需要明显不应该是在web上做的。
回复
cymple 2008-12-02
ignore_user_abort
回复
TR@SOE 2008-12-02
[Quote=引用 10 楼 yanhuajin 的回复:]
你在点击后exec执行前echo出提示不就OK了
[/Quote]

这个方法可以用,但是太简单粗暴了。

程序是不是还在,传进去的参数对不对都可能影响程序的正常执行。怎么能在还不知道程序是否“正常”启动的前提下就断言程序已经启动了呢?
回复
yanhuajin 2008-12-02
你在点击后exec执行前echo出提示不就OK了
回复
conqweal 2008-12-01
if (ob_get_level() == 0) ob_start();

for ($i = 0; $i<10; $i++){

ob_start();
ob_end_clean();
flush();
echo($i);
sleep(1);
ob_end_flush();

}


控制下缓冲,以上测试用。
回复
baohua100 2008-11-30
没人知道 简单方法吗! 求助
回复
herman011 2008-11-28
这个程序要运行 一天, 我是说在php页面上点击完 运行后, 页面 直接 打印 一句话,说 到时会发封邮件 把结果告诉给用户, 页面不要一直等待了。
回复
Zijian_Zhang 2008-11-28
Ajax可以啊,没有了,Ajax也是会等待的,但是页面没有更新,所以看不出
回复
baohua100 2008-11-28
说错了, 是 加上 & 没有用。

有没有 除了 ajax 的 简单方法啊
回复
baohua100 2008-11-28
试过了,没有用

[Quote=引用 1 楼 vvkl 的回复:]
ajax?
[/Quote]
回复
lanxk 2008-11-28
调用这个程序的时候用 & 符号放到后台运行
回复
vvkl 2008-11-28
ajax?
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2008-11-28 02:57
社区公告
暂无公告