Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/05/2015, 17:04
marco_glz
 
Fecha de Ingreso: mayo-2015
Mensajes: 2
Antigüedad: 9 años
Puntos: 0
Pregunta Mandar y recoger Parametros al cmd en Php a python

Hola que tal! Necesito de su ayuda, resulta que estoy haciendo uso de Pyaiml para un chat inteligente, el problemas surge que quiero crear recoger y enviar parametros desde un cuadro de texto en php y enviarlos a python, el chiste es ejecutar el chatbot desde php y no accediendo a la consola de cmd, disculpen soy un poco inexperto en estos temas espero me puedan ayudar y aceptare sus sugerencias gracias.
Chat.php
Código:
<!DOCTYPE html>
<html>
	<head>ChatBot</head>
		<script>
			function sf(ID)
			{
				document.getElementById(ID).focus();
			}
		</script>
	
	<body onload="sf('name')">
		<form name="prueba" action="chat.php" method="post" data-ajax="false">
      <label form="name">Texto: </label>
      <input type="text" name="name" id="name" autocomplete="off">
		</form>
	</body>
</html>



<?php

$param10 = $_POST["name"];
//$param1 = "viajar";


$command = "C:\Python27\python brain.py";
$command .= " $param10";
//$command .= " $param1";

header('Content-Type: text/html; charset=utf-8');
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
echo "<style type='text/css'>
 body{
 background:#000;
 color: #7FFF00;
 font-family:'Lucida Console',sans-serif !important;
 font-size: 12px;
 }
 </style>";

$pid = popen( $command,"r");
echo "</br>";

echo "<body><pre>";

while( !feof( $pid ) )
{
 echo fread($pid, 256);
 flush();
 ob_flush();
 echo "<script>window.scrollTo(0,99999);</script>";
 usleep(100000);
}
pclose($pid);

echo "</pre><script>window.scrollTo(0,99999);</script>";

echo "<br /><br />Script finalizado<br /><br />";
?>

brain.py
Código:
import aiml
import sys
import time

print("The passed arguments are ", sys.argv)
print(sys.argv[1:50])
#print(sys.argv)


# Creamos el objeto kernel
kern = aiml.Kernel()

# Cuando cargamos un AIML, tenemos dos opciopnes: cargar los archivos
# originales AIML, o cargar un cerebro precompilado creado en una
# ejecucion previa. En caso de no exixtir ningun cerebro, forzamos la
# carga de los archivos AIML.
brainLoaded = False
forceReload = False
while not brainLoaded:
	if forceReload or (len(sys.argv) >= 2 and sys.argv == "reload"):

		# Usamos el metodo bootstrap() para inicializar el kernel.
		# El archivo learnFiles es un argumento opcional sobre la lista de
		# archivos a cargar.
		kern.bootstrap(learnFiles="std-startup.xml", commands = "load aiml b")
		brainLoaded = True
		# Ahora que cargamos el cerebro, lo guardamos para acelerar las cosas
		# en el futuro
		kern.saveBrain("standard.brn")
		pass
	else:
		# Esperamos a que cargue el cerebro archivado.
		# Si falla regresamos al metodo de recarga
		try:
			# El argumento opcional brainFile especifica un cerebro a cargar
			kern.bootstrap(brainFile = "standard.brn")
			brainLoaded = True
			pass
		except:
			forceReload = True
	pass
print "\nModo interactivo (ctrl-c para salir!"

for valor in range(1):
	print kern.respond(sys.argv[1])
	pass