Obtener la URL actual con PHP

21/Ene/2013 PHP , , , , 1 Comentario

En este post veremos cómo obtener la URL actual por medio de un par de funciones con PHP, además de obtener la URL también podemos obtener ciertos detalles como el puerto, el protocolo y el host.

En PHP existen varias variables que ofrecen datos sobre la URL que se está ejecutando. Nosotros podemos obtener diferentes datos a través de estas variables según nos convenga. Por ejemplo, con las variable $_SERVER de PHP siguientes puedes obtener esa URL que estamos ejecutando:

  • $_SERVER["REQUEST_URI"], devuelve la URL que se está ejecutando, relativa a la raíz del dominio
  • $_SERVER["PHP_SELF"], devuelve el script que se está ejecutando, relativo a la raíz del dominio, que puede ser distinto a REQUEST_URI
  • $_SERVER["SERVER_NAME"] Almacena el servidor donde está alojada la página

De esta manera podríamos juntar las variables y concatenarlas en una sola para obtener la URL completa de manera sencilla

  1. $url_actual = "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
  2. echo "<strong>$url_actual</strong>";

También podemos obtener más datos además de la URL, como lo son el protocolo, el host y el puerto que se esta usando, a continuación les muestro el código para obtener dichos datos:

  1. <?php
  2. function obtenerURL() {
  3. $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
  4. $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/") . $s;
  5. $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
  6. return $protocol . "://" . $_SERVER['SERVER_NAME'] . $port . $_SERVER['REQUEST_URI'];
  7. }
  8.  
  9. function strleft($s1, $s2) {
  10. return substr($s1, 0, strpos($s1, $s2));
  11. }

Una vez que la función obtenerURL ha montado la URL lo que hacemos es descomponerla mediante la función parse_url para ver las partes que lo componen.

  1. $url = obtenerUrl();
  2. $datos = parse_url($url);
  3.  
  4. foreach ($datos as $key=>$value) {
  5. echo "$key: $value <br >";
  6. }
  7.  
  8. $url_actual = "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
  9. echo "<b>$url_actual</b>";
  10. ?>

Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

Un comentario en “Obtener la URL actual con PHP”

Dave Rndn

reklamy

Hey! I could have sworn I’ve been to this site before
but after checking through some of the post I realized it’s new to
me. Nonetheless, I’m definitely glad I found it and I’ll be
book-marking and checking back often!

Los comentarios están cerrados.