PHPファイル内で別のPHPファイルを引数付きで実行して戻り値を受け取る
以下の記事の内容を把握しているとより理解しやすいと思います。 engineertrip.hatenablog.com
PHPファイルを実行する処理
<?php $cmd = exec('which php').' '; // PHPの実行コマンドのフルパスを取得 $cmd .= exec('pwd').'/'; // ドキュメントルートを取得 $cmd .= 'A2.php'.' '; // PHPファイルパスを指定 $cmd .= 'abc'; // 引数を指定 exec($cmd, $output, $status); var_dump($output[0]); exit;
実行されるPHPファイル
<?php echo $argv[1]; // abc exit;
実行結果
string(3) "abc"
連想配列の戻り値を受け取る
JSON形式の文字列を返却して実行側でjson_decode()を使用することによって、連想配列として受け取ることができる。
PHPファイルを実行する処理
<?php $cmd = exec('which php').' '; // PHPの実行コマンドのフルパスを取得 $cmd .= exec('pwd').'/'; // ドキュメントルートを取得 $cmd .= 'B2.php'.' '; // PHPファイルパスを指定 $cmd .= 'abc'.' '.'def'; // 引数を指定 exec($cmd, $output, $status); var_dump(json_decode($output[0], true)); exit;
実行されるPHPファイル
<?php echo '{"a":"'.$argv[1].'", "b":"'.$argv[2].'"}'; // {"a":"abc", "b":"def"} exit;
実行結果
array(2) { ["a"]=> string(3) "abc" ["b"]=> string(3) "def" }