Categorías: Tutoriales

Comprobar en PHP si una URL contiene una cadena

Muchas veces tenemos que tomar decisiones en función de lo que contenga la URL. No suele ser el método más elegante y en una buena arquitectura con un modelo vista controlador no es lo frecuente, sin embargo, sí es algo que pasa y es algo que nos puede sacar de más de un problema si sabemos cómo hacerlo.

La idea es la siguiente:

  • Si la URL contiene (por ejemplo) “/categoria/” sabemos que estamos tratando con una categoría (en WordPress podríamos hacer directamente is_category()).

 ¿Cómo hacerlo con PHP?

Muy simple, sólo tendremos que comparar las cadenas y previamente recuperar la URL. ¿Cómo?

La URL se recupera así:

$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];

Y la comparación la haremos como sigue:


if (false !== strpos($url,'/categoria/')) {
    echo 'La cadena /categoria/ aparece';
} else {
    echo 'La cadena /categoria/ no aparece';
}

Bonus track

¿Y por qué usamos el operador de comparación ‘ !==’  en lugar de simplemente ‘!=’? Más de uno ya sabrá que en los lenguajes no tipados, como PHP o JavaScript, una variable puede tener diferentes tipos y podemos comparar entre diferentes tipos de variables.

Es decir podemos hacer cosas como:

  • 0 == False: comparar entero con booleano comparando sólo valores, en este caso daría Verdadero
  • 0 === False: además de comprobar valores también comprueba tipos, al ser diferentes devuelve Falso

Igual para el caso anterior, si ponemos:

  • false != strpos($url,’/categoria/’): si ponemos esto y la cadena está en la posición 0 daría una salida errónea, ya que estando dentro de la cadena aparecería como que no lo está. Para asegurarnos tenemos que hacer…
  • false !== strpos($url,’/categoria/’): que también comprueba tipo, así si está en la posición 0 da un valor correcto y si la cadena no se contiene y devuelve false, al comparar también tipos no tendremos problemas.
F. Javier Carazo Gil

Cofundador de CODECTION, empresa especializada en WordPress, autor de un libro sobre WordPress (el primero en español) y multitud de artículos (en medios físicos y virtuales) sobre el tema. Participa en la comunidad WordPress de forma activa siendo parte del equipo organizador de la WordPress Meetup de Córdoba, dando charlas en diferentes WordCamp y siendo autor y coautor de multitud de plugins libres y premium para WordPress de gran éxito.

Ver comentarios

Entradas recientes

432 CVEs

5 días hace

Anti-IA

2 semanas hace

Memoria

3 semanas hace

Mal uso

4 semanas hace

Precio de la RAM

1 mes hace

AUR

1 mes hace