Interaction de données entre PHP et Python

藏色散人
Libérer: 2023-04-07 18:02:01
avant
4472 Les gens l'ont consulté

Récemment, j'ai décidé d'utiliser tp5 pour le développement d'interfaces APP et Python pour l'analyse de données dans un projet. Ensuite, j'ai été confronté à une question : comment PHP et Python interagissent-ils avec les données ?

Idée

La façon dont j'ai résolu ce problème était d'utiliser la fonction passthru de PHP pour appeler la commande permettant d'exécuter le script Python.

Implémentation

Appelez la commande en PHP pour exécuter le script Python

//php.php
<?php
$params = "value"; #传递给python脚本的入口参数  
$path="python python.py "; //需要注意的是:末尾要加一个空格
passthru($path.$params);//等同于命令`python python.py 参数`,并接收打印出来的信息 
?>
Copier après la connexion

S'il y a plusieurs paramètres, séparez-les par des espaces

Recevoir les paramètres transmis par PHP en Python

sys.argv[] est utilisé pour obtenir les paramètres d'entrée transmis par PHP à python

//python.py
import sys  
params = sys.argv[1] #即为获取到的PHP传入python的入口参数
print(params);
Copier après la connexion

Si dans Recevoir plusieurs paramètres en Python

params = sys.argv[1:]
Copier après la connexion

Paramètres de retour de Python

Pour renvoyer plusieurs valeurs de Python, vous devez écrire les valeurs dans un tuple, puis Convertissez-le en json via json.dumps() et imprimez-le. Vous pouvez obtenir le json imprimé par le script Python via passthru en PHP

import sys
import json
params = (&#39;Google&#39;, &#39;Runoob&#39;, 1997, 2000);
json_str =json.dumps(params);
print(json_str);
Copier après la connexion

Vous devez également ajouter @ avant passthru en PHP, sinon l'invite suivante sera signalé

Notice: Array to string conversion in php.php on line 6
Copier après la connexion

Effet

Exécutez le fichier PHP qui appelle le script Python, et la valeur de sortie dans le navigateur est la valeur imprimée par Python.

Pour plus de connaissances sur PHP, veuillez visiter le Site Web PHP chinois !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal