lenguaje - php manual
obteniendo la URL actual (2)
Estoy usando el siguiente código para obtener la URL actual
$current_url = "http://".$_SERVER[''HTTP_HOST''].$_SERVER[''REQUEST_URI''];
¿Hay alguna otra manera de obtener el mismo, o puede ser una mejor manera de obtener la URL actual?
Gracias.
De la referencia :
<?php
function curPageURL() {
$pageURL = ''http'';
if ($_SERVER["HTTPS"] == "on") {
$pageURL .= "s";
}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
?>
Debe tener cuidado al confiar en las variables del servidor, y depende de lo que el servidor web quiera brindarle ... Esta es una forma bastante segura de obtener la URL.
$url = '''';
if (isset($_SERVER[''HTTPS'']) && filter_var($_SERVER[''HTTPS''], FILTER_VALIDATE_BOOLEAN))
$url .= ''https'';
else
$url .= ''http'';
$url .= ''://'';
if (isset($_SERVER[''HTTP_HOST'']))
$url .= $_SERVER[''HTTP_HOST''];
elseif (isset($_SERVER[''SERVER_NAME'']))
$url .= $_SERVER[''SERVER_NAME''];
else
trigger_error (''Could not get URL from $_SERVER vars'');
if ($_SERVER[''SERVER_PORT''] != ''80'')
$url .= '':''.$_SERVER["SERVER_PORT"];
if (isset($_SERVER[''REQUEST_URI'']))
$url .= $_SERVER[''REQUEST_URI''];
elseif (isset($_SERVER[''PHP_SELF'']))
$url .= $_SERVER[''PHP_SELF''];
elseif (isset($_SERVER[''REDIRECT_URL'']))
$url .= $_SERVER[''REDIRECT_URL''];
else
trigger_error (''Could not get URL from $_SERVER vars'');
echo $url;