1. ホーム
  2. php

[解決済み] PHPでPythonを呼び出す

2023-06-13 14:02:50

質問

私は最近書いた Python スクリプトを持っていて、いくつかのオプションでコマンドラインを使用して呼び出しています。私は今、私の Mac 上でこのスクリプトをローカルに呼び出すための非常に薄い Web インターフェイスが欲しいと思っています。

Mac に mod_python や mod_wsgi をインストールするような面倒なことはしたくないので、PHP から system() または popen() を実行して Python スクリプトを呼び出そうとしていました。

何か良いアイデアはありますか?前もってありがとうございます!

どのように解決するのですか?

何をしているかによって system() または popen() は完璧かもしれません。 Python スクリプトに出力がない場合、または Python スクリプトの出力が直接ブラウザに行くようにしたい場合は system() を使用します。 php で Python スクリプトの標準入力にデータを書き込むか、Python スクリプトの標準出力からデータを読み込みたい場合は popen() を使います。popen() は読み込みか書き込みしかできませんが、両方はできません。 もし両方が必要なら、以下をチェックしてください。 proc_open() しかし、プログラム間の双方向通信では、各プログラムが他のプログラムが何かを行うのを待っているデッドロックを避けるために注意する必要があります。

もしユーザーが提供したデータをPythonスクリプトに渡したいのであれば、注意しなければならないのはコマンドインジェクションです。 注意しないと、ユーザーが "; evilcommand ;" のようなデータを送り、あなたの意志に反してプログラムに任意のコマンドを実行させることができます。

escapeshellarg() エスケープシェルcmd() はこれを助けることができますが、個人的には、以下のようなものを使って、既知の良い文字でないものをすべて削除するのが好きです。

preg_replace('/[^a-zA-Z0-9]/', '', $str)