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