Künstliche Intelligenz (KI) als Hobby / Artificial Intelligence (AI) as a Hobby

Facebook Gruppe: Künstliche Intelligenz (KI) als Hobby

Python Scripte in PHP ausführen und Variablen übergeben

Insbesondere im Bereich der künstlichen Intelligenz ist die Programmiersprache Python besonders verbreitet. Für Web-basierte Anwendungen wird sie jedoch relativ selten benutzt, da hier PHP führend ist.

Für Web-basierte Anwendungen macht es Sinn, beide Welten zusammenzuführen. So kann die Eingabe der Daten webbasiert im Browser über PHP erfolgen, die Auswertung über rechenintensivere Skripte in Python erfolgen und das Ergebnis kann dann wieder im Browser über PHP ausgegeben werden.

Python Scripte in PHP ausführen und Variablen übergeben

Vorereitung

Um PHP mit Python zu verbinden lassen wir beides in diesem Fall auf einem Ubuntu Linux Server laufen. Hierfür muss ein Webserver wie der Apache mit lauffähigem PHP installiert sein. Dazu muss auch Python regulär installiert werden, was über die gängigen Repositories kein Problem sein sollte.

Wer dies noch nicht installiert hat, sollte sich vorher entsprechende Tutorials dazu angucken.

Schritt 1: PHP Datei erstellen

Wir erstellen in diesem Beispiel eine einfache PHP Datei, in der drei Variablen deklariert werden.

Dann wird das Python Skript einfach über exec() aufgerufen. Dabei ist auf die Anführungszeichen zu achten! Mit dem Befehl python wird Python gestartet. Darauf folgt mit einem Leerzeichen getrennt der Pfad und Dateiname des Python Skriptes.

Die drei Variablen werden mit hinter den Namen des Python Skripts gefügt.

Danach geben wir den Output des Skriptes über den print_r() Befehl in PHP wieder im Webbrowser aus.

Inhalt der index.php

$var1 = "Hello";
$var2 = "World";
$var3 = " !";
 
exec("python fileadmin/python/pythoninphp.py $var1 $var2 $var3", $output);
 
print_r($output);

Schritt 2: Python Datei erstellen

In der Python Datei geht es nun darum, die drei Variablen die wir übergeben haben zu übernehmen und weiter zu verarbeiten.

Hierfür muss am Beginn der Datei bzw. des Skriptes import sys eingefügt werden, damit diese Funktion zur Verfügung steht.

Mit den zwei ersten Print-Befehlen wird einfach nur angezeigt, wie viele Variablen übergeben wurden (len) und welchen Inhalt diese haben (str). Dies dient lediglich der Veranschaulichung und Kontrolle.

Danach werden mit einer for-Schleife die übergebenen Variablen durchgegangen und in diesem Fall einfach ausgegeben.

Inhalt der pythoninphp.py

import sys

print('Anzahl der Variablen: ', len(sys.argv), 'Variablen')
print('Inhalt der Variablen: ', str(sys.argv))

for eachArg in sys.argv:
    print(eachArg)

Schritt 3: Ergebnis der .PY Datei in der .PHP Datei ausgeben

Das Ergebnis der Python Datei wird dann wieder an PHP zurückgegeben und als Variable $output in PHP verfügbar gemacht. Dieser $output kann dann ganz einfach im Browser ausgegeben werden. Dabei bietet sich an, die Formatierung "pre" in HTML zu nutzen:

Array
(
    [0] => fileadmin/python/pythoninphp.py
    [1] => Hello
    [2] => World
    [3] => !
)