※ ChatGPTを利用し、要約された質問です(原文:PHP バックグラウンド処理)
PHPバックグラウンド処理の問題と解決方法
このQ&Aのポイント
PHPのバックグラウンド処理において、メール送信プログラムを作成している際に特定のフォームでコメントを表示する前にsystem関数が読み込まれる問題が発生しています。
現在のコードでは、配信処理が終わった後にコメントが表示されるため、コメントを表示する前にsystem関数を実行する方法を模索しています。
system関数の引数が正しく受け渡されておらず、コメントを表示しながら正しい配信処理を行う方法を探しています。
apache1.3系+PHPで大量のメール送信プログラムを作成していますが、ある動きで困っております。
特定のフォームにて件名と本文を入力し、submitすることでsystem関数を利用して別のプログラムをバックグラウンドで動かそうとしてますが、メール送信前にコメントを表示したいのです。
しかし、表示をする前に後に記述しているsystem関数が読み込まれるようで、system関数の処理が終わると、そのコメントが表示されるようになってしまってます。
例)
// ここでコメントを表示
print<<<HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<title>WEBMAIL</title>
</head>
送信を受付ました
</body>
</html>
HTML;
// メール送信プログラムをバックグラウンドで
system("/usr/local/bin/php webmail2.php $subject $address $data & ");
実際に100件程のアドレスに向けて送信しましたが、送信処理は正常に動作しているようですがバックグラウンドで動いている気配がありません。
また、system関数の処理の前にコメントを表示したいのですが、実際に表示されるのは配送処理が終わってからとなっています。
system("/usr/local/bin/php webmail2.php $subject $address $data >/dev/null & ");
↑
これですと変数が受け渡しされませんでした。
先にコメントを表示するにはどうしたらいいのでしょうか?