tengo un problemita en php, tengo qe leer de un archivo de texto operaciones matematicas sencillas y resolverlas por lineas, ya tengo too eso, aqui esta el codigo:
Código PHP:
<?php
$txt="calculadora.txt";
$lectura = fopen($txt, "r");
if ($lectura)
{
while (!feof($lectura))
{
$buffer = fgets($lectura);
$columna=explode("|",$buffer);
$resultado="";
if (is_numeric($columna[0])==false)
{
$resultado="error-01";
}
/*if (is_numeric($columna[2])==false)
{
$resultado="error-02";
}*/
elseif ($columna[1]=="-" && $columna[0]<$columna[2])
{
$resultado="error-03";
}
elseif ($columna[1]=="*" && $columna[0]==0)
{
$resultado="error-04";
}
elseif ($columna[1]=="*" && $columna[2]==0)
{
$resultado="error-05";
}
elseif ($columna[1]=="/" && $columna[0]==0)
{
$resultado="error-06";
}
elseif ($columna[1]=="/" && $columna[2]==0)
{
$resultado="error-07";
}
elseif ($columna[1]=="+")
{
$resultado=$columna[0]+$columna[2];
}
elseif ($columna[1]=="-")
{
$resultado=$columna[0]-$columna[2];
}
elseif ($columna[1]=="*")
{
$resultado=$columna[0]*$columna[2];
}
elseif ($columna[1]=="/")
{
$resultado=$columna[0]/$columna[2];
}
elseif ($columna[1]=="/")
{
$resultado = pow($columna[0], $columna[2]);
}
echo $resultado."<br>";
}
fclose($lectura);
}
?>
el problema es el siguiente; error 1 y error 2 se encargan de verificar que columna 0 y columna 2 sean valores numericos, pero tengo encerrado a error 2 en comentario xq asi es el unico modo que me funciona, observen:
pero apenas libero error 2 de comentario, me pasa lo de la foto de abajo, todos son errores 2 , y no deberia ser asi, y el ultimo que es un error 1 no lo toma en cuenta...
aparte de esto, el "pow" que es para operaciones exponenciales en otros ejemplos que hice anteriormente me los tomaba perfectamente, y lo copie tal cual para este problema, pero aqui no me lo toma en cuenta, como se podran fijar en la primera foto.
por ultimo tambien debo en caso de que los operadores no sean +,-,/,*,^ osea que sean letras o numeros arrojar un error tambien, pero no se me ocurre como.
por favor ayudenme, de antemano gracias.