Ausführen von Python-Skripten und Datenaustausch mit PHP
Es ist möglich, Python-Skripte in PHP auszuführen und Daten zwischen ihnen auszutauschen. Eine Methode hierfür ist die Verwendung gängiger Sprachformate und stdin/stdout für die Datenübertragung.
Betrachten wir beispielsweise ein Szenario, in dem Sie eine PHP-Klasse für das Scraping von Website-Daten haben. Um die Funktionen zu erweitern, möchten Sie Python-Skripte integrieren, die speziell für verschiedene Websites entwickelt wurden.
Um die Datenübertragung zwischen den beiden Sprachen zu erleichtern, können Sie den folgenden Ansatz nutzen:
PHP:
// Data to send to Python
$data = ['as', 'df', 'gh'];
// Execute Python script with JSON data as argument
$result = shell_exec('python /path/to/myScript.py ' . escapeshellarg(json_encode($data)));
// Decode the result
$resultData = json_decode($result, true);
// This will contain: array('status' => 'Yes!')
var_dump($resultData);
Python:
import sys, json
# Load data sent from PHP
try:
data = json.loads(sys.argv[1])
except:
print("ERROR")
sys.exit(1)
# Generate data to send to PHP
result = {'status': 'Yes!'}
# Send to stdout (to PHP)
print(json.dumps(result))
In diesem Beispiel sendet PHP JSON-Daten als Shell-Argument an das Python-Skript. Das Skript liest die Daten, verarbeitet sie und sendet das Ergebnis als JSON über stdout zurück.
Diese Methode ermöglicht eine sichere und zuverlässige Datenübertragung zwischen PHP und Python. Der Datenaustausch in strukturierten Formaten wie JSON sorgt für eine reibungslose Kommunikation und eliminiert potenzielle Probleme bei der Datenübertragung.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3