😀

phpからpythonを呼び出し実行結果を利用

2022/12/08に公開

はじめに

この記事ではphpからpythonプログラムを実行し,その出力結果を文字列としてphpのプログラムで利用する方法について解説します.

環境

一応書いたけど大体の環境で動くと思います.
php:5.5.38
python:3.6.4

実行するpythonプログラム

とにかく分かりやすくしました:monkey: 文字列を二行出力するだけです.

exec_from_php.py
print("1line")
print("2line")

当然こうなります.

$ python exec_from_php.py 
1line
2line

phpからpythonを呼び出す

phpで下記のようにexecを呼び出すと,第一引数の文字列のコマンドを実行し,その出力の各行を要素として,第二引数を文字列の配列とします.つまり第二引数は出力される行の大きさの配列となります.第二引数の配列に,既に何らかの要素が含まれている場合,配列の最後に追加される点に注意.

exec($command,$output);

実際に使ってみました.第一引数には先程のpythonプログラムを実行するコマンドを指定しています.そのため,第二引数であるoutputは一つ目の要素が"1line"二つ目の要素が"2line"の配列となっているはずです.

exec_py.php
<?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を呼び出すことができました.数値を扱いたい方は呼び出し後に,文字列を数値に変換するなりなんなりしたらいいと思います.

GitHubで編集を提案

Discussion