0

重複の可能性:
別の PHP スクリプトを呼び出し、他のスクリプトが完了する前にユーザーに制御を返す 別の PHP スクリプト
から非同期で PHP スクリプトを実行する方法は?

PHP で exec() を使用する際にいくつかの問題がありますが、解決する方法がわかりません。exec() を使用して、同じディレクトリ内の別の php スクリプトを「非同期的に」実行したいと考えています。b.php を呼び出すためにブラウザで a.php を開きますが、機能しません。(localhost はWindows 7 の xamppです)

a.php:

<?php
exec('php \b.php', $output, $r);
print_r($output);
print_r($r);
?>

b.php:

#!/usr/bin/php
<?php
echo time();
?>

ブラウザでの出力

Array ( ) 1

私は関連するPHP CLIを使用する超初心者です...これについてはわかりません...誰か簡単な例を挙げてもらえますか? たとえば、a.php と b.php には何を書くべきか。

ガイドやアドバイスをいただければ、どうもありがとうございます。


編集:

次のコードを試してみましたが、機能しますが、「非同期」に実行されません...出力をリダイレクトするにはどうすればよいですか?

ブラウザで callexec.php を開きます。

callexec.php

<?php
exec('C:\xampp\php\php.exe testexec.php');
?>

testexec.php

<?php
echo "start: ",time(),"\n";
sleep(10);
echo "\n";
echo "end: ",time(),"\n";
?>

再度、感謝します。

4

3 に答える 3

1

シェル スクリプトに .php スクリプトであることを既に伝えている#!/usr/bin/phpため、スクリプトに対して php を呼び出す必要はありません。コマンド ラインから任意のスクリプトと同じように呼び出すことができます。

exec('b.php', $output, $r);

b.phpちなみに、コマンドラインからは問題なく呼び出せると思います。

于 2012-09-29T16:53:42.250 に答える
0

なぜ物事を複雑にするのですか?includeまたはrequireを使用するだけですか?

于 2012-09-29T17:03:17.917 に答える
0

同じプラットフォーム上に別のサーバーがある場合、ポート番号に問題がある可能性があります。たとえば、Oracle データベース サーバー、mysql、Apache tomcat などです。異なるサーバーのポート番号が同じかどうかを確認してください。

于 2012-09-29T16:55:21.613 に答える