jairogarcíarincón

Strings


2.77K

Introducción



El manejo de strings es otro de los pilares de la programación en PHP, y si bien existen infinidad de funciones para trabajar con ellas que se pueden consultar en la programación oficial, aquí solo veremos las más utilizadas.

Los strings se pueden definir de diferentes maneras, si bien las más común es la de encerrar lo entre comillas (simples o dobles). En principio, ambas formas están aceptadas, aunque se establece una pequeña clasificación:

  • usaremos comillas simples para strings "tal cual."
  • usaremos comillas dobles si vamos a utilizar caracteres de escape o control interpolar variables, etc.




Para conocer la longitud de un string utilizamos la función strlen(), que devuelve la longitud en bytes del string, lo que implica que todos los caracteres cuentan, independientemente de su valor.



La función strtr() permite transformar un string, sustituyendo unos caracteres por otros predefinidos:



Por último, es posible utilizar un string como si fuera un array en el que cada caracter es un elemento del mismo



Comparar strings



En ocasiones necesitaremos comparar strings para realizar ciertas operaciones, si bien hay que tener cuidado con las conversiones internas entre datos de PHP. Así, el siguiente ejemplo devolverá true, ya que internamente el string se convertirá al entero 123 antes de la comparación. Esto se podría haber evitado si hubiéramos utilizado el comparador idéntico ===:



No obstante, existen funciones específicas de PHP para realizar las comparaciones y cuyo valor devuelto será 0 si las cadenas son consideradas iguales. Estas funciones son:

strcmp(), que compara dos strings tal cual, como si utilizáramos el operador idéntico
strcasecmp(), que funciona como la anterior, pero es insensible a mayúsculas y minúsculas. Muy útil para campos de captcha, email, etc.
strncmp() y strncasecmp(), que permiten comparar solo una cantidad definida de caracteres (en el segundo caso de manera insensible a mayúsculas y minúsculas). Una función similar a esta sería substr_compare()



Buscar y reemplazar strings



Existen diferentes funciones para realizar búsquedas y reemplazos en strings PHP, si bien hay que tener en cuenta que cuanto más complicada sea la función, más tiempo de ejecución necesitará, pudiendo ralentizar los procesos considerablemente, sobre todo en búsquedas masivas.

La forma más sencilla de buscar en un string es con la función strpos(), que busca nuestra "aguja" o porción deseada en el "pajar" o cadena completa y devuelve la posición de la primera ocurrencia. Es importante, al realizar las comparaciones, recordar usar el operador idéntico, para no confundir la primera posición del string 0 con false. También se puede invocar de manera opcional un tercer parámetro para indicar desde qué posicion del string se quiere empezar a buscar:



Una variante de esta función es strstr(), que funciona de manera similar pero devolviendo la porción del string desde la porción buscada:



En general, strstr() es más lenta que strpos(), con lo que si no necesitamos la porción del string, es mejor utilizar strpos().

Además y al igual que antes, existen funciones similares a strpos() y strstr() pero que son insensibles a mayúsculas y minúsculas. Estas son, respectivamente, stripos() y stristr().

También es posible indicar a PHP que empiece a buscar desde el final del string en lugar de hacerlo desde el principio, para ello hay que utilizar la función strrpos().



La función más simple para buscar y reemplazar en un string es str_replace(), así como su variante insensible a mayúsculas y minúsculas str_ireplace(), bien pasando strings sencillos de búsqueda y reemplazo o arrays de strings para realizar varios reemplazos simultáneos. Además, es posible añadir un cuarto parámetro que nos da la cantidad de reemplazos efectuados:



Y como avanzamos antes, es posible utilizar la función susbtr_replace() combinándola con strpos() para reemplazar parte de una aguja que encontremos a partir de una determinada ocurrencia, por ejemplo:



Para terminar, existe una función, llamada substr(), que permite extraer parte de un string, algo realmente útil y necesario en muchas situaciones. Funciona con tres parámetros: el string de entrada, la posición desde el inicio (o desde el fin si es un número negativo) y, de manera opcional, la longitud:



Otras funciones



Además de las citadas anteriormente, existen muchas más funciones en PHP para trabajar con strings. Todas ellas están disponibles en la documentación oficial de PHP y muchas de ellas serán necesarias para resolver los ejercicios planteados a continuación.

Ejercicios propuestos



  • Muestra por pantalla el texto: El comando c:\*.* no es correcto y en mi reloj son la 12 "o'clock".
  • Escribe tu nombre completo y dos apellidos en una línea. En la siguiente, sustituye las vocales e,i,o por los números 3,1,0, respectivamente. Si hay alguna 's', sustitúyela por el número '5'.
  • Escribe tu nombre completo y dos apellidos en una línea. En la siguiente, sustituye todas tildes y diéresis (si las hay) por su correspondiente vocal sin tilde ni diéresis. Si alguna 'ñ', sustitúyela por una 'n'.
  • Escribe una función que transforme una frase a mayúsculas
  • Escribe una función que transforme una frase a minúsculas
  • a. Escribe una función que transforme la primera letra de una frase a mayúsculas. b. Modifica la anterior para que transforme la primera letra de la frase a minúsculas
  • Escribe una función que transforme la primera letra de cada palabra de una frase a mayúsculas
  • Escribe una función que convierta el string 15061974 en 15/06/1974
  • Escribe una función que extraiga el nombre del fichero de una ruta (Ejemplo, 'http://www.jairogarciarincon.com/carpeta1/index.php' debe devolver 'index.php'.
  • Escribe una función que extraiga el nombre de usuario de una dirección de email (Ejemplo jairo@garciarincon.com debe devolver jairo)
  • Escribe una función que devuelva la letra o número siguiente al introducido (Ejemplo, si la muestra es 'a', debe devolver 'b'. Si la muestra es '4', debe devolver '5').
  • Escribe una función que devuelva la primera palabra de una frase.


Publicado el 21 de Octubre de 2021

phpvariablesbuclesarrays