Integrando Python com PHP
27 de maio de 2022Neste artigo abordarei como rodar rotinas em python integrado com PHP.
Para exemplificar este projeto, estarei criando uma pagina PHP, conforme se segue:
<?php
/*phpinfo();*/
/*Registra webservice para processamento de jobs*/
ini_set('display_errors', 'ON');
error_reporting(E_ALL);
include "/var/www/html/ws/connectdb.php";
//header('Cache-Control: no-cache, must-revalidate');
$data = json_decode(file_get_contents("php://input"));
$data = json_decode(file_get_contents("php://input"));
if($data){
$pergunta = $dbhandle->real_escape_string($data->pergunta);
} else {
$pergunta = $dbhandle->real_escape_string($_GET['pergunta']);
}
if($pergunta){
$command = escapeshellcmd('/var/www/html/python/nlp.py "'.$pergunta.'" > /var/log/proclog.log');
$resposta = shell_exec($command);
if($resposta){
echo '{"rs":[';
echo '{';
echo '"pergunta":'.$pergunta.',';
echo '"resposta":'.$resposta;
echo '}]}';
} else {
echo "sem resposta";
}
} else {
echo "sem pergunta";
}
?>
Neste programa chamamos o comando shell_exec para executar o comando python.
Ao chamar o programa python, devemos chamar, conforme apresentado.
#!/usr/bin/env python3
#import pandas as pd
import sys
pergunta = f'"{sys.argv[1]}"'
resposta= '"ok"'
print(resposta)
O detalhe que é importante é o comando /usr/bin/env chamando o python, que é destinado a transformar em um script python.
Para finalizar segue o link do url de teste:
http://maurinsoft.com.br/python/runpy.php?pergunta=teste2
O resultado é um JSON, conforme apresentado:
{"rs":[{"pergunta":teste2,"resposta":"ok" }]}
Instalando pacotes
Para adicionar pacotes basta rodar como administrador o comando:
pip3 install numpy
Exemplo de instalação do numpy