Procesamiento de Cadenas


 

                        El lenguaje PHP ofrece una serie de herramientas para el procesamiento de cadenas, que es muy utilizado en mostrar datos con un cierto formato o en almacenar en una base de datos información de una manera determinada.
A continuación se detallan algunas funciones para el manejo de cadenas:

Funciones: echo y print()
                        Estas dos instrucciones se utilizan para mostrar una o varias cadenas en la pantalla. Generalmente se ha venido utilizando la instrucción echo en los ejemplos realizados, pero también es posible utilizar la función print(), con la diferencia de que en esta función, la cadena a imprimir debe estar entre paréntesis, cosa que con la instrucción echo, no es necesario.

Ejemplo:
                 echo $Nombre;
                 print ($Domicilio);

Funcion: printf()
                        Esta función es similar a la función print(), pero permite dar un cierto formato a lo que se desea imprimir. La Sintaxis de esta función es:

                        printf("Formato", $cadena);

Formato debe ser una letra permitida.
$cadena es la variable a imprimir.

Los tipos de formatos permitidos, son los siguientes:

Letra de Formato

Especificación de lo que realiza

b

Expresa a la variable como número binario

c

Expresa a la variable como carácter ASCII

d

Expresa a la variable como número decimal

f

Expresa a la variable como número de punto flotante

o

Expresa a la variable como número octal

s

Expresa a la variable como un string (cadena)

x

Expresa a la variable como número hexadecimal en minúsculas

X

Expresa a la variable como número hexadecimal en Mayúsculas

Para establecer que la letra es un formato de impresión, se debe colocar delante de ella el signo de porcentaje (%).

Ejemplo 1:
                        Este ejemplo almacena el valor del sueldo en la variable $Sueldo, y luego lo muestra de diferente forma:

<Html>
<Title> Ejemplo1-Printf.php </Title>
<Body>
<?Php
            $Sueldo = 2947.3262;
            printf($Sueldo . "<Br>");
            printf("%f", $Sueldo); printf("<Br>");
            printf("$ %7.2f",$Sueldo); printf("<Br>");
?>
</Body>
</Html>

Ejemplo 2:
                        Asignar a una variable, una determinada cadena y posteriormente mostrarla en todos los formatos descriptos.

<Html>
<Title> Ejemplo2-Formatos.php </Title>
<Body>
<?Php
            $cadena = "76.9 minutos";
            printf("Resultado en formato binario: ");
            printf("%b", $cadena);
            printf("<Br>");
            printf("Resultado según la tabla ASCII: ");
            printf("%c", $cadena);
            printf("<Br>");
            printf("Resultado en formato decimal: ");
            printf("%d", $cadena);
            printf("<Br>");
            printf("Resultado en formato float: ");
            printf("%f", $cadena);
            printf("<Br>");
            printf("Resultado en formato octal: ");
            printf("%o", $cadena);
            printf("<Br>");
            printf("Resultado en formato string: ");
            printf("%s", $cadena);
            printf("<Br>");
            printf("Resultado en formato hexadecimal (minúscula): ");
            printf("%x", $cadena);
            printf("<Br>");
            printf("Resultado en formato hexadecimal (mayúscula): ");
            printf("%X", $cadena);
?>
</Body>
</Html>

Funcion: sprintf()
            Es similar a la función printf, con la diferencia de que no imprime el resultado en el navegador, sino que se utiliza para almacenar una cadena en una variable.
La sintaxis es la siguiente:

 variable = sprintf ("Formato", cadena);

En este caso, sprintf,  devuelve en la variable el valor de la cadena transformado de acuerdo al Formato indicado.
El Formato puede ser cualquier letra de las descriptas para la función printf.

Ejemplo 3:
                    IDEM al ejemplo 2 utilizando sprintf.

<Html>
<Title> Ejemplo3-Sprintf.php </Title>
<Body>
<?Php
            $cadena = "76.9 minutos";
            // Transformacion a binario
            $variable = sprintf("%b<Br>",$cadena);
            // Transformación a caracteres
            $variable .= sprintf("%c<Br>", $cadena);
            // Transformación a decimal
            $variable .= sprintf("%d<Br>", $cadena);
            // Transformación a float
            $variable .= sprintf("%f<Br>", $cadena);
            // Transformación a octal: ");
            $variable .= sprintf("%o<Br>", $cadena);
            // Transformación a string
            $variable .= sprintf("%s<Br>", $cadena);
            // Transformación a hexadecimal (minúscula)
            $variable .= sprintf("%x<Br>", $cadena);
            // Transformación a hexadecimal (mayúscula)
            $variable .= sprintf("%X<Br>", $cadena);
            echo $variable;
?>
</Body>
</Html>

Funcion: strtoupper()
                    Esta función permite transformar una cadena a mayúsculas.

Ejemplo 4:
                    Almacenar una frase en una variable y posteriormente mostrarla en mayúsculas.

<Html>
<Title> Ejemplo4-StrToUpper.php </Title>
<Body>
<?Php
            $frase = "Hoy es un día soleado.";
            echo "<H3>";
            echo "Frase ingresada: " . $frase;
            echo "<Br><Br>";
            echo "Frase en Mayúsculas: " . strtoupper($frase);
?>
</Body>
</Html>

           

 

Funcion: strtolower()
                  Es la inversa de la función anterior, es decir que transforma una cadena en minúsculas.
Ejemplo 5:
                   Almacenar una frase en una variable y posteriormente mostrarla en minúsculas.

<Html>
<Title>  Ejejemplo5-StroLower.php  </Title>
<Body>
<?Php
   $frase = "ESTE APUNTE ES DE PHP";
   echo "<H3>";
   echo "Frase ingresada: " . $frase;
   echo "<Br><Br>";
   echo "Frase en Minúsculas: " . strtolower($frase);
 ?>
</Body>
</Html>

Funcion: ucwords()
                        Convierte el primer carácter de cada palabra en mayúsculas.
Ejemplo 6:
                        Inicializar una variable con el nombre y apellido de una persona y posteriormente mostrarla con sus primeros caraceteres en mayúsculas.

<Html>
<Title>  Ejemplo6-UcWords.php  </Title>
<Body>
<?Php
   $nombre = "marcelo rodriguez";
   echo "<H3>";
   echo "Cadena original: " . $nombre;
   echo "<Br><Br>";
   echo "Cadena convertida: " . ucwords($nombre);
 ?>
</Body>
</Htm>



 

Funcion: trim()
            Mediante esta función, se eliminan los espacios en blanco al inicio y al final de una cadena.. También elimina los caracteres de control:
“\n”, “\r”, “\t” y “\0”.

Ejemplo 7:
                       
<Html>
<Title>  Ejemplo7-Trim.php  </Title>
<Body>
<?Php
   $profesion = "\n\r\tTécnico Constructor \n\n";
   echo "<H3>";
   echo "Cadena original: " . $profesion;
   echo "<Br><Br>";
   echo "Cadena convertida: " . trim($profesion);
 ?>
</Body>
</Html>

Al ejecutar este ejemplo, no se observarán diferencias al visualizarlo en el navegador, pero si se observarán diferencias si se visualiza el código generado por el programa.

Funciones: ltrim() y chop()
                                   Funcionan de forma similar a trim(), con la diferencia de que ltrim(), elimina espacios en blanco al principio de la cadena, mientras que chop(), elimina espacios en blanco al final de la cadena.

Funcion: strlen()
                Esta función permite obtener la longitud de una cadena de caracteres pasada como parámetro.

Ejemplo 8:
                   Almacenar en una variable una cadena de caracteres y luego mostrar la cantidad de caracteres que la constituyen.

<Html>
<Title>  Ejemplo8-Strlen.php  </Title>
<Body>
<?Php
   $cadena = "PHP es un lenguaje de programación.";
   echo "<H3>";
   echo "Cadena : " . $cadena;
   echo "<Br><Br>";
   echo "Cantidad de caracteres: " . strlen($cadena);
 ?>
</Body>
</Html>


 Funcion: chr() 
            La función chr() recibe un valor numérico y devuelve el carácter de la tabla ASCII que le corresponde

Ejemplo 9:
                        Imprimir la tabla ASCII desde el código 30 en adelante.
<Html>
<Title>  Ejemplo9-Chr.php  </Title>
<Body>
<?Php
   echo "<H3>";
   echo "<Table border=2 align=Center width=100%>";
   $c=30;
   for ($i=1; $i<24; $i++)
    {
     echo "<tr>";
      for ($j=1; $j<=10; $j++)
       {
        echo "<th align=Center>" . $c . "</th>";
        echo "<td align=Center>". chr($c) . "</td>";
        $c++;
       }
     echo "</tr>";
    }
  echo "</Table>" ;
 ?>
</Body>
</Html>

Funcion: ord()
            Es la función inversa a la chr(), es decir que dado un carácter como parámetro, la función ord(), devuelve el valor del código que le corresponde.

Ejemplo 10:
                        Asignar a una variable un carácter y posteriormente mostrar el código que le corresponde:

<Html>
<Title>  Ejemplo10-Ord.php  </Title>
<Body>
<?Php
   echo "<H3>";
   $c = "L";
   echo "El caracter: $c tiene como código: " .ord($c);
?>
</Body>
</Html>

Funcion: number_format()
                                   La función number_format permite dar un formato deseado a un valor numérico determinado. La sintaxis es la siguiente:

number_format(variable Numerica,
                        Cantidad De Decimales,
                         “Separador de decimales”,
                         “Separador de Miles”) ;

Ejemplo 11:
                       Dado un cierto valor numérico, imprimirlo con dos decimales separados por una coma, mostrando también los miles separados por puntos.

<Html>
<Title>  Ejercicio11-NumberFormat.php  </Title>
<Body>
<?Php
   echo "<H3>";
   $valor = 8546921546.4875;
   echo "El valor corresponde a: ";
   echo number_format($valor,2,",",".");
?>
</Body>
</Html>

Funcion: substr()
                        Permite extraer una porción de texto de la cadena pasada como parámetro. Su sintaxis es la siguiente:

substr(cadenaOriginal, lugarInicial, cantidadDeCaracteres)

cadenaOriginal:  Es la cadena de donde se extraerá el texto.
lugarInicial:  Representa la posición desde donde se comenzarán a extraer el texto.
CantidadDeCaracteres: Indica cuantos caracteres se extraerán. (Opcional).

Ejemplo 12:

<Html>
<Title>  Ejemplo12-Subsrt.php  </Title>
<Body>
<?Php
   echo "<H3>";
   $cadena = "Alicia Martinez";
   echo "Cadena Original: " . $cadena;
   echo "<Br>";
   echo "Tres primeros caracteres: ";
   echo substr($cadena,0,3);
   echo "<Br>";
   echo "Seis caracteres a partir del octavo: ";
   echo substr($cadena,7,6);
   echo "<Br>";
   echo "Cuatros caracteres comenzando desde el último: ";
   echo substr($cadena,-4);
?>
</Body>
</Html>


Funcion: ereg()
            Permite buscar una cadena dentro de otra cadena, devolviendo un valor verdadero si encontró coincidencia, de lo contrario, devuelve falso.

Ejemplo 13:

<Html>
<Title>  Ejemplo13-Erg.php  </Title>
<Body>
<?Php
   echo "<H3>";
   $cadena = "Carlos Javier Robles";
   echo "Cadena Original: " . $cadena;
   echo "<Br>";
   $clave = "Javier";
   echo "<Br>";
   if (ereg($clave, $cadena))
    {
      echo "La palabra $clave existe en $cadena";
    }
    else
    {
      echo "La palabra $clave No existe es $cadena";
    }
?>
</Body>
</Html>


 Funcion: eregi()
            Es similar a la función anterior, con la diferencia de que eregi() ignora las mayúsculas y minúsculas.

Funcion: ereg_replace()
                                   Esta función ereg_replace permite buscar una cadena dentro de otra y reemplazar la cadena encontrada con una cadena definida.

La sintaxis es la siguiente:

nuevaCadena = ereg_replace(claveBuscada,
                                              nuevoDato,
                                              cadenaOriginal);

Ejemplo 14:
                En el ejemplo anterior, buscar y reemplazar el nombre Javier por Martín.

<Html>
<Title>  Ejemplo14-EregReplace.php  </Title>
<Body>
<?Php
   echo "<H3>";
   $cadena = "Carlos Javier Robles";
   echo "Cadena Original: " . $cadena;
   echo "<Br>";
   $clave = "Javier";
   $nuevoNombre = "Martín";
   $nuevaCadena = ereg_replace($clave, $nuevoNombre, $cadena);
   echo "<Br>";
   echo "Nuevo Nombre: " . $nuevaCadena ;
?>
</Body>
</Html>

 

Funcion: eregi_replace()
                                   Es similar a la función anterior, con la diferencia de que eregi_replace() no tiene en cuenta las mayúsculas y minúsculas.

Funcion: split()
            Permite separar una cadena de caracteres, pasándole como parámetro el carácter que actuará como separador. La cadena separada es almacenada en un arreglo. La sintaxis es la siguiente:

vector = split(caracter, cadena, cantidadDeElementos)

carácter: Es el carácter que actuará como separador.
cadena: Es la cadena original.
cantidadDeElementos: Es opcional, y determina cuantos elemento contendrá el vector generado. En caso de no indicarse, ajusta la cantidad automáticamente.

Ejemplo 15:
                        Dada una cadena de caracteres, generar un arreglo (vector) que contenga como elementos a cada una de las palabras de la cadena.

<Html>
<Title>  Ejemplo15-Split.php  </Title>
<Body>
<?Php
   echo "<H3>";
   $cadena = "El invierno es muy frío";
   echo "Cadena Original: " . $cadena;
   echo "<Br><Br>";
   $separador = " ";
   $v = split($separador, $cadena);
   $cantidad = count($v);
   for ($i=0; $i<$cantidad; $i++)
    {
      echo "Elemento [$i]: $v[$i] <Br>";
    }
?>
</Body>
</Html>

Ejemplo 16:
                        Idem al anterior, pero guardando únicamente tres elementos en el vector.

<Html>
<Title>  Ejemplo16-Split.php  </Title>
<Body>
<?Php
   echo "<H3>";
   $cadena = "El invierno es muy frío";
   echo "Cadena Original: " . $cadena;
   echo "<Br><Br>";
   $separador = " ";
   $v = split($separador, $cadena, 3);
   $cantidad = count($v);
   for ($i=0; $i<$cantidad; $i++)
    {
      echo "Elemento [$i]: $v[$i] <Br>";
    }
?>
</Body>
</Html>

Funcion: ucfirst()
                        Permite pasar a mayúscula el primer carácter de una cadena. La función ucfirst() es útil cuando se desea imprimir nombres propios.

Ejemplo 17:

<Title>  Ejemplo17-Ucfirst.php  </Title>
<Body>
<?Php
   echo "<H3>";
   $cadena = "alejandra";
   echo "Cadena Original: " . $cadena;
   echo "<Br><Br>";
   echo "Cadena procesada: " . ucfirst($cadena);
   echo "<Br><Br>";
?>
</Body>
</Html>

 

Funcion: ucwords()
                        Premite cambiar a mayúsculas el primer carácter de todas las palabras de una cadena.

Ejemplo 18:

<Title>  Ejemplo18-Ucwords.php  </Title>
<Body>
<?Php
   echo "<H3>";
   $cadena = "javier es buen alumno";
   echo "Cadena Original: " . $cadena;
   echo "<Br><Br>";
   echo "Cadena procesada: " . ucwords($cadena);
   echo "<Br><Br>";
?>
</Body>
</Html>

Funcion: strcmp()
Compara dos string (cadenas).
Ejemplo: strcmp(<string1>,<string2>)

Retorna cero si las dos cadenas son exactamente iguales.
Retorna mayor a cero si <string1> es mayor alfabéticamente.
Retorna menor a cero en caso contrario
$cadena1="lorena";
$cadena2="analia";
if (strcmp($cadena1,$cadena2)>0)
{
  echo $cadena1." es mayor alfabéticamente que ".$cadena2;
}

De todos modos para comparar si dos string son iguales está permitido utilizar el operador ==
if ($cadena1=="lorena")
{
  echo 'La variable $cadena1 almacena la cadena lorena';
}
Se imprime: La variable $cadena1 almacena la cadena lorena (Recordar que si utilizamos las comillas simples, las variables no se sustituyen por el contenido de las mismas)

La función strcmp es sensible a mayúsculas y minúsculas, si queremos ver si dos cadenas son iguales insensible a mayúsculas y minúsculas debemos emplear la función strcasecmp.

Funcion: strpos()
Esta función devuelve la posición que se encuentra en una cadena fuente una cadena clave. La sintaxis es la siguiente:

$Pos = strpos(cadenaFuente, cadenaClave, comienzo);

cadenaFuente: Es la cadena que será recorrida.
cadenaClave: Es la cadena buscada.
comienzo: Es opcional, y determina de que posición comenzará a explorar. Si se ignora, comienza desde el principio, posición cero.

Ejemplo 19:
Almacenar en una cadena, una frase y luego una palabra clave a buscar su posición. Imprimir la posición que le corresponde.

<Html>
<Title>  Ejemplo19-Strpos.php  </Title>
<Body>
<?Php
   echo "<H3>";
   $cadena = "En un ecosistema conviven diversos tipos de organismos";
   $clave = "eco";
   echo "Cadena Original: " . $cadena;
   echo "<Br><Br>";
   echo "Clave buscada: " . $clave;
   echo "<Br><Br>";
   $p = strpos($cadena, $clave);
   if ($p!="")
    {
     echo "La clave se encuentra en la posición: $p" ;
    }
    else
    {
     echo "No existe la clave en la cadena fuente";
    }
?>
</Body>
</Html>

Tener presente que la primera posición es Cero.