Actualizado el 14-01-2007
versión para imprimir
strings (2)
Calculando la longitud de nuestra cadena
La función strlen nos facilita la longitud de una cadena de texto:
strlen (string)
<?php
$cadena = "hola como te va";
$longitud = strlen($cadena);
echo $longitud; // 15
$cadena = "hola como te va"; // un espacio extra
$longitud = strlen($cadena);
echo $longitud; // 16
?>
Eliminando espacios
Puedes eliminar espacios en blanco al comienzo o final de la cadena con la función trim, o solo al principio de la cadena con la función ltrim, o solamente al final con rtrim
estas funciones eliminan por defecto espacios en blanco, caracteres de nueva linea (\n), tabuladores (\t) asi como los valores ascii 0 (nul) 13 (retorno de carro, \r) y 11 (tabulacion vertical)
<?php
echo "<pre>";
$cadena = "\thola como te va\n";
echo $cadena; // hola como te va
$sin_tab = ltrim($cadena, "\t");
echo $sin_tab; //hola como te va
$trim_primera_letra = ltrim($cadena, "h");
echo $trim_primera_letra; //ola como te va
echo "</pre>";
?>
Mayusculas y minusculas
Podemos pasar nuestra cadena a todo mayusculas con strtoupper, o toda a minúsculas con strtolower. No convertirá aquellas letras que no se correspondan al actual conjunto de caracteres locales
<?php
echo "<pre>";
$cadena = "hola como te vá\n"; // hola como te vá
echo $cadena;
$may = strtoupper($cadena);
echo $may ; // HOLA COMO TE V&AACUTE;
echo "</pre>";
?>
Adicionalmente, ucfirst convierte a mayúsculas el primer carácter de una cadena (si es alfabético) y ucwords convierte a mayúsculas la primera letra de cada palabra en nuestra cadena.
subcadenas
Con substr podemos crear una subcadena partiendo de una cadena dada: substr ($cadena, n_inicio,n_largo); donde el primer número indica la posicion de $cadena donde empieza a contar la subcadena, y el segundo (opcional) la longitud de la subcadena.
- Si n_inicio es un número positivo, la subcadena empieza a contar desde el inicio de $cadena (de izquierda a derecha). El primer carácter de $cadena es 0.
- Si n_inicio es un número negativo, la subcadena empieza a contar desde el final de $cadena (de derecha a izquierda).
- Si no se proporciona el valor opcional n_largo, la subcadena devuelta será desde n_inicio hasta el final de la subcadena.
- Si se proporciona n_largo positivo, la subcadena contendrá como máximo ese número de caracteres desde n_inicio
- Si se proporciona n_largo negativo, primero se calcula la subcadena y luego se resta a la subcadena n_largo caracteres
<?php
echo "<pre>";
$cadena = "123456789";
$trozo = substr($cadena, 0);
echo $trozo."\n"; // 123456789
$trozo = substr($cadena, 3);
echo $trozo."\n"; // 456789
$trozo = substr($cadena, -3);
echo $trozo."\n"; // 789
$trozo = substr($cadena, 3,3);
echo $trozo."\n"; // 456
$trozo = substr($cadena, 2,-3);
echo $trozo."\n"; // 3456
$trozo = substr($cadena, -6,-5);
echo $trozo."\n"; // 4
echo "</pre>";
?>
Por último, con strpos localizamos el inicio de una subcadena dentro de una cadena:
<?php
echo "<pre>";
$cadena = "blah@imaginary.com";
$subcadena = "@";
$inicio_dominio = strpos ($cadena, $subcadena);
echo $inicio_dominio; // 4
echo "<br>";
$dominio = substr ($cadena, ($inicio_dominio+1));
echo $dominio; // imaginary.com
echo "</pre>";
?>
Cadenas tratadas como arrays
Una característica interesante es que las cadenas pueden ser consideradas automáticamente como arrays, y por lo tanto es una forma mas de acceder fácilmente a un carácter determinado, o de manipular la cadena:
<?php
$cadena = "hola";
echo $cadena[0]; // imprime h
?>