Integrando Python com PHP
Neste 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