Escolar Documentos
Profissional Documentos
Cultura Documentos
ASIX Mdulo 9
Operadores
Para concatenar varias cadenas utilizaremos el operador punto (.) Ejemplo Cadenas_Concatenar.php: <?php $cadenal = "Hola"; $cadena2 = "Mundo"; $cadena3 = "Qu tpico!"; $supercadena = $cadenal . " " . $cadena2 . " " . $cadena3; echo $supercadena; ?> Es fcil intuir que el operador puede concatenar caracteres y variables de tipo string de forma conjunta. Es posible que desee ahora aadir texto a una cadena ya existente; esto se puede hacer de dos formas muy similares. La primera es asignando a la variable su valor ms el valor a aadir, de la siguiente forma:
ASIX Mdulo 9
<?php $cadenal = "Hola"; $cadena2 = "Mundo"; $cadenal = $cadenal ." ". $cadena2; echo $cadenal; ?> O utilizando el operador de concatenacin y asignacin (.=), como en el ejemplo: <?php $cadenal = "Hola"; $cadena2 = "Mundo"; $cadenal .= " ".$cadena2; echo $cadenal; ?>
ASIX Mdulo 9
Funciones de string
Tamao de la cadena
La funcin strlen(cadena) devuelve como resultado el tamao en caracteres de la cadena que pasemos de parmetro. Este valor puede asignarse a una variable, como indica el ejemplo. Ejemplo Cadenas_Strlen.php: <?php $cadena = "Esta cadena tiene muchas letras"; $numero_letras = strlen($cadena); echo "La cadena tiene $numero_letras caracteres"; ?> El resultado en el navegador es: La cadena tiene 31 caracteres
ASIX Mdulo 9
La funcin strpos() tambin puede utilizarse para buscar varios caracteres seguidos en una misma cadena: <?php $cadena = "Esta cadena tiene muchas letras"; echo "La primera aparicin de 'tiene' es " . strpos($cadena, "tiene")."<br>"; ?> El resultado por pantalla es: La primera aparicin de 'tiene' es 12 Si lo que nos interesa es encontrar caracteres buscando desde el final de la cadena la funcin que tenemos que utilizar es strrpos(cadena, carcter) (la letra r que se aade viene del ingls reverse). El ejemplo anterior nos sirve para comprobar el funcionamiento de la funcin: <?php $cadena = "Esta cadena tiene muchas letras"; echo "La primera aparicin de 'a' es " "a")."<br>"; echo "La primera aparicin desde atrs strrpos($cadena, "a")."<br>"; ?> El resultado por pantalla es: La primera aparicin de 'a' es 3 La primera aparicin desde atrs de 'a' es 29
. de
Comparacin de cadenas
El operador (==) nos puede servir para evaluar si dos cadenas de caracteres son iguales dentro de una estructura de control. Adems, tenemos la funcin strcmp(cadena1, cadena2), que compara bit a bit dos cadenas de caracteres. Atendiendo al valor de salida de la funcin, podemos obtener los siguientes resultados:
Si el valor que se obtiene es 0, las dos cadenas son exactamente igual. Si obtenemos un valor negativo, el primer string es ms pequeo que el segundo. Si obtenemos un valor positivo, el primer string es ms grande que el segundo.
ASIX Mdulo 9
Ejemplo Cadenas_Strcmp.php: <?php $cadenal = "Prueba"; $cadena2 = "Prueba"; if (strcmp($cadenal,$cadena2) == 0){ echo "Las dos cadenas son iguales"; }elseif (strcmp($cadenal,$cadena2) < 0){ echo "La cadenal es menor que la cadena2"; }else{ echo "La cadenal es mayor que la cadena2"; } ?> El resultado por pantalla es: Las dos cadenas son iguales Nos da este resultado porque las dos cadenas son exactamente iguales. Si una cadena estuviese en maysculas y la otra en minsculas, no nos habra dado ste resultado. Para evitar este problema podemos utilizar la funcin strcasecmp(cadena1, cadena2), que no es sensible a maysculas. As strcasecmp("HoLa" , "hOlA") da como resultado 0, es decir, las dos cadenas son iguales. <?php $cadenal = "HoLa"; $cadena2 = "hOlA"; if (strcasecmp($cadenal,$cadena2) == 0){ echo "Las dos cadenas son iguales"; }elseif (strcasecmp($cadenal,$cadena2) < 0){ echo "La cadenal es menor que la cadena2"; }else{ echo "La cadenal es mayor que la cadena2"; } ?>
ASIX Mdulo 9
Bsqueda de caracteres
La funcin strstr(cadena, fragmento) recibe como parmetros una cadena de caracteres donde buscar y otra con un conjunto de caracteres que queremos encontrar. Si se encuentra el patrn de bsqueda, el resultado ser una cadena de caracteres que comenzar justo en el patrn, hasta el final del string primero. Si no se encuentra el patrn el resultado ser false. Ejemplo Cadenas_Strstr.php: <?php $texto = "Esta cadena tiene muchas letras"; echo "La primera aparicin de 'cadena' strstr($texto,"cadena")."<br>"; ?> El resultado por pantalla es: La primera aparicin de 'cadena' es: cadena tiene muchas letras
es:
"
Seleccin de subcadenas
La funcin substr() permite seleccionar un conjunto de caracteres de una cadena, quedando intacto el string original. Puede tomar varios parmetros:
substr(cadena, ndice): Cadena es el conjunto de caracteres que queremos cortar e ndice la posicin a partir de la cual se cortar la cadena hasta el final. substr(cadena, ndice, nmero): Cadena es el conjunto de caracteres que queremos cortar e ndice la posicin a partir de la cual se cortar la cadena tantas posiciones como indique el nmero.
Ejemplo Cadenas_Substr.php: <?php $cadena = "Esta cadena tiene muchas letras"; echo "<h4>Devuelve la cadena completa</h4>"; echo substr($cadena, 0) ."<br>"; echo "<h4>Devuelve desde el carcter 12 hasta el final</h4>"; echo substr($cadena, 12) ."<br>"; echo "<h4>Devuelve 6 caracteres desde el carcter 18</h4>"; echo substr($cadena, 18, 6) ."<br>"; echo "<h4>Devuelve los 6 ltimos caracteres</h4>"; echo substr($cadena, -6) ."<br>"; echo "<h4>Devuelve desde la posicin 26, contando desde atrs, 6 caracteres</h4>"; echo substr($cadena, -26, 6) ."<br>";
ASIX Mdulo 9
echo "<h4>Devuelve empezando en el carcter 4 y terminando en el 7 desde atrs</h4>"; echo substr($cadena, 4, -7); ?> El resultado por pantalla es: Devuelve la cadena completa Esta cadena tiene muchas letras Devuelve desde el carcter 12 hasta el final tiene muchas letras Devuelve 6 caracteres desde el carcter 18 muchas Devuelve los 6 ltimos caracteres letras Devuelve desde la posicin 26, contando desde atrs, 6 caracteres cadena Devuelve empezando en el carcter 4 y terminando en el 7 desde atrs cadena tiene muchas Recuerda que la variable $cadena queda intacta. Dependiendo de la posicin del nmero negativo, substr() actuar de una forma u otra. Algunas respuestas de la funcin substr(). Ejemplo substr("Hola", 2) substr("Hola", -2) substr("Hola", 1, 3) substr("Hola", -3, 2) substr("Hola", 2, -1) substr("Hola", -2, -3) Resultado Devuelve la cadena completa empezando por el carcter 2. Devuelve la cadena completa empezando por el carcter 2, esta vez empezando a contar desde atrs. El resultado son 3 caracteres empezando desde el carcter 1. Dos caracteres, empezando desde el carcter 3 contando desde la ltima letra. Devuelve un conjunto de caracteres que estn desde la posicin 2 a la posicin 1 comenzando desde atrs. No tiene aplicacin posible.
ASIX Mdulo 9
ltrim(cadena, lista_carcteres)
Elimina el espacio en blanco (o ms caracteres) del principio de una cadena. La funcin devuelve una cadena con los espacios en blanco eliminados del principio de la cadena indicada en el parmetro. Si no se emplea el segundo parmetro (lista_caracteres), la funcin ltrim() elimina los siguientes caracteres:
" " (ASCII 32 (0x20)), un espacio en blanco. "\t" (ASCII 9 (0x09)), un tabulador. "\n" (ASCII 10 (0x0A)), una nueva linea. "\r" (ASCII 13 (0x0D)), un retorno de carro.
Ejemplo Cadenas_Ltrim.php: <?php $texto = "\t\tEn un lugar de la Mancha :) ... "; echo La cadena es: $texto y su longitud es: strlen($texto)."<br>"; $texto_limpio = ltrim($texto); echo La cadena es: $texto_limpio y su longitud es: strlen($texto_limpio)."<br>"; $texto_limpio = ltrim($texto, "\t"); echo La cadena es: $texto_limpio y su longitud es: strlen($texto_limpio)."<br>"; ?> El resultado es: La cadena es: En un lugar de la Mancha :) ... y su longitud es: 36 La cadena es: En un lugar de la Mancha :) ... y su longitud es: 33 La cadena es: En un lugar de la Mancha :) ... y su longitud es: 34
. . .
ASIX Mdulo 9
rtrim(cadena, lista_carcteres)
Elimina el espacio en blanco (o ms caracteres) del final de una cadena. Funciona igual que el ltrim(). Ejemplo Cadenas_Rtrim.php: <?php $texto = "\t\tEn un lugar de la Mancha :) ... "; echo "La cadena es: $texto y su longitud strlen($texto)."<br>"; $texto_limpio = rtrim($texto); echo "La cadena es: $texto_limpio strlen($texto_limpio)."<br>"; $texto_limpio = rtrim($texto, "\t"); echo "La cadena es: $texto_limpio strlen($texto_limpio)."<br>"; ?> El resultado es: La cadena es: En un lugar de la Mancha :) ... y su longitud es: 35 La cadena es: En un lugar de la Mancha :) ... y su longitud es: 33 La cadena es: En un lugar de la Mancha :) ... y su longitud es: 35 y su longitud
es:
".
es:
".
su
longitud
es:
".
trim(cadena, lista_carcteres)
Elimina espacios en blanco (u otros caracteres) del principio y final de una cadena. Ejemplo Cadenas_Trim.php: <?php $texto = "\t\tEn un lugar de la Mancha :) ... "; echo "La cadena entera es: $texto y su ".strlen($texto)."<br>";
longitud
es:
$texto_final=trim($texto); echo "La cadena haciendo un trim es: $texto_final y su longitud es: ".strlen($texto_final)."<br>"; $texto_final_2=trim($texto, " \t."); echo "La cadena haciendo un trim especificando los caracteres: espacio \t y punto: ".$texto_final_2."<br>"; echo "Su longitud es: ".strlen($texto_final_2)."<br>"; ?>
10
ASIX Mdulo 9
El resultado es: La cadena entera es: En longitud es: 35 La cadena haciendo un trim su longitud es: 31 La cadena haciendo un trim y punto: En un lugar de la Su longitud es: 27 Ejemplo Cadenas_Limpiar.php: <?php $cadena = " cadena con varios espacios en blanco "; echo $cadena . ". Su longitud es: " . strlen($cadena). "<br>"; echo ltrim($cadena) . ". Su longitud es: " . strlen(ltrim($cadena)). "<br>"; echo rtrim($cadena) . ". Su longitud es: " . strlen(rtrim($cadena)). "<br>"; echo trim($cadena) . ". Su longitud es: " . strlen(trim($cadena)); ?> Cada lnea realiza una de las operaciones vistas, e imprime el resultado de la cadena en el navegador junto con el tamao de la cadena. El resultado por pantalla es: cadena cadena cadena cadena con con con con varios varios varios varios espacios espacios espacios espacios en en en en blanco . Su longitud es: 38 blanco . Su longitud es: 37 blanco. Su longitud es: 37 blanco. Su longitud es: 36 un lugar de la Mancha :) ... y su es: En un lugar de la Mancha :) ... y especificando los caracteres: espacio Mancha :)
Sustitucin de cadenas
La funcin str_replace(buscar, reemplazar, cadena) toma como parmetros un conjunto de caracteres a buscar, un grupo que debe sustituirse por el anterior y una cadena de caracteres sobre la que actuar. Ejemplo Cadenas_Str_replace.php: <?php $cadena = "Esta cadena tiene muchas letras"; $cadena = str_replace("Esta", "Este", $cadena); echo str_replace("cadena", "conjunto", $cadena); ?> El resultado por pantalla es: Este conjunto tiene muchas letras Si en la cadena existiera ms de una instancia del conjunto buscado, todas las ocurrencias quedaran cambiadas.
11
ASIX Mdulo 9
<?php $cadena = "Esta cadena tiene muchas letras y cadenas"; $cadena = str_replace("Esta","Este",$cadena); echo str_replace("cadena","conjunto",$cadena); ?> El resultado por pantalla es: Este conjunto tiene muchas letras y conjuntos
12