Executar un script Python des de PHP:
<?php
// Executa un script Python i captura la seva sortida
$output = shell_exec('python3 script.py');
echo "Sortida de Python: " . $output;
?>
Contingut de script.py
print("Hola des de Python!")
Aquest metode permet fer projecte mitjans amb Python?
Aquest mètode permet integrar Python amb PHP i pot ser molt útil per a projectes mitjans. Utilitzant aquest mètode, pots aprofitar les capacitats de Python per a tasques específiques mentre utilitzes PHP per gestionar la interfície web i altres funcionalitats del servidor.
Alguns casos d’ús comuns:
- Anàlisi de dades: Utilitza Python per realitzar anàlisis de dades complexos i presenta els resultats a través d’una interfície web construïda amb PHP.
- Machine Learning: Executa models de Machine Learning amb Python i mostra els resultats en una pàgina web PHP.
- Automatització de tasques: Utilitza scripts Python per automatitzar tasques com l’enviament de correus electrònics, la generació d’informes, etc.
- Gestió de fitxers: Utilitza Python per a la manipulació avançada de fitxers, com ara la lectura, l’escriptura i el processament de dades, i gestiona la interfície amb PHP.
Consideracions:
- Rendiment: Assegura’t que els scripts Python no s’executin durant massa temps per evitar bloquejos o retards en la resposta del servidor web.
- Seguretat: Verifica que els scripts Python no tinguin vulnerabilitats de seguretat i que només acceptin dades segures des del client.
- Depuració: Utilitza eines de depuració adequades per a ambdós llenguatges per assegurar-te que pots identificar i solucionar errors ràpidament.
1 Punts clau per executar Python des de PHP
Executa això al terminal per assegurar-te que Python funciona correctament:
C:\Users\urqte\AppData\Local\Programs\Python\Python313\python.exe C:\AppServ\www\python\script.py
Si funciona aquí, però no des de PHP, el problema és Apache o PHP.
2 Configura script.py
(Sortida en UTF-8)
import sys
sys.stdout.reconfigure(encoding='utf-8') # Garanteix que la sortida sigui UTF-8
print("Content-Type: text/html; charset=utf-8\n")
print("Hola des de Python!")
print("Versió de Python:", sys.version)
3 Executa Python des de PHP
Assegura’t que el teu python.php
té la ruta correcta i forci UTF-8
:
<?php
header('Content-Type: text/html; charset=utf-8'); // Assegura UTF-8
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$python_path = 'C:\\Users\\urqte\\AppData\\Local\\Programs\\Python\\Python313\\python.exe';
$script_path = 'C:\\AppServ\\www\\python\\script.py';
$command = escapeshellarg($python_path) . ' ' . escapeshellarg($script_path) . ' 2>&1';
$output = shell_exec($command);
$output = mb_convert_encoding($output, 'UTF-8', 'auto'); // Converteix a UTF-8 per si de cas
echo "Sortida de Python: <br>" . nl2br($output);
?>
4 Comprova que shell_exec()
està habilitat
Executa això en un arxiu PHP (test.php
):
<?php
if (function_exists('shell_exec')) {
echo "✅ shell_exec() està habilitat!";
} else {
echo "❌ shell_exec() ESTÀ DESACTIVAT! Habilita’l a php.ini.";
}
?>
5️⃣ Reinicia Apache i esborra la memòria cau
Després de fer canvis a php.ini
o httpd.conf
, reinicia Apache