Como saber la URL en la que te encuentras con PHP

En este pequeño review mostraremos dos funciones que nos permetirán conocer la url completa de nuestra web o simplemente el host principal

Aveces nos es necesario conocer la dirección completa de nuestra web, sobretodo ahora con los diversos plugins sociales en los que hay que indicar hacia que url apuntar o, como comentamos en diversas ocasiones, para configurar correctamente el plus one de google.

Este tipo de función son muy útiles cuando contamos con uno o diversos sitios de producción y luego se migra todo al servidor (la forma correcta de trabajar), o simplemente queremos preparar nuestro script para ser instalado en cualquier servidor.

Vamos a ver dos funciones, una que he creado yo para mi propia necesidad y una segunda, más generica, creada por ves a saber quien un usuario de la red.

self_url() o como obtener la url completa y los parámetros de mi web

Esta función retorna el dominio completo (dominio + carpetas) el nombre del archivo y los parámetros que se le asignan.
Todo esto lo hace juntamente a un urlencode ya que está pensada para ser agregada como parámetro en un url y los & dan problemas si no se codifican.

function self_url() {
	return urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING']);
}

La principal desventaja de este script es que no comprueba si es http o http. Pero como nunca trabajo con https no tengo ese problema.

selfURL() o como obtener la url generica de nuestro sitio web

Esta función va mucho más allá y no solo comprueba lo mismo que la anterior sino que también saca el protocolo (http, https) y el puerto.

A mi entender es inecesario a menos que vayas a estar cambiando de site muy seguido y por ende de puerto.
Pero como siempr, para gustos variables.

Para los principiantes lean con calma el código y no deje que los espante.
Parece todo muy complicado pero son dos funciones bastante sencillas de entender con un poco de calma.

Sin más el segundo código es el siguiente

function selfURL() { 
	$s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : ""; 
	$protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s; 
	$port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]); 
	return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI'];
}

One Response to Como saber la URL en la que te encuentras con PHP

  1. Carles dice:

    Gracias por tu aporte, me ha sido de gran ayuda.
    CarlesCM

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">