Estoy sacando viejkos scripts que tenia en un directorio guardado desde hace años xD
este script lo que hace es que tu le das un texto preguntandole algo aritmético en forma de palabras y el script te responde.
<?php
##################################################
# Archivo : lg.php #
# Nombre : Lógica #
# Version : 1.8 Beta #
# Autor : WHK #
##################################################
// Declaraciones =======================================
$lg_pregunta = $_GET["pregunta"];
$lg_pregunta_cf = stripslashes(htmlspecialchars($lg_pregunta, ENT_QUOTES));
$lg_version = "Lógica 1.8 Beta";
$lg_header = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
<html>
<head>
<title>$lg_version</title>
</head>
<body style=\"color: rgb(255, 255, 255); background-color: rgb(102, 0, 0);\" alink=\"white\" link=\"white\" vlink=\"white\">
<div style=\"text-align: center;\">
<big>
<span style=\"font-weight: bold;\"><a href=\"?\">$lg_version by WHK</a></span>
</big><br /></div>";
$lg_footer = "</body>
</html>";
// =====================================================
// Funciones ===========================================
// Eliminar caracteres innecesarios --------------------
function limpiar($texto){
$texto = str_replace(" un","1",$texto); // --
$texto = str_replace(" una","1",$texto); // |
$texto = str_replace(" uno","1",$texto); // |-> Evita que palabras como "pregunta" sea tomado como "preg1ta".
$texto = str_replace("una ","1",$texto); // |
$texto = str_replace("uno ","1",$texto); // |
$texto = str_replace("un ","1",$texto); // --
$texto = str_replace(" ","",$texto);
$texto = str_replace("á","a",$texto);
$texto = str_replace("é","e",$texto);
$texto = str_replace("í","i",$texto);
$texto = str_replace("ó","o",$texto);
$texto = str_replace("ú","u",$texto);
$texto = str_replace("<","(",$texto);
$texto = str_replace(">",")",$texto);
$texto = str_replace("[","(",$texto);
$texto = str_replace("]",")",$texto);
$texto = str_replace("'",'"',$texto);
$texto = str_replace("mas","+",$texto);
$texto = str_replace("menos","-",$texto);
$texto = str_replace("x","por",$texto);
$texto = str_replace("multiplicadopor","*",$texto);
$texto = str_replace("multiplicaspor","*",$texto);
$texto = str_replace("multiplicandopor","*",$texto);
$texto = str_replace("multiplicaraspor","*",$texto);
$texto = str_replace("divididopor","/",$texto);
$texto = str_replace("partidopor","/",$texto);
$texto = str_replace("por","*",$texto);
$texto = str_replace("divid","/",$texto); // dividimos, divide, divido, dividirás, etc.
$texto = str_replace("multiplic","*",$texto); // multiplicamos, multiplica, multiplico, multiplicarás, etc.
$texto = str_replace("part","/",$texto); // partido, partirás, partiremos, partidas, partelo, etc.
$texto = str_replace("resta","-",$texto); // resta, restale, restaremos, le restarás, etc.
$texto = str_replace("quita","-",$texto); // quita, quitas, quitale, etc.
$texto = str_replace("saca","-",$texto); // saca, sacale, sacas, etc.
$texto = str_replace("suma","+",$texto); // suma, sumale, le sumamos, sumaremos, sumarás, etc.
$texto = str_replace("sumo","+",$texto); // le sumo, etc.
$texto = str_replace("iguala","=",$texto); // es igual a, es igual?, etc.
$texto = str_replace("punt",".",$texto); // punto, puntoy.. etc.
$texto = str_replace("coma",".",$texto); // coma.
$texto = str_replace("abreparenteci","(",$texto); // abre parentecis
$texto = str_replace("abresparenteci","(",$texto); // abres parentecis
$texto = str_replace("iniciaparenteci","(",$texto); // inicia parentecis
$texto = str_replace("iniciasparenteci","(",$texto); // inicias parentecis
$texto = str_replace("cierraparenteci",")",$texto); // cierra parentecis
$texto = str_replace("cierrasparenteci",")",$texto); // cierras parentecis
$texto = str_replace("termnaparenteci",")",$texto); // termina parentecis
$texto = str_replace("termnasparenteci",")",$texto); // terminas parentecis
$limpiar = array("*","/","+","-", "(", ")", ".", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
$v=0;
for ($n=0; $n < 300; $n++) {
if ($texto[$n] == '"'){
if($v == 0) {
$par = "(";
$v=1;
} else {
$par = ")";
$v=0;
}
$out = $out.$par;
}
$a=0;
$b=count($limpiar);
while($a<=$b){
if ($texto[$n] == $limpiar[$a]){ $out = $out.$texto[$n]; }
$a++;
}
}
return $out;
/*
Reparar:
tengo dos hermanas, y cada una quiere 5 peras, cuantas debo darle a cada una?
si tengo 2 manzanas, y le sumo 2 peras, cuantos platanos me quedan?
multiplica dos por tres
*/
}
// -----------------------------------------------------
// Reemplaza letras por números ------------------------
// Función creada por WHK.
function char2num($texto){
$texto = str_replace("b","v",$texto);
$unidad = array("cero","", "dos", "tres", "cuatro", "cnco","ses","sete","ocho","nueve");
/*
$decena = array("die","veint", "treinta", "cuarenta", "cincuenta","sesenta","setenta","ochenta","noventa");
$centena = array("cien","sien"); // $numero.$centena
$unidad_de_mil = "mil"; // $numero.$unidad_de_mil
$unidad_de_millon = "millon"; // millón, millones, etc. $numero.$unidad_de_millon
$unidad_de_billon = "billon"; // billón, billones, etc. $numero.$unidad_de_billon
*/
$a=0;
$b=count($unidad);
while($a<=$b){
$texto = str_replace($unidad[$a],$a,$texto);
$a++;
}
return $texto;
}
// -----------------------------------------------------
// Procesar todo ---------------------------------------
function procesar($texto){
$texto = char2num($texto);
$texto = limpiar($texto);
return $texto;
}
// -----------------------------------------------------
// Responder -------------------------------------------
function responde($texto){
$texto = procesar($texto);
$texto = @eval('return '.$texto.';');
if ($texto == "") {
return "La pregunta aritmética está mal fabricada.";
} else {
return $texto;
}
}
// -----------------------------------------------------
// =====================================================
// Index ===============================================
echo "$lg_header
<br /><br /><center>
<u>Descripción y uso</u><br />
$lg_version consiste en calcular operaciones aritméticas como por ejemplo <br />
<b><i>\"Cuantas manzanas son dos + tres y le quitas 5???, después le sumas una y lo multiplicas por 2.\"</i></b><br />
y debería darte como resultado \"2\". Por el momento solo puede reconocer palabras unitarias como por<br />
ejemplo un, uno, dos, nueve, etc. Tambié soporta parentecis escribiendolos directamente o diciendo<br />
abre parentesis, inicia parentecis, cierra parentecis, etc. Los caracteres < y > serán considerados parentesis.
Mientras esté en fase beta intenta no finalizar con un punto porque es tomado como decimal.<br /><br />
<form method=\"GET\">
<input type=\"text\" name=\"pregunta\" size=\"100\" value=\"";
if($lg_pregunta){
echo $lg_pregunta_cf;
} else {
echo "Cuantas manzanas son dos + tres y le quitas 5???, después le sumas una y lo multiplicas por 2.";
}
echo "\"><br /><input type=\"submit\" value=\"Preguntar\"></form>";
if($lg_pregunta){
echo "Pregunta solicitada: ".procesar($lg_pregunta);
echo "<br />Respuesta: ".responde($lg_pregunta);
}
echo "</center>$lg_footer";
// =====================================================
?>
El script es viejo, no es infalibre, tiene muchas fallas pero es algo xD, mas adelante veré si lo rehago nuevamente para hacer algo mas útil.
Al que le interese el script hagale cambios, muevale partes y haga lo que quiera con tal de que funcione mejor xD
PD: el script es viejo y en una parte se procesa en eval() asi que no lo pongan en un servidor público porque puede ser vulnerable a ejecución de código.