Si tuvieras esta expresión:
1+(4*(7-2))
¿Cómo harías para extraer los valores de los últimos parentesis?
No es muy dificil, primero necesitamos saber la ULTIMA posición del ULTIMO parentesis de APERTURA! » ” ( ” y luego saber la PRIMERA posición del PRIMER paréntesis de CIERRE! » ” ) “;
Y … ¿Cómo lo hago?
En PHP tenemos la función STRPOS que nos devuelve la posición de cualquier caracter que busquemos dentro de una cadena de texto. Tenemos también STRRPOS (nótese de una R adicional) que nos devuelve la última posición de un caracter en particular!
// ejemplo
$txt =
"a(b(c))";
//0123456 las posiciones del texto!
echo $p01 = strpos ( $txt, ")" ); // nos devuelve 5
echo $p02 = strrpos( $txt, "(" ); // nos devuelve 3
Con el ejemplo anterior hacemos que PHP nos muestre la posición de los parentesis () que están dentro de los otros parentesis ()!
Ahora extraeremos el contenido de dichos paréntesis!
// ejemplo
$txt =
"a(b(c))";
//0123456 las posiciones del texto!
echo $p01 = strpos ( $txt, ")" ); // nos devuelve 5
echo $p02 = strrpos( $txt, "(" ); // nos devuelve 3
// substr (texto, posicion, ncaracteres)
// $p02 - $p01 nos da la longitud de cadena a extraer!
// $p02 es 3, entonces comenzará a extraer desde la pos 3
// $p01 es 5, pero solo queremos 1 caracter!
echo substr ( $txt, $p02 , $p01-$p02);
// para solo extraer la letra C, seria asi:
echo substr ( $txt, $p02+1 , $p01-$p02-1);
Eso es todo! ahora a probar! Como es sabido, todo esto se encuentra aquí; lamentablemente por ahora no encuentro la manera de descargar el código PHP, pronto implementaré algun script para poder descargar el código PHP contenido en develop.ignoranto.info!












Esto muy bueno pero no le encuentro caso a que lo descarguen ya que esplicas muy bien 8B