phpでcronとか使ったりすると、そのファイル内で外部ファイルphpを実行させたい時あると思います。そんな時はexec()を使って実行してみましょう。非同期処理。
やりたい事
1.cronを使ってphpファイルを定期実行させたい。ファイル名:a.php
2.定期実行させたa.phpのファイル内でb.phpを実行させたい。
※その際、値をb.phpへ渡したい
cronで実行させるファイル
$value1 = 'test1';
$value2 = 'test2';
$exec = $value1.' '.$value2;
exec('/usr/local/bin/php /home/xxxxx/public_html/cron/b.php '.$exec.' > /dev/null &')
※mixhostのレンタルサーバーで実施してみました。
※フルパスで記載
execで実行させたファイル、値2つ取得
$exec_out0 = $argv[0];//ファイル場所取得/home/xxxxx/public_html/cron/b.php
$exec_out1 = $argv[1];//test1取得
$exec_out2 = $argv[2];//test2取得
参考
今回、PHPでexec関数を使いバックグラウンドでコマンドラインを使い処理を行う方法を試しました。
コマンドラインでの引数の渡し方