En este post te mostraré a usar la función substr
para cortar una cadena en PHP (también conocido como cortar una palabra o cortar un string) desde un inicio hasta un fin.
También vamos a ver cómo cortar una cadena desde determinado carácter, es decir, eliminar lo que esté más allá de determinada letra.
La sintaxis es:
$cadenaCortada = substr($cadena, $inicio, $longitud);
Los argumentos son:
$cadena
: la cadena que se va a cortar$inicio
: el índice desde donde se comienza a cortar la cadena$longitud
: opcional. Cuántos caracteres tomar desde $inicio
.Comencemos con un ejemplo sencillo. Vamos a cortar una palabra desde 0 hasta 12. Es decir, tomaremos 12 caracteres en total.
<?php
/*
Cortar cadenas en PHP
@author parzibyte
https://parzibyte.me/blog
*/$cadena = "Hola, mundo. Programando en PHP desde parzibyte.me";
$cortada = substr($cadena, 0, 12);
echo "Cortada: $cortada";
#Salida: Cortada: Hola, mundo.
Como ves, cortamos la string y ahora el resultado es “Hola, mundo.”
Hay que tener cuidado cuando cortamos una cadena y no es a partir del 0, pues puede haber resultados inesperados ya que recuerda que el tercer argumento es la longitud o cantidad que queremos cortar, no el fin.
Por ejemplo, siguiendo el código anterior, si solo se deseara obtener “mundo” se haría lo siguiente:
<?php
/*
Cortar cadenas en PHP
@author parzibyte
https://parzibyte.me/blog
*/$cadena = "Hola, mundo. Programando en PHP desde parzibyte.me";
$cortada = substr($cadena, 6, 5);
echo "Cortada: $cortada";
#Salida: Cortada: mundo
Ahora se corta desde la posición 6 y se toman 5 caracteres.
Un uso que encontré para la función substr
fue cuando estaba mejorando mi caja de herramientas con PHP y quería capturar las variables GET al usar Phroute.
Para no confundir al lector, tenía esta cadena:
http://localhost/plantilla-php/usuarios?token=asdfg123
Y quería quitar todo lo que estuviera más allá del signo de interrogación (?
). Así que hice esto:
<?php
/*
Cortar cadenas en PHP
@author parzibyte
https://parzibyte.me/blog
*/$uri = "http://localhost/plantilla-php/usuarios?token=asdfg123";
echo "uri antes: $uri";
$posicionSignoDeInterrogacion = strpos($uri, "?");
if ($posicionSignoDeInterrogacion !== false) {
$uri = substr($uri, 0, $posicionSignoDeInterrogacion);
}
echo "\n\nuri después: $uri";
/*
Salida:
uri antes: http://localhost/plantilla-php/usuarios?token=asdfg123
uri después: http://localhost/plantilla-php/usuarios
*/
Con strpos obtuve la posición del signo de interrogación, esta función devuelve false
si no lo encuentra y por eso está el if
(ya que no todas las cadenas traían el símbolo)
A partir del signo de interrogación corté la cadena desde 0 hasta la posición del símbolo, resultando en una cadena cortada con PHP.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.