0

PHP は bash のアンパサンドのようなもの (フォーク) をサポートしていますか? 2 つの Web ページで同時に cURL を使用したいとしましょう。スクリプトは最初の cURL コマンドが終了するまで待機する必要がありません。PHP でそれを実現するにはどうすればよいでしょうか? bashで次のようなもの:

 curl www.google.com &
 curl www.yahoo.com &
 wait
4

4 に答える 4

1

PHP は bash のアンパサンドのようなもの (フォーク) をサポートしていますか?
いいえ。他の回答を参照してください。ただし、PCNTL 拡張機能は UNIX のみであることを指摘します。

...PHP でそれを実現するにはどうすればよいでしょうか?*
cURL は、複数のダウンロードの同時実行をサポートしています

于 2010-04-19T00:15:02.903 に答える
1

popenまたはを使用proc_openしてプロセスを開いてバックグラウンドで実行することはできますが、バックグラウンド操作の言語サポートはありませんbash(とにかく、タスクを実行するために作成されました。PHP はスクリプト作成用に作成されました)。

proc_open を使用proc_get_statusすると、プロセスがいつ終了したかを知ることができます。wait同等のものはないと思います。

于 2010-04-19T00:16:22.913 に答える
0

多くの場合、ある種のキューイング メカニズムが推奨されます。Gearman は、使用できるオープン ソースのキューイング メカニズムです。Zend Server Job Queue に関するブログ投稿もあり、非同期でタスクを実行することについて説明しています。Zend Server ジョブ キューの紹介

Zend Framework のキューイング クラスのようなものを使用して、非同期作業の一部を実装することもできます。 Zend_Queue

于 2010-04-20T23:23:00.613 に答える
0

必要に応じて非同期メソッドを作成することもできますが、これは大変な作業であり、PHP を使用している場合はおそらくひどい設計思想です。

于 2010-04-19T00:17:25.727 に答える