[解決済み] PHPでPythonを呼び出す
質問
私は最近書いた 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)
関連
-
[解決済み】未定義の関数mysql_query()をLoginで呼び出す【重複
-
[解決済み] PHP product.php?id=1 のような URL を作成する方法
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given [重複] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given.
-
[解決済み] 整形されていない数値が発生しました。
-
[解決済み】SQLSTATE[42000]: 構文エラーまたはアクセス違反が発生しました。1064 SQL 構文にエラーがあります - PHP - PDO [重複]。
-
[解決済み】「セッションキャッシュリミッターを送信できません - ヘッダーはすでに送信されています」【重複】。
-
[解決済み] SAJAXは死んだか?何を置き換えるべきか?
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: バインドされた変数の数が102行目のトークンの数と一致しない [終了]
-
[解決済み] [Solved] Fatal error: メンバ関数 query() の null への呼び出し。
-
[解決済み] Uncaught SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み] PHPの配列を別の配列にコピーする関数はありますか?
-
[解決済み] PHP 未定義関数への呼び出し