Maison >développement back-end >tutoriel php >Comment échanger des données entre des scripts Python exécutés et PHP

Comment échanger des données entre des scripts Python exécutés et PHP

Linda Hamilton
Linda Hamiltonoriginal
2024-10-21 20:47:02885parcourir

How to Exchange Data Between Executed Python Scripts and PHP

Exécuter des scripts Python en PHP et échanger des données

PHP et Python sont deux langages de programmation polyvalents dotés de capacités distinctes. Parfois, les développeurs peuvent être confrontés à la nécessité d'intégrer des scripts Python dans des applications PHP pour exploiter des fonctionnalités spécialisées. Un aspect crucial de cette intégration est la capacité d'échanger des données de manière transparente entre les deux langages.

Mécanismes d'échange de données

Heureusement, l'échange de données entre PHP et Python est réalisable via formats et canaux de communication standardisés, à savoir :

  • Format commun : JSON (JavaScript Object Notation) est un format d'échange de données largement pris en charge qui peut être facilement analysé par PHP et Python.
  • Canaux de communication : Les flux d'entrée/sortie (stdin et stdout) fournissent un moyen fiable de transfert de données entre les processus.

Exemple de mise en œuvre

Voici un exemple de la façon d'exécuter un script Python à partir de PHP et d'échanger des données en utilisant JSON :

PHP :

<code class="php"><?php
// Data to pass to Python (in JSON format)
$data = json_encode(['as', 'df', 'gh']);

// Execute Python script with JSON data as an argument
$result = shell_exec('python /path/to/myScript.py ' . escapeshellarg($data));

// Decode the result from Python
$resultData = json_decode($result, true);

// Output the result
var_dump($resultData); // Array with key 'status' set to 'Yes!'
?></code>

Python :

<code class="python">import sys
import json

# Parse JSON data received from PHP
try:
    data = json.loads(sys.argv[1])
except:
    print("ERROR")
    sys.exit(1)

# Generate data to send back to PHP
result = {'status': 'Yes!'}

# Send result via stdout (sent to PHP)
print(json.dumps(result))</code>

Fiabilité et difficulté

L'approche décrite ci-dessus est généralement fiable pour l'échange de données entre PHP et Python. Le niveau de difficulté de mise en œuvre dépend de la complexité des données et des exigences spécifiques du projet. Cependant, il offre un moyen flexible et efficace d'intégrer ces deux langages pour des tâches spécialisées.

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!

Déclaration:
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