Quizas te interese este codigo, aunque lo ideal es que si no entiendes algo de su funcionamiento preguntes, no que copies y pegues solamente.
Código PHP:
Ver original<?php
// Pre-requisito de las ecuacion: el termino con la variable va primero.
"3x + 20 = 26"
, "5*z - 6 = 9"
, "2W + 20 = 34"
, "30+20=3"
, "30-20=3"
);
// Validar.
foreach($ecuaciones as $ecuacion)
{
if(preg_match('/^([0-9]+)( *)[*]{0,1}( *)([A-Za-z]){1,1}( *)(\+|\-)( *)([0-9]+)( *)=( *)([0-9]+)$/', $ecuacion, $partes)) {
// Es correcta, resolver.
echo("La ecuacion '$ecuacion' es valida y su resolucion es:
<b>$partes[4] = ".(($partes[11]+(($partes[6] == "+" ? -1 : 1)*$partes[8]))/$partes[1])."</b><br>");
}
else
{
echo("La ecuacion '$ecuacion' es invalida.<br>");
}
}
La salida es:
Cita: La ecuacion '3x + 20 = 26' es valida y su resolucion es: x = 2
La ecuacion '5*z - 6 = 9' es valida y su resolucion es: z = 3
La ecuacion '2W + 20 = 34' es valida y su resolucion es: W = 7
La ecuacion '30+20=3' es invalida.
La ecuacion '30-20=3' es invalida.