Cadenas

Salto de línea en pantalla

Cuando se presenta un texto y después hay que saltar de línea antes de presentar el siguiente puede utilizarse el marcador <br> de HTML. (Los marcadores HTML los interpreta el navegador, no el PHP).

ejemplo:

<?php
echo 'Texto inicial<br>';
echo 'Línea siguiente';
?>

Juntar cadenas

El operador punto . permite empalmar dos o más cadenas. Las cadenas pueden ser literales o variables.

Formato de instrucción: resultado = cadena1 . cadena2;

ejemplo:

<?php
$saludo = 'Buenos días';
$colectivo = 'amigos';
// Unimos las dos cadenas insertando un espacio en blanco entre ellas
$todo = $saludo . ' ' . $colectivo;
// Presentamos resultado de las acciones realizadas
echo 'Ejemplo de cadenas juntas: ' . $todo;
?>

Añadir cadenas a una variable

El operador punto . junto con el igual = permite añadir cadenas a una variable de forma abreviada.

Formato de instrucción: variable1 .= cadena2;

Es otra manera de escribir: variable1 = variable1 . cadena2;

Con esta instrucción la cadena2 es añadida a la variable1.

ejemplo:

<?php
$saludo = 'Buenos días';
$colectivo = 'amigos';
$saludo .= ' '; // Añadimos un carácter en blanco al final del saludo
$saludo .= $colectivo; // Añadimos la cadena colectivo a continuación
// Presentamos resultado de las acciones realizadas
echo 'Ejemplo de cadenas juntas: ' . $saludo;
?>

Calcular la longitud de una cadena

La función strlen() nos da la longitud (número de caracteres) de una cadena.

Formato de instrucción: longitud = strlen (cadena);

ejemplo:

<?php
$saludo = 'Buenos días colegas'; // Cadena de ejemplo
$longitud = strlen($saludo); // Calculamos la longitud total en caracteres
// Presentamos resultado de las acciones realizadas
echo 'La longitud de la cadena es: ' . $longitud;
?>

Partir una cadena

La función substr() permite obtener una parte de una cadena.

Formato de instrucción:
trozo = substr(cadena, número del primer caracter a copiar, longitud del trozo a copiar);

Los caracteres de una cadena se numeran desde 0 (cero), que es el número del primero de ellos.

ejemplo:

<?php
$saludo = 'Buenos días colegas'; // Cadena de ejemplo
// Tomamos un trozo de 11 caracteres, empezando por el primero (el cero)
$trozo = substr($saludo, 0, 11);
// Presentamos resultado de las acciones realizadas
echo 'Cadena de ejemplo: ' . $saludo . '<br>';
echo 'Trozo de la cadena: ' . $trozo;
?>

Mover palabras

Podemos mover las palabras de una cadena utilizando la función de partir.

ejemplo:

<?php
$saludo = 'Buenos días colegas'; // Cadena de ejemplo
// Tomamos un trozo de 11 caracteres, empezando por el primero (el cero)
$trozo1 = substr($saludo, 0, 11);
// Tomamos otro trozo desde el carácter 12
// (recordad que el primero es el cero), hasta el final.
// Si no ponemos nada en la longitud de "substr"
// asume que es hasta el final.
$trozo2 = substr($saludo, 12);
$saludin = $trozo2 . ' ' . $trozo1;
// Presentamos resultado de las acciones realizadas
echo 'Cadena de ejemplo: ' . $saludo . '<br>';
echo 'Saludo cambiado: ' . $saludin;
?>

Eliminar espacios en blanco

La función trim() elimina los espacios en blanco a ambos lados de una cadena.

Formato de instrucción: limpiada = trim(cadena);

ejemplo:

<?php
$saludo = '          Buenos días colegas          '; // Cadena de ejemplo
$lonsal = strlen($saludo); // Calculamos la longitud de inicio
$limpiada = trim($saludo); // Limpiamos espacios en blanco a ambos lados
$lonlim = strlen($limpiada); // Calculamos la longitud final
// Presentamos resultado de las acciones realizadas
echo 'Longitud de la cadena de ejemplo: ' . $lonsal . '<br>';
echo 'Longitud de la cadena limpiada: ' . $lonlim;
?>

La función ltrim() elimina solo los espacios en blanco que haya a la izquierda de una cadena. El formato es igual que el de trim(). La ele que antecede a trim es la inicial de la palabra inglesa "left" (izquierda).

La función rtrim() elimina solo los espacios en blanco que haya a la derecha de una cadena. El formato es igual que el de trim(). La erre que antecede a trim es la inicial de la palabra inglesa "right" (derecha).

Mayúsculas y minúsculas

La función strtoupper() pone todas las letras de una cadena en mayúsculas. Dependiendo del idioma de la instalación puede no funcionar bien con letras acentuadas o especiales (como la Ñ).

Formato de instrucción: mayusculas = strtoupper(cadena);

ejemplo:

<?php
$saludo = 'Buenos días colegas'; // Cadena de ejemplo
$mayusculas = strtoupper($saludo); // Ponemos en mayúsculas
// Presentamos resultado de las acciones realizadas
echo 'Cadena de ejemplo: ' . $saludo . '<br>';
echo 'Cadena en mayúsculas: ' . $mayusculas;
?>

La función strtolower() pone toda la cadena en minúsculas.

La función ucfirst() pone en mayúsculas solo la primera letra de la cadena.

La función ucwords() pone en mayúsculas la primera letra de cada palabra de la cadena.

El formato de estas funciones es el mismo que el de strtoupper().

EJERCICIOS:

Podéis practicar con estas funciones adaptando para ellas el anterior ejemplo.

Cambiar palabras

La función str_replace() sirve para cambiar palabras dentro de una cadena de caracteres.

Formato: resultado = str_replace (texto a cambiar, texto nuevo, cadena original)

ejemplo:

<?php
$saludo = 'Buenos días colegas'; // Cadena de ejemplo
$cambiada = str_replace('colegas', 'amigos', $saludo);
// Presentamos resultado de las acciones realizadas
echo 'Cadena de ejemplo: ' . $saludo . '<br>';
echo 'Cadena cambiada: ' . $cambiada;
?>

Rotar cadenas

En esta ocasión vamos a rotar información entre 3 cadenas.

<?php
$saludo = 'Buenos'; // Cadena de ejemplo
$tiempo = 'Días';   // Cadena de ejemplo
$gente = 'Colegas'; // Cadena de ejemplo
// Presentamos información original
// Ponemos espacios entre los campos para verlos mejor.
echo 'Campos a rotar: ' . $saludo . ' ' . $tiempo . ' ' . $gente . '<br>';
// Hacemos la rotación
// Copiamos saludo en un campo de trabajo (winter) para no perderlo
$winter = $saludo;
$saludo = $tiempo; // Copiamos tiempo en saludo
$tiempo = $gente;  // Copiamos gente en tiempo
$gente = $winter;  // Copiamos el campo de trabajo a gente
// Presentamos resultado de las acciones realizadas
// Ponemos espacios entre los campos para verlos mejor.
echo 'Campos a rotar: ' . $saludo . ' ' . $tiempo . ' ' . $gente . '<br>';
?>

EJERCICIOS:

Probad a realizar otra rotación detrás de esta y luego otra, al final los campos deberían estar como al principio.

Rellenar una cadena

La función str_pad() permite rellenar una cadena con caracteres, por delante, por detrás o a ambos lados.

Formato: resultado = str_pad(cadena original, tamaño maximo, carácter de relleno, sitio);

Esta instrucción se utiliza habitualmente para dar formatos del mismo tamaño.

El "tamaño máximo" es el que va a tener la cadena resultado. Si la cadena original es igual o mayor que ese tamaño entonces la cadena resultado se queda con la cadena original sin añadir nada. Eso significa que el resultado puede ser mayor que el "tamaño máximo" especificado si en origen lo es.

El Carácter de relleno puede ser cualquiera. ¡OJO! Si se rellena el campo con varios espacios en blanco, al sacarlo por pantalla sólo se verá uno de ellos (el navegador ignora el resto); pero a nivel interno si existen y se utilizan para procesos.

El "Sitio" define por donde se hará el relleno, es opcional y puede no ponerse, por defecto asume "por la derecha". Valores posibles: STR_PAD_LEFT (por la izquierda), STR_PAD_RIGHT (por la derecha), STR_PAD_BOTH (por la derecha y por la izquierda; esta opción permite centrar el texto).

ejemplo:

<?php
$saludo = 'Que bonito'; // Cadena de ejemplo
// Centramos el texto entre 19 asteriscos
$centrado = str_pad($saludo, 19, '*', STR_PAD_BOTH);
// Presentamos resultado de las acciones realizadas
echo 'Cadena de ejemplo: ' . $centrado;
?>

EJERCICIOS:

Hacer el ejemplo metiendo asteriscos sólo por la izquierda. Hacer otra prueba metiéndolos solo por la derecha.

Buscar un texto

La función stristr() sirve para buscar una cadena dentro de otra.

Formato: resultado = stristr(cadena original, cadena a buscar)

ejemplo:

<?php
$saludo = 'Buenos días colegas'; // Cadena de ejemplo
$buscar = 'días'; // Cadena a buscar
$resultado = stristr($saludo, $buscar);
// Presentamos resultado de las acciones realizadas
echo 'Cadena de ejemplo: ' . $saludo . '<br>';
echo 'Cadena a buscar: ' . $buscar . '<br>';
echo 'Cadena encontrada: ' . $resultado;
?>

Hay más funciones de manejo de cadenas, pero estas son las de uso más habitual.