申し訳ありませんが、長いテキストです。別途PHPコール関数があります
私は、特定の行為が発生したときにphp関数の実行をトリガーするアイデアを探しています(異なるディレクトリにあり、テスト済みで同じディレクトリにあります)。
システムはDebianとphp framework yiiです。
APIを使用すると、リモートサーバーから新しいデータを受信し、受け取ったデータの特定の値に対して、別のプロセスで機能を開始する必要があります。完了を待つ必要はありません。 API応答時間のため、この関数をAPI応答時間に統合することはできず、統合によってAPIを使用できなくなりました。
私はStackoverflowと他の多くの例について数十の答えを読んだことがあります。
テストのために、特定の場所に新しいフォルダを作成しようとしましたが、ファイルが作成されませんでした(アクセス権の問題ですが、メインコード-apiから実行すると確認できません)。 2つの引数が、それはPDFファイルを印刷するにはFPDFを使用しています
- パスを: は、次の操作を行うことになっています。
- ドキュメントを保存してPHPMailerで郵送してください。
追加インストールが必要なためpcntl_forkを使用できません(これは許可されていません)。
扱うトピック:
- pcntl_forkとフォーク(。実行は、それに到達すると停止します)
- のpopen/pclose、幹部、は、proc_open/proc_close(無応答と実際に入力された機能を、それを確認することはできません)。
もちろん、この状況ではincludeとrequireの使用の可能性は除きます。
は、APIコードをリリースするが、ここで私はやってそれを求めていたものであることはできません。
background.php
$docs_dir='test_folder';
if (!file_exists('/var/www/created_documents/'.$docs_dir))
{
mkdir('/var/www/created_documents/'.$docs_dir, 0777, true);
chmod('/var/www/created_documents/'.$docs_dir, 0777);
}
そして、それは何もしません。
私はそれにジャンプするために私がAPIコードで使用した例はほとんどありません(他の多くは作業中に削除されました)。
$proc = popen('php ' . __DIR__ . '/background.php &', 'r');
return $proc;
while (!feof($proc))
{
$data = fgets($proc);
var_dump($data);
}
exec("php background.php");
$cmd = "php background.php";
$timer = popen("start ". $cmd, "r");
pclose($timer);
exec($cmd . " > /dev/null &");
pclose(popen("php background.php &","r"));
キューの使用のように聞こえますが、スタックはジョブを実行してバックグラウンドで処理します。 –
darでの開発が難しい場合は、次の2行のファイルにエラーを記録してください。ini_set( "log_errors"、1); ini_set( "error_log"、path_to_file); –