Inicio Noticias Cómo obtener la URL de la página actual en PHP

Cómo obtener la URL de la página actual en PHP

En este tutorial, le mostraremos cómo obtener la URL de la página actual en PHP.

El lenguaje PHP ofrece constantes súper globales que pueden contener información variada. Puede identificar cualquiera de estas constantes globales utilizando un solo guión bajo al comienzo de su nombre.

El súper global que usaremos, en particular, se llama «$_SERVER». Esta constante de PHP contiene información sobre la solicitud actual, incluidos encabezados, rutas y ubicaciones de secuencias de comandos.

Usando la información provista por esta constante, podemos usar PHP para obtener la URL de la página actual.

Antes de ir más lejos, hay implicaciones de seguridad para usar la mayoría de las variables almacenadas en esta constante. Por ejemplo, un cliente puede establecer tanto «HTTP_HOST» como «REQUEST_URL» en cualquier valor.

En la siguiente sección, le mostraremos cómo puede recuperar cada parte del

Indice

Obtener la URL de la página actual en PHP

No hay una función o variable singular que podamos usar para crear la URL de la página actual en PHP. En su lugar, necesitamos reconstruir la URL usando múltiples valores.

En las próximas dos secciones, revisaremos rápidamente cada variable que usaremos e introduciremos el tipo de datos que nos brinda.

Si prefiere omitir el desglose, vaya a la sección «Ponlo todo junto».

Obtener nombre de host en PHP

La primera información que necesitamos para obtener la URL de la página actual es el nombre de host. El nombre de host es como una etiqueta que identifica el dispositivo. En el caso de una URL, suele ser el nombre de dominio del sitio web.

Por ejemplo, el nombre de host de nuestro sitio web es «TecnoPasion.com».

El nombre de host se define en la tabla «$_SERVER» bajo la clave «HTTP_HOST». Nuestro pequeño fragmento de código a continuación le muestra lo simple que es ingresar este valor.

Al ejecutar este pequeño fragmento, terminará con solo el nombre de host de su página actual. Usaremos esto para eventualmente crear la URL de la página completa en PHP.

Por ejemplo, obtuvimos el siguiente valor al ejecutarlo en nuestro servidor de desarrollo local.

Obtener URI de solicitud en PHP

La segunda información que necesitamos para obtener la URL de la página actual en PHP es la URI de solicitud. El URI es la parte de la URL después del nombre de host, incluida la cadena de consulta.

Por ejemplo, con la URL «https://TecnoPasion.com/category/coding/php/?p=2», la URI de solicitud sería «/category/coding/php/?p=2».

Al igual que el nombre de host, el URI de solicitud también está disponible en la superconstante global «$_SERVER».

Puede obtener este valor utilizando la clave «REQUEST_URI» de la matriz «$_SERVER», como se muestra a continuación.

Probando esto nuevamente en nuestro pequeño script «test.php», obtuvimos lo siguiente.

Comprobación de HTTP o HTTPS en PHP

La última parte que necesitamos para obtener la URL de la página actual en PHP es el protocolo utilizado para estas conexiones. Esto es importante porque nos dice si la URL actual contiene «http» o «https».

El protocolo es probablemente el más difícil de aprender, pero sigue siendo muy simple.

Para verificar si el usuario usó HTTPS para la solicitud actual, podemos verificar el súper global «$_SERVER» y ver si la variable «HTTPS» no se ha configurado en «apagado».

El uso del operador ternario de PHP (?:) nos permite simplificar esta declaración condicional en una sola línea. Si «$_SERVIDOR[‘HTTPS’]» es no igual a «apagado» configuramos el protocolo en «https://», otro lo configuramos en «http://».

Si bien eso está bien si eso es todo lo que necesitamos hacer, es posible que la clave «HTTPS» no esté disponible o esté vacía.

También podemos comprobar si la clave “SERVER_PORT” está configurada en 443 (Puerto utilizado por HTTPS por defecto).

Reajustemos el código, ahora usando la función «vacío()» de PHP en «$_SERVER[‘HTTPS’]” para ver si no está vacío. Si está vacío, usamos el operador OR (||) para verificar si la clave «SERVER_PORT» está configurada en 443.

La ejecución de cualquiera de estos ejemplos de código debería dejarlo con el protocolo utilizado para la conexión entrante.

Nuestro servidor de desarrollo está configurado para servir a través de HTTPS, por lo que obtuvimos el siguiente resultado.

Poniendo todo junto para obtener la URL de la página actual en PHP

Ahora que sabemos cómo obtener el protocolo, el nombre de host y el URI de solicitud, podemos usarlo para crear una URL de página completa.

Primero, construiremos el protocolo usando la matriz «$_SERVER» usando las claves «HTTPS» y «SERVER_PORT». Guardaremos el protocolo en una variable llamada «$protocol».

Después de configurar el protocolo correcto, podemos usarlo para crear la URL de la página actual usando la extensión de cadena de PHP.

Creamos esta cadena PHP usando comillas dobles, haciendo referencia a cada una de las siguientes variables en la cadena en el siguiente orden «$protocolo», «$_SERVER[‘HTTP_HOST’]” y “$_SERVIDOR[‘REQUEST_URI’]“.

Cuando PHP procesa la cadena, expande cada variable en su valor.

Finalmente, usamos la palabra clave echo de PHP para mostrar el valor que almacenamos en la variable «$page_url».

Después de ejecutar esta pieza de PHP, obtendrá el resultado de la URL de la página actual. Para nuestro ejemplo, obtenemos la siguiente URL.

Escriba una función para obtener la URL de la página actual en PHP

Terminemos esto escribiendo una función que le permita obtener rápidamente la URL de la página actual en PHP.

Con esto, creamos una función llamada «get_current_page_url()». Dentro de esta función, usamos el mismo código anteriormente.

Sin embargo, esta vez, en lugar de configurar la URL de la página como una variable, la devolveremos como una cadena.

Ahora, cada vez que necesite la URL de la página actual, puede usar «get_current_page_url()».

Conclusión

En esta guía, le mostramos cómo es posible obtener la URL de la página actual en PHP.

Gracias a la constante global «$_SERVER», toda la información que necesitamos para construir la URL de la página está disponible. Al usarlo en un entorno de producción, debe considerar limpiar los valores para asegurarse de que estén seguros.

Si tiene alguna pregunta sobre cómo obtener la URL de la página actual en PHP, comente a continuación.

Consulte nuestros muchos otros tutoriales de PHP, o si desea aprender un nuevo idioma, consulte nuestras guías de codificación.

Actualizaciones semanales directamente a su bandeja de entrada

¡Reciba nuestros proyectos de Raspberry Pi, tutoriales de codificación, guías de Linux y más!

Suscribir

Troels Platz
¿Sabéis el cuento del holandés errante que acabó viviendo en las costas de Sevilla?
RELATED ARTICLES