Extraer números de una cadena con PHP

Bueno he hecho una función simple para poder extraer solo letras numéricas pasando como parámetro palabras compuestas como por ejemplo si tenemos una variable $rgf = 'e1x2a3m4p5l6e'; y queremos solamente los números de esa cadena pues esta función nos va a servir.


  // @uthor: Robert Galeano Fernandez - @rgfpy
  function ReturnNumbers($var){
    $i = 0;
    $return = "";
    $part_var = "";
    $len_var = strlen($var);

    for ($i=0; $i<$len_var; $i++) {
      $part_var = substr($var, $i, 1);
      if (is_numeric($part_var)) {
        $return .= $part_var;
      }
    }

    return $return;
}
?>

Como verán el script es muy sencillo lo primero que necesitamos es recorrer la cadena para preguntar si cada una de las letras es numérica y si es numérica vamos guardando pero para recorrer necesitamos saber cuantas letras contiene nuestra cadena.
Teniendo todo empezamos, con la función strlen() obtenemos la cantidad de caracteres que posee nuestra cadena, con la función substr() extraemos parte de nuestra cadena, con la función is_numeric() verificamos si la cadena que le pasamos es de tipo numérico.

Comentarios

  1. Muy bueno!..queria hacerte una consulta, como podria hacer para separar en variables numeros de una cadena, por ejemplo: $cadena="blabla 1234, blablabla 5678 blabla 0899", y que asi: $var1 = 1234 $var2 = 5678 $var3 = 0899, y asi si hay mas, te agradeceria eternamente si pudieras ponerme un ejemplo, desde ya gracias!!

    ResponderBorrar
    Respuestas
    1. y lo que se me ocurre usando la misma funcion de arriba es la sgte ojala te sirva:
      $cadena_arr = explode(' ', $cadena); $cant = count( $cadena_arr ); $cont_aux = 0; for($i = 0; $i<$cant; $i++){ $retorna = ReturnNumbers($cadena_arr[$i]); if ($retorna <> ''){ $cont_aux += 1; $numeros[$cont_aux] = $cadena_arr[$i]; } }
      for($i = 0; $i'; }

      Borrar

Publicar un comentario

Entradas más populares de este blog

Obtener el anterior y siguiente registro de una tabla MySQL con PHP

Cargar dinamicamente un DropDownListBox con PowerBuilder