Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/10/2006, 09:43
Avatar de Erikfrancisco
Erikfrancisco
 
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Se me hizo muy curioso tu caso así que me puse a pensar un poco y logre realizar el siguiente código:

Código PHP:
<?php 
$operacion 
"58 - 2";

if ( !
is_int $operacion ) )
{
   
$operaciones = array ( '+''-''*''/' );

   for ( 
$e 0$e count $operaciones ); $e++ )
   {
      if ( 
strpos $operacion$operaciones[$e] ) )
      {
         
$posicion strpos $operacion$operaciones[$e] );
         break;
      }
      else
      {
         continue;
      }
   }

   
$cual_operacion substr $operacion$posicion);
   
$calcula explode $cual_operacion$operacion );

   switch ( 
$cual_operacion )
   {
      case 
'+':
         echo 
$calcula[0] + $calcula[1];
         break;
      case 
'-':
         echo 
$calcula[0] - $calcula[1];
         break;
      case 
'*':
         echo 
$calcula[0] * $calcula[1];
         break;
      case 
'/':
         echo 
$calcula[0] / $calcula[1];
         break;
      default:
         echo 
'<p>No es una operación valida.</p>';
         break;
   }

}
else
{
   echo 
$operacion;
}
?>
Donde $operación es la variable que recibes de tu consulta.

Nota: Este ejemplo lo tendrás que mejorar poniendole validaciones donde la variable $operacion solo tenga un sólo tipo de operación es decir que no realice esto si la variable contiene algo como esto: 16+15-2. Entonces este ejemplo sólo te sirve para hacer una sóla operación tendrás que hacerle algunas modificaciones si es que quieres que te resuelva una operación como esta: [18+2]/5. Como vez este ejemplo que te puse es muy sencillo pero de aquí puede que te des una idea para realizar lo que anteriormente de mencione.

Hojala te sirva de algo. Suerte