Las cadenas en PHP son cualquier conjunto de caracteres entrecomillados. Se pueden manipular cadenas mediante funciones como strlen() para obtener la longitud, substr() para extraer subcadenas, strtoupper() para convertir a mayúsculas, y strpos() para encontrar la posición de una subcadena dentro de otra cadena. Las cadenas también se pueden tratar como arrays para acceder a caracteres individuales.
1. Lo básico sobre strings (I) Cadenas en php Una parte esencial de PHP, como lenguaje orientado al manejo de páginas web dinámicas, es la manipulación y presentación en pantalla de cadenas de texto (strings).En PHP una cadena es cualquier conjunto de caracteres entrecomillados.PHP considera como cadena todo lo que encuentre entre un par de comillas, por eso todas las cadenas deben comenzar y terminar con el mismo tipo de comillas, simples o dobles:<br /><?php 'esto es una cadena con comillas simples' quot;
esa es una cadena con comillas doblesquot;
quot;
este es un ejemplo INVALIDO de cadena' quot;
esta 'frase' seria una sola cadenaquot;
'y esta quot;
otraquot;
también' ?> <br />El primer tipo de comillas que abre la cadena será el tenido en cuenta por PHP para localizar su fin. Por eso es válido que dentro de la cadena se incluyan comillas distintas, en cualquier número. Si nos vemos obligados a incluir comillas del mismo tipo que delimita la cadena, deberemos usar caracteres de escape:<br /><?php quot;
este es un 'ejemplo' de cadena válidaquot;
quot;
este tambien lo es: that's the questionquot;
quot;
y naturalmente 'este otro' tambien valequot;
quot;
escapando "
comillas"
en una cadenaquot;
//doble escape para mostrar la barra invertida //dentro de una cadena: quot;
c:windowsprogram.exequot;
?> <br />El contenido de la cadena puede ser asignado como valor de una variable mediante el signo = <br /><?php $pais = quot;
Españaquot;
; $pais = 'España'; ?> <br />PHP analiza el contenido de la cadenas delimitadas por dobles comillas; si encuentra una variable, la sustituye automáticamente por su valor:<br /><?php $pais = quot;
Españaquot;
; $frase = quot;
Yo vivo en $paisquot;
; echo $frase; //volcaria en pantalla la frase quot;
yo vivo en Españaquot;
//sin embargo $frase = 'yo vivo en $pais'; echo $frase; //volcaria en pantalla la frase quot;
yo vivo en $paisquot;
?> <br />Notese que en el segundo ejemplo, php no analiza el contenido de la cadena limitandose a volcarla, y por ello aparece el nombre de la variable, y no su valor.Por ello parece recomendable acostumbrarse a usar comillas simples cuando se trata de simples cadenas de texto, ya que al no ser analizadas antes de su volcado, la ejecución de nuestros scripts puede ganar velocidad.<br />Sumando cadenas<br />Podemos unir el contenido de varias cadenas con un punto (.)<br /><?php $nombre = quot;
Juanquot;
; $fruta = quot;
manzanasquot;
; $accion = $nombre . quot;
comequot;
. $fruta; //volcaría la frase Juan come manzanas ?> <br />De esta forma podemos simplificar algo la salida de texto en pantalla. La suma de cadenas funciona tanto si queremos simplemente volcar el resultado en pantalla, como si queremos asignar el contenido a una sola variable:<br /><?php $mi variable .= quot;
primera frase, quot;
; $mi variable .= quot;
segunda frase y quot;
; $mi variable .= quot;
tercera frase. quot;
; // y de forma resumida: $mivariable = quot;
primera frase, quot;
.quot;
segunda frase y quot;
.quot;
tercera frase. quot;
; $mivariable = quot;
primera frase, segunda frase y tercera frasequot;
; ?><br />strings (2)<br />Calculando la longitud de nuestra cadena<br />La función strlen nos facilita la longitud de una cadena de texto: strlen (string)<br /><?php $cadena = quot;
hola como te vaquot;
; $longitud = strlen($cadena); echo $longitud; // 15 $cadena = quot;
hola como te vaquot;
; // un espacio extra $longitud = strlen($cadena); echo $longitud; // 16 ?> <br />Eliminando espacios<br />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 <br />estas funciones eliminan por defecto espacios en blanco, caracteres de nueva linea (), tabuladores () asi como los valores ascii 0 (nul) 13 (retorno de carro, ) y 11 (tabulacion vertical)<br /><?php echo quot;
<pre>quot;
; $cadena = quot;
hola como te vaquot;
; echo $cadena; // hola como te va $sin_tab = ltrim($cadena, quot;
quot;
); echo $sin_tab; //hola como te va $trim_primera_letra = ltrim($cadena, quot;
hquot;
); echo $trim_primera_letra; //ola como te va echo quot;
</pre>quot;
; ?> <br />Mayusculas y minusculas<br />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<br /><?php echo quot;
<pre>quot;
; $cadena = quot;
hola como te váquot;
; // hola como te vá echo $cadena; $may = strtoupper($cadena); echo $may ; // HOLA COMO TE V&AACUTE; echo quot;
</pre>quot;
; ?> <br />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.<br />subcadenas<br />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.<br />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.<br />Si n_inicio es un número negativo, la subcadena empieza a contar desde el final de $cadena (de derecha a izquierda). <br />Si no se proporciona el valor opcional n_largo, la subcadena devuelta será desde n_inicio hasta el final de la subcadena.<br />Si se proporciona n_largo positivo, la subcadena contendrá como máximo ese número de caracteres desde n_inicio<br />Si se proporciona n_largo negativo, primero se calcula la subcadena y luego se resta a la subcadena n_largo caracteres<br /><?php echo quot;
<pre>quot;
; $cadena = quot;
123456789quot;
; $trozo = substr($cadena, 0); echo $trozo.quot;
quot;
; // 123456789 $trozo = substr($cadena, 3); echo $trozo.quot;
quot;
; // 456789 $trozo = substr($cadena, -3); echo $trozo.quot;
quot;
; // 789 $trozo = substr($cadena, 3,3); echo $trozo.quot;
quot;
; // 456 $trozo = substr($cadena, 2,-3); echo $trozo.quot;
quot;
; // 3456 $trozo = substr($cadena, -6,-5); echo $trozo.quot;
quot;
; // 4 echo quot;
</pre>quot;
; ?> <br />Por último, con strpos localizamos el inicio de una subcadena dentro de una cadena:<br /><?php echo quot;
<pre>quot;
; $cadena = quot;
blah@imaginary.comquot;
; $subcadena = quot;
@quot;
; $inicio_dominio = strpos ($cadena, $subcadena); echo $inicio_dominio; // 4 echo quot;
<br>quot;
; $dominio = substr ($cadena, ($inicio_dominio+1)); echo $dominio; // imaginary.com echo quot;
</pre>quot;
; ?> <br />Cadenas tratadas como arrays<br />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 = quot;
holaquot;
; echo $cadena[0]; // imprime h ?> <br />