Páginas: [1]
  Imprimir  
Autor Tema: PHP Responde  (Leído 390 veces)
0 Usuarios y 1 Visitante están viendo este tema.
WHK
吴阿卡
Administrador
Usuario constante
*****

Karma: +8/-3
Mensajes: 272


Coder

yan_unico_102
Ver Perfil WWW Email
« : Abril 08, 2010, 07:17:33 »


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.
Código:
<?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&oacute;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&eacute;tica est&aacute; mal fabricada.";
 } else {
  return $texto;
 }
}
// -----------------------------------------------------
// =====================================================
 
 
// Index ===============================================
echo "$lg_header
<br /><br /><center>
<u>Descripci&oacute;n y uso</u><br />
$lg_version consiste en calcular operaciones aritm&eacute;ticas como por ejemplo <br />
<b><i>\"Cuantas manzanas son dos + tres y le quitas 5???, despu&eacute;s le sumas una y lo multiplicas por 2.\"</i></b><br />
y deber&iacute;a darte como resultado \"2\". Por el momento solo puede reconocer palabras unitarias como por<br />
ejemplo un, uno, dos, nueve, etc. Tambi&eacute soporta parentecis escribiendolos directamente o diciendo<br />
abre parentesis, inicia parentecis, cierra parentecis, etc. Los caracteres < y > ser&aacute;n considerados parentesis.
Mientras est&eacute; 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&eacute;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.
« Última modificación: Abril 08, 2010, 07:19:29 por WHK » En línea

janito24
Programador
Usuario constante
*

Karma: +6/-0
Mensajes: 232


Booooooo!


Ver Perfil WWW
« Respuesta #1 : Abril 09, 2010, 02:45:06 »


Ja ja ja muy bueno xD mañana lo reviso, se ve simpático :)
En línea

Páginas: [1]
  Imprimir  
 
Ir a: