#はじめに
この記事ではphpからpythonプログラムを実行し,その出力結果を文字列としてphpのプログラムで利用する方法について解説します.
#環境
一応書いたけど大体の環境で動くと思います.
php:5.5.38
python:3.6.4
#実行するpythonプログラム
とにかく分かりやすくしました 文字列を二行出力するだけです.
print("1line")
print("2line")
当然こうなります.
$ python exec_from_php.py
1line
2line
#phpからpythonを呼び出す
phpで下記のようにexecを呼び出すと,第一引数の文字列のコマンドを実行し,その出力の各行を要素として,第二引数を文字列の配列とします.つまり第二引数は出力される行の大きさの配列となります.第二引数の配列に,既に何らかの要素が含まれている場合,配列の最後に追加される点に注意.
exec($command,$output);
実際に使ってみました.第一引数には先程のpythonプログラムを実行するコマンドを指定しています.そのため,第二引数であるoutputは一つ目の要素が"1line"二つ目の要素が"2line"の配列となっているはずです.
<?php
$command="python exec_from_php.py ";
exec($command,$output);
print "$output[0]\n";
print "$output[1]\n";
?>
下記の実行結果から無事にoutputに代入されていることが確認できました.
$ php exec_py.php
1line
2line
#まとめ
phpからpythonを呼び出すことができました.数値を扱いたい方は呼び出し後に,文字列を数値に変換するなりなんなりしたらいいと思います.