

Apache+PHP+MySQL1でサイトを作っています。
時間がかかる処理をバックグラウンドで処理したいのですが、メイン処理の変数をバックグラウンド処理に受け渡したいのですがうまくいきません。
http://www.stackasterisk.jp/tech/php/php02_02.jsp
インターネットで調べたところ上記URLが見つかったので参考にサンプルを作ってみました。
--------sample.php(メイン処理)-------
<?php
$arg = 123456;
System("/usr/local/bin/php bgprog.php $arg &");
?>
--------bgprog.php(バックグラウンド処理)-------
<?php
sleep(10);
echo "読み込み完了<br>";
echo $arg;
?>
このサンプルだと10秒スリープした後に「読み込み完了」と表示されるのですが$argが表示されません。
上記URLに「メインの処理から引数を渡したい場合には、bgprog 側できちんと受け取るようにしておかなければなりません」と書かれているのですがその方法がまったくわかりません。
このプログラム自体に無理があるのか、bgprog側でなんらかの処理をすれば解決するのかもわかっていません。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
コマンドラインで実行する場合、
$argv[1]
で一つめの引数を取り込むことができます。
なので
echo $arg;
を
echo $argv[1];
にすればいいと思います。
具体的な回答ありがとうございます。
回答のように記述したところ期待通りに動いてくれました。
これ一発で完全解決です。
ただただ感謝です。
No.1
- 回答日時:
> 上記URLに「メインの処理から引数を渡したい場合には、
> bgprog 側できちんと受け取るようにしておかなければなりません」
> と書かれているのですがその方法がまったくわかりません。
phpでなら、起動時引数は、$_SERVER['argv']で参照できます。
例示されているbgprog.phpは、単に$argを出力しようとしてますが、これは呼び出し元の変数とは、別の変数として扱われますので、$argが表示されないのは、正しい動きです。
参考URL:http://jp2.php.net/manual/ja/features.commandlin …
PHPの動きまで解説していただき感謝です。
まだまだ勉強不足でこのあたりのPHPの動きに関しては疎いですが、大変ためになりました。これを機会に知識を増やせるようがんばりたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- PHP PHPの変わった閉じタグの必要性と意味を教えてください。 1 2022/08/28 15:15
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP phpでcookieがうまく保存されない 2 2023/08/02 16:40
- PHP PHPで訪問回数を表示するカウンタを作成したい 3 2023/05/27 07:09
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP ECCUBE4のページ管理でPHPを実行させたい 1 2023/04/06 11:42
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
phpの処理中に画面表示ををする...
-
c言語 fopen
-
携帯電話用Webページの自動更新...
-
タイムアウト処理?となる
-
PHP postgres でロールバック...
-
PHPの変わった閉じタグの必要性...
-
大量チェックボックスの実装方...
-
VBAからPHPを実行(キック)したい
-
youtubeに音声のみのmp4ファイ...
-
FTPコマンドでディレクトリごと...
-
ob_end_clean と ob_clean の違...
-
PHPの拡張子を見せない方法
-
【file_exists】ファイルが存在...
-
Subversionのリポジトリの削除
-
session_start();について
-
Windowsサーバーでメール送信プ...
-
SmtpMailクラスについて
-
Illustratorで文字と画像を流し...
-
FTP サーバーにある画像を表示...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
PHPが処理を途中でやめる。原因...
-
phpの処理中に画面表示ををする...
-
Smartyにて、文字検索
-
PHP内、ボタン押下と同時にリロ...
-
インスタンス化に伴うメモリ消...
-
フォームが送信されたかの確認...
-
APIで出てきたXMLをPHPで表示さ...
-
大量チェックボックスの実装方...
-
デバッグの仕方・・・
-
PHPの変わった閉じタグの必要性...
-
入れ子になっているHTMLタグも...
-
デフォルト、フロントコントロ...
-
タイムアウト時に次の処理へ移...
-
PHPで偶数と奇数を判断するには
-
CakePHPでのemptyの 0 判定に関...
-
Cronで同じ処理を複数同時に実...
-
チェックボックスをビット演算...
-
PHPの書き方について
-
条件分岐 if(elseif) switchの...
おすすめ情報