执行system($cmd)命令的问题。

去圣西罗-为尤文喝彩 2010-11-10 06:18:09
最近在研究网页截图。选择了webscreencapture。我把官网上的BAT文件写进了PHP里面。
另外将webscreencapture主程序复制了3个,我想同时抓取3个页面的截图。

$cmd1 = 'webscreencapture1.exe "http://www.bing.com" e:\www\test\1.jpg';
system($cmd1);
$cmd2 = 'webscreencapture2.exe "http://www.baidu.com" e:\www\test\2.jpg';
system($cmd2);
$cmd3 = 'webscreencapture3.exe "http://cn.yahoo.com" e:\www\test\3.jpg';
system($cmd3);

现在我遇到几个问题,求助于大家。
1。如何使得PHP同时执行$cmd1,$cmd2,$cmd3?而不是根据代码先后,队列执行?
2。webscreencapture有时会产生程序错误,即抓某个页面已经抓取成功之后,还会无数次的重复执行该条system($cmd)命令,类似于死机。如何做到同一条命令执行一次之后,自动终止system($cmd)命令?
3。webscreencapture 官网上没有找到相关的延时代码,我还想截取一些视频网站。如何在system($cmd)里设置延时?
4。是否可以在代码里设置每24小时自动执行一次截图代码?
谢谢。
...全文
1490 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
helloyou0 2010-11-12
  • 打赏
  • 举报
回复
windows.....
  • 打赏
  • 举报
回复
对了,在看PHP模拟多线程的教程,头有点大,是不是模拟多线程就可以解决我的问题?
如果是,有谁精通吗?帮忙写个简单点的代码,并解释一下。谢谢。
  • 打赏
  • 举报
回复
感谢大家的回复,但我这里用的是WINDOWS系统,代码都在PHP里面执行。
fxs_2008 2010-11-11
  • 打赏
  • 举报
回复
$cmd1 = 'webscreencapture1.exe "http://www.bing.com" e:\www\test\1.jpg &';
system($cmd1);

这个是可以同时执行多条的

因为是异步,扔到linux了

原则上,你可扔n条,只要linux能承受
在-云端 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 binyao02123202 的回复:]

用AJAX异步试试发3个请求到后台
[/Quote]

实际上就是执行三次脚本!
在-云端 2010-11-11
  • 打赏
  • 举报
回复
1.如果你是一个php文件里执行三个system($cmd)的话是不能同时执行三条的!php只不支持多线程,如果你想同时执行必须写成三个脚本.


2.webscreencapture我没用过。但是如果是怕程序无数次的重复执行该条system($cmd)命令,可以写个守护进程,以及一个监控进程。守护进程产生三个分进程进行执行,监控进程进行即使,隔段时间检查下系统是否还存在某分进程,否则认为进程死了,调用命令杀掉。

3.没用过这个,所以不清楚。

4.在守护进程里设置多长时间循环启动三个分进程就行了。sleep()

希望对你有所帮助!
君望永远 2010-11-11
  • 打赏
  • 举报
回复
用AJAX异步试试发3个请求到后台
fxs_2008 2010-11-11
  • 打赏
  • 举报
回复
$cmd1 = 'webscreencapture1.exe "http://www.bing.com" e:\www\test\1.jpg &';
system($cmd1);

试试,异步
  • 打赏
  • 举报
回复
顶一下,如何使得PHP同时并列执行$cmd1,$cmd2,$cmd3多条命令?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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