現在の位置: ホーム> 最新記事一覧> 機能統合を実現するためにPHPでPythonスクリプトを呼び出す方法

機能統合を実現するためにPHPでPythonスクリプトを呼び出す方法

gitbox 2025-06-13

Pythonをインストールします

まず、Pythonがインストールされていることを確認してください。 Pythonは通常、LinuxおよびMacOSシステムに事前にインストールされており、Windowsシステムに手動でダウンロードしてインストールする必要があります。次のコマンドに従って、Pythonが正しくインストールされているかどうかを確認できます。

 python --version

コマンドがPythonバージョン番号を出力すると、インストールが成功します。

Pythonスクリプトを書く

次に、Pythonスクリプトを書きます。フィボナッチシーケンスの次の数を計算する必要があると仮定します。これは、単純なPythonスクリプトの例です。

 def fib(n):
    if n <= 1:
        return n
    else:
        return fib(n-1) + fib(n-2)
<p>print(fib(10))

このスクリプトは、フィボナッチ配列の10番目の用語を計算し、結果を出力します。

PHPを介してPythonスクリプトを呼び出します

phpの `exec()`関数を使用して、pythonスクリプトを呼び出すことができます。 Pythonスクリプトを実行して出力を取得するPHPの例を次に示します。

 $output = exec("python /path/to/fib.py");
echo "output: " . $output;

この例では、 `exec()`関数は指定されたパスでpythonスクリプトを実行し、スクリプト出力を `$ output`変数に保存し、「echo`関数を介して出力を印刷します。

パラメーターをPythonスクリプトに渡します

PHPからPythonスクリプトにパラメーターを渡す必要がある場合は、 `exec()`関数にパラメーターを指定できます。たとえば、Fibonacciシーケンスの20番目の項目を計算する場合、PHPコードは次のように変更できます。

 $output = exec("python /path/to/fib.py 20");
echo "output: " . $output;

Pythonスクリプトでは、「sys.argv」を使用して、渡されたパラメーターを受信できます。以下は、変更されたPythonスクリプトです。

 import sys
<p>def fib(n):<br>
if n <= 1:<br>
return n<br>
else:<br>
return fib(n-1) + fib(n-2)</p>
<p>n = int(sys.argv[1])<br>
print(fib(n))

この例では、「sys.argv」はPHPで渡されたパラメーターを受信し、それらを整数に変換します。

Pythonスクリプトの返品値を処理します

Pythonスクリプトが複数の出力を返す場合、phpの `explode()`機能を介して返された文字列を配列に分割し、ラインごとに処理できます。これは、マルチライン出力を処理するPHPの例です。

 $output = exec("python /path/to/fib.py 20");
$lines = explode("\n", $output);
foreach ($lines as $line) {
    echo "output: " . $line . "";
}

Pythonライブラリをインストールし、PHPで使用します

Pythonスクリプトでいくつかの外部ライブラリを使用する必要がある場合は、 `exec()` functionをPHPで使用して「PIPインストール」を呼び出してPythonライブラリをインストールできます。 「リクエスト」ライブラリをインストールして使用する例は次のとおりです。

 exec("sudo pip install requests");
$output = exec("python /path/to/my_script.py");

この例では、最初にPIPを使用してリクエストライブラリをインストールし、Pythonスクリプトで使用しました。

セキュリティの問題

PHPの `exec()`関数を使用してPythonスクリプトを実行する場合、セキュリティの問題に特に注意する必要があります。攻撃者は、悪意のあるコードを注入してシステムを攻撃する場合があります。したがって、ユーザーの入力を処理する場合は、 `shell_exec()`の代わりに `shell_exec()`を使用するなど、必要な保護対策を講じる必要があります。また、悪意のあるユーザーがアクセスしないようにWebルートディレクトリにPythonスクリプトを配置しないようにします。

要約します

この記事では、PHPでPythonスクリプトを呼び出す方法について説明します。 `exec()`関数を通じて、開発者はPythonスクリプトを簡単に実行して出力結果を得ることができます。この記事では、パラメーターの渡し、返品値の処理、Pythonライブラリのインストール、およびセキュリティの問題についても説明します。上記の方法は、PHPとPythonの機能的統合が必要な場合に非常に便利です。