Exécution de scripts Python et échange de données avec PHP
Il est possible d'exécuter des scripts Python dans PHP et d'échanger des données entre eux. Une méthode pour y parvenir consiste à utiliser des formats de langage courants et stdin/stdout pour la transmission des données.
Par exemple, considérons un scénario dans lequel vous disposez d'une classe PHP pour la récupération des données d'un site Web. Pour améliorer ses capacités, vous souhaitez intégrer des scripts Python conçus spécifiquement pour divers sites Web.
Pour faciliter le transfert de données entre les deux langages, vous pouvez tirer parti de l'approche suivante :
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))
Dans cet exemple, PHP envoie des données JSON comme argument shell au script Python. Le script lit les données, les traite et renvoie le résultat au format JSON via stdout.
Cette méthode permet un transfert de données sûr et fiable entre PHP et Python. L'échange de données dans des formats structurés comme JSON garantit une communication fluide et élimine les problèmes potentiels lors du transfert de données.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3