本記事はPHPからPythonを実行する方法を紹介するものです。
WordPressなどPHPメインのサイトでも内部的にスクリプトを実行したり、サンプルコードの動作を紹介したりするなどPythonを動作させたい場合があると思います。
PHPからPythonを呼び出すことでPHPメインのサイトでもPythonを動作させることが可能です。
今回はシェルスクリプトを実行するPHPの関数「exec()」からPythonを呼び出す方法について説明します。
PythonをPHPに組み込むことができればサイト構築や記事作成の幅が広がります。
目次
【PHP】exec()でPythonを呼び出す方法
「exec()」はOSのシェルコマンドを実行することができる関数です。
exec('[実行するコマンド]', '[出力値]', '[戻り値]')
◆実行するコマンド
実行するコマンドを指定します。
今回はPythonを実行したいので
'python xxxx.py'
と指定します。
◆出力値
省略できます。
print()関数で出力したい内容を受け取ることが可能です。
出力内容は配列に1行ごとに格納されています。
◆戻り値
省略可能です。関数の実行結果が出力されます。
PHPからPythonから呼び出す処理の記述例
最も簡単な記述方法は以下の通りです。
1 2 | $command = "python /home/user/xxxxxxxxx/test.py exec($command, $output); |
これでも実現可能ですが、引数に日本語を指定したい場合、このままでは文字化けします。
実行環境に合わせて言語の指定が必要です。
1 2 | $command = "export LANG=ja_JP.UTF-8;python /home/user/xxxxxxxxx/test.py $param1, $param2"; exec($command, $output); |
◆Pythonの記述
Pythonのprint()で指定した内容が$outputに出力されます。
1 2 | print('test1') print('test2') |
◆PHPの記述
1 2 3 4 5 6 7 8 9 | <!--?php // 実行環境に合わせて言語も指定。実行ファイルは絶対パスで指定 $command = 'export LANG=ja_JP.UTF-8;python /home/user/xxxxxxxxx/test.py'; exec($command, $output); foreach ($output as $o) { echo $o . '<br>'; } ?--> |
以上、PHPからPythonを呼び出す方法でした。
まとめ
PHPからPythonを呼び出す場合はexec()関数を使用します。
日本語を引数として渡したい場合は文字化けするので実行環境に合わせて文字コードを指定しましょう。
PHPにPythonを埋め込むことができればプログラムや記事の幅が広がるので是非試してみてください。