PHP是否支持bash(forking)中的&符號?比方說,我想同時在2個網頁上使用cURL,因此腳本不必等到第一個cURL命令完成之前,那麼在PHP中如何實現呢?像這樣的事情在bash:PHP有像bash那樣的工作控制嗎?
curl www.google.com &
curl www.yahoo.com &
wait
PHP是否支持bash(forking)中的&符號?比方說,我想同時在2個網頁上使用cURL,因此腳本不必等到第一個cURL命令完成之前,那麼在PHP中如何實現呢?像這樣的事情在bash:PHP有像bash那樣的工作控制嗎?
curl www.google.com &
curl www.yahoo.com &
wait
不支持PHP類似符號在bash(分叉)?
No.請參閱其他答案,但我確實指出PCNTL擴展名僅限於UNIX。
......一個人如何能做到這一點在PHP?*
cURL supports running multiple downloads concurrently。
您可以使用popen
或proc_open
打開一個程序,讓它在後臺運行,但有後臺操作沒有任何語言的支持,例如有用於bash
(這是爲了執行任務,反正,PHP是爲腳本製作東東)。
使用proc_open,您可以使用proc_get_status
來了解進程何時終止。恐怕沒有相應的wait
。
如果您真的想要,您可以編寫異步方法,但這需要很多工作,並且如果您使用PHP,可能是一個糟糕的設計思路。
某種排隊機制通常是可取的。 Gearman是一個可以使用的開源排隊機制。我還在Zend Server作業隊列上發表了一篇關於異步運行任務的博客文章Do you queue? Introduction to the Zend Server Job Queue。
你也可以使用類似Zend Framework Queuing類的東西來實現一些異步工作。 Zend_Queue
如何使用PHP編寫異步方法? – zneak 2010-04-19 00:18:48
http://netevil.org/blog/2005/may/guru-multiplexing – 2010-04-19 01:02:04