Funciones de cadena en PHP


Lección 10 / 24

Funciones de cadena en PHP

Php Desarrollador php

En los artículos anteriores de esta guía, tratamos las llamadas funciones de usuario (user function), es decir, aquellas funciones creadas manualmente por el desarrollador web.
Sin embargo, para aprender php de la mejor manera, creemos conveniente explorar también el universo de las funciones integradas (funciones de built-in) o, como ya se mencionó, las funciones nativas del lenguaje php.
Para facilitar el aprendizaje, dividiremos las funciones integradas en funciones para trabajar con cadenas, funciones para trabajar con números y funciones para trabajar con matrices. Obviamente, los desarrolladores de php lo saben bien, las funciones integradas son variadas y muy numerosas. A continuación, analizaremos los principales.

¿Qué es una cadena en PHP?

Si recuerdas una de las lecciones de php anteriores, en las que analizamos los tipos de datos en php, seguramente sabrás qué es una cadena. Hagamos un resumen rápidamente: una cadena es una secuencia de letras, números, caracteres especiales y valores aritméticos o una combinación de los mismos. La forma más sencilla de crear una cadena es encerrar el contenido de la cadena (es decir, los caracteres de la cadena) entre comillas simples ('), así:

$my_string = 'Hello World';

También puedes usar comillas dobles ("). Sin embargo, las comillas simples y las comillas dobles funcionan de manera diferente. Las cadenas entre comillas simples siempre se tratan como una cadena, mientras que las cadenas delimitadas por comillas dobles permiten la interpolación de variables, es decir, las variables se reemplazan con las representaciones de cadena de sus valores, e interpretan algunas secuencias de escape de una manera especial.

<?php

   $name = “Mario”;
   $greet = “Encantado de conocerte $name”

   echo $greet // Encantado de conocerte Mario

?>

Las sustituciones de las secuencias de escape son:

\n o \r crea una nueva línea

\t se reemplaza por el carácter tab o tabulador

\$ se reemplaza por un signo de dolar ($)

\" se reemplaza por una sola comilla doble (")

\\ se reemplaza por una sola barra invertida (\).
 

Dejamos un ejemplo para aclarar las diferencias entre cadenas con comillas simples y dobles:

<?php

   $str = 'World';

   echo "Hello, $str!"; // Mostra: Hello World!
   echo 'Hello, $str!'; // Mostra: Hello, $my_str!
   echo 'Hello\tWorld!'; // Mostra: Hello\tWorld!
   echo "Hello\tWorld!"; // Mostra: Hello   World!
   echo 'I\'ll be back'; // Mostra: I'll be back

?>

Manipulación de cadenas en PHP

PHP proporciona muchas funciones integradas para la manipulación de cadenas, como calcular la longitud de una cadena, buscar subcadenas o caracteres, reemplazar parte de una cadena con diferentes caracteres, dividir una cadena y muchas más. Analicemos algunas de ellas.

Cálculo de la longitud de una cadena: php strlen()

La función strlen() sirve para calcular el número de caracteres dentro de una cadena. Incluye también los espacios vacíos dentro de la cadena.

<?php

   $str = 'PHP es chulisimo';

// Output: 17

   echo strlen($str);

?>

¡Pero ten cuidado! En realidad, si realmente contáramos los caracteres en cuestión, descubriríamos que son 16 y no 17. ¿Cómo es posible entonces que php nos diga que la cadena está compuesta por 17 caracteres?

Esto sucede porque la función "strlen" no cuenta literalmente los caracteres, sino los bytes que ocupa la cadena en memoria y en nuestro caso específico tenemos un carácter especial o "es" que ocupa 2 bytes.

Para resolver esto, muchas funciones de php tienen una contraparte que comienza con mb_* que opera en cadenas de varios bytes.

<?php

   $str = 'PHP es chulisimo';

// Output: 17

   echo strlen($str);

// Output: 16

   echo mb_strlen($str);

?>


Contar el número de palabras en una cadena: php  str_word_count() 

La función str_word_count() cuenta el número de palabras en una cadena.

<?php

   $str = 'como contar las palabras en una cadena PHP';

// Output: 8

   echo str_word_count($str);

?>


Invertir una cadena: php strrev()

La función strrev() invierte una cadena.

<?php

   $str = 'invertir cadena PHP';

// Output: ‘PHP agnirst eritrevni’

   echo strrev($str);

?>

Reemplazo de texto dentro de cadenas: php str_replace()

La función str_replace() reemplaza todas las apariciones del texto de búsqueda dentro de la cadena de destino:

<?php

   $str = ‘lecciones PHP';

// Output: ‘curso PHP’

   echo str_replace(‘lecciones’ , ‘curso’ , $str);

?>

Extraer parte de una cadena: php substr()

La función substr() permite extraer una parte de una cadena, a partir de una posición específica.

<?php

   $str = "yo amo PHP";

   echo substr($str, 3, 3); // amo
   echo substr($str, 7, 3); // PHP
   echo substr($str, -3); // PHP

?>

Buscar una palabra dentro de una cadena: php strpos()

A menudo sucede que deseas verificar si una cadena contiene una palabra específica. En estos casos, PHP proporciona la función strpos() que devuelve la posición de la primera aparición de la palabra buscada; de lo contrario, es falsa.

<?php

   $str = "como aprender PHP";

// Output : 7

   echo strpos($str , ‘PHP’);

// Output : false

   echo strpos($str , ‘Javascript’);

?>

Transformar una cadena en un Array: php explode()

Podemos dividir una cadena en un array dividiendo la cadena por un carácter pasado a la función php explode

<?php

   $str = "Transforma cadena en array PHP";
   $array= explode(" ", $str);

   print_r($parts);

?>

/* Output

Array

(
    [0] => "transforma"

    [1] => "cadena"

    [2] => "en"

    [3] => “array”
    [4] => “PHP”
)

*/

Convertir caracteres a mayúscula o minúscula: php strtoupper() y php strtolower()

Las funciones strtoupper() y strtolower() convierten caracteres de una determinada cadena en mayúscula y minúscula, respectivamente. 

<?php

   $str = "convierte caracteres en mayuscula y minuscula";

   echo strtolower($str); // convierte caracteres en mayuscula y minuscula
   echo strtoupper($str); // CONVIERTE CARACTERES EN MAYUSCULA Y MINUSCULA

?>

© 2022 Aulab. Todos los derechos reservados • P.IVA: IT07647440721 • Política de privacidad