PHPプログラムでPythonスクリプトを実行する方法
(推奨チュートリアル: PHP ビデオ チュートリアル)
PHP プログラムで Python スクリプトを実行する方法を紹介します。
php での Python プログラムの実行は、主にプログラム実行関数に依存します。
ここでは、exec()、system()、および passthru() という 3 つの関連関数を示します。
ここでは主に exec() 関数について説明し、パラメーターを渡すためのこの関数の使用法、
および PHP が使用する josn データを返す Python の使用方法を紹介します。
1. exec()
外部プログラムの実行
exec ( string $command [, array &$output [, int &$return_var ]] ) : string
パラメータの説明:
command: 実行するコマンド, これには 3 つの部分文字列が含まれます。最初の部分文字列は現在使用されているシステムのインタープリタ、2 番目の部分文字列は実行されるスクリプトの場所、3 番目の部分文字列は渡す必要がある無制限のパラメータです (スペースを含む)分割して形式に注意してください。部分文字列を区切るにはスペースを使用します。
output: 出力パラメータが指定されている場合、この配列にはコマンド実行の出力が入力されます。出力の各行に配列内の 1 つの要素が含まれます。 (注: 出力に格納されるのは Python の戻り値ではなく、すべての戻り値は保存されません。出力に格納されるのは Python スクリプトで出力された値であり、Python スクリプトで出力されたすべてのデータです。 print() function)
return_var: Output パラメータと return_var パラメータの両方が指定された場合、コマンド実行後の戻りステータスがこの変数に書き込まれます。
1.
index.php
<?php $re = exec('python ceshi.py', $out); // $re = iconv('gbk', 'utf-8', $re); var_dump($out); echo '<br/>'; var_dump($re);
ceshi.py
def send(): data = '1,2,3,4,5' print(data) if __name__ == '__main__': send()
を直接実行します (重要な注意: Python スクリプトによって返されたデータに中国語が含まれている場合) , エスケープには iconv('gbk', 'utf-8', $re); を使用する必要があります)
#2. パラメータを渡し、戻りデータを受け取る
inde.php
$canshu1 = '这是PHP传过来的参数'; $canshu2 = date('Y-m-d'); $re = exec("python ceshi.py $canshu1 $canshu2"); $re = iconv('gbk', 'utf-8', $re); var_dump($re);
test.py
import sys def send(): # a1 = sys.argv[1] # a2 = sys.argv[2] re = sys.argv[1:] data = '1,2,3,4,5,' + ','.join(re) # 转字符串 print(data) if __name__ == '__main__': send()
sys パッケージをインポートし、sys.argv[] 配列を使用して受信パラメータを取得します。最初の受信パラメータは sys.argv[ 1] 、2 番目は sys.argv[2] などです。返された JSON データを受け取るために argv[0]
を使用しないでください:
import sys import json def send(): dict = {'id':111, 'title':'测试title'} dict['data'] = sys.argv[1:] jsonArr = json.dumps(dict, ensure_ascii=False) print(jsonArr) if __name__ == '__main__': send()
(漢字を使用する場合は、ensure_ascii=False を指定する必要があります)
2.system()
外部スクリプトを実行します。
system ( string $command [, int &$return_var ] ) : string
C 版の system() 関数と同様に、コマンドパラメータで指定されたコマンドを実行し、実行結果を出力します。
PHP がサーバー モジュールで実行されている場合、system() 関数は、出力の各行の後に Web サーバーの出力キャッシュを自動的に更新しようとします。
コマンドの生の出力を処理せずに取得したい場合は、 passthru() 関数を使用してください。
index.php
<?php echo '这是运行直接输出:'; $re = system('python ceshi.py'); // $re = iconv('gbk', 'utf-8', $re); echo '<br/>'; echo '这是赋值输出:'; var_dump($re);
ここでは test.py の元のバージョンが使用されており、出力結果は次のとおりです。
3. passthru()
外部プログラムを実行して出力を表示
passthru ( string $command [, int &$return_var ] ) : void
exec() 関数と同様に、 passthru() 関数も外部コマンドの実行に使用されます。 (コマンド)。実行された Unix コマンドがバイナリ データを出力し、ブラウザに直接送信する必要がある場合は、exec() 関数や system() 関数の代わりにこの関数を使用する必要があります。画像ストリームを直接出力できる pbmplus などのコマンドを実行するためによく使用されます。 Content-type を image/gif に設定し、pbmplus プログラムを呼び出して gif ファイルを出力すると、PHP スクリプトからブラウザに画像を直接出力できます。
index.php
echo '这是运行直接输出:'; $re = passthru('python ceshi.py'); // $re = iconv('gbk', 'utf-8', $re); echo '<br/>'; echo '这是赋值输出:'; var_dump($re);
ここでは test.py の元のバージョンが使用されており、出力結果は次のとおりです。
(推奨チュートリアル: PHP ビデオ チュートリアル )
以上がPHPプログラムでPythonスクリプトを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
