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&aacute;\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($cadena0);
echo 
$trozo."\n";   // 123456789

$trozo substr($cadena3);
echo 
$trozo."\n";   // 456789

$trozo substr($cadena, -3);
echo 
$trozo."\n";   // 789

$trozo substr($cadena3,3);
echo 
$trozo."\n";   // 456

$trozo substr($cadena2,-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

?>

This site powered by Phorum.