PHP: Funzione che ritorna l’URL attuale

Hai necessità di rilevare automaticamente l’URL completo della pagina attuale? Ecco una ricetta che funziona per URL sia http: che https: (esempio: https://dominio.com/cartella/pagina.php)

 

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']; 
} 

function strleft($s1, $s2) { 
 return substr($s1, 0, strpos($s1, $s2)); 
}


echo selfURL();

 

 

Ed eccone una che torna solo la pagina attuale, senza url o percorsi (esempio: pagina.php):

function selfPage() {
  return substr($_SERVER['PHP_SELF'],1+strrpos($_SERVER['PHP_SELF'],'/'));
}

echo selfPage();

 

Per finire, se ti serve semplicemente avere il nome del file/script che è in esecuzione senza nome server e link ma con la cartella (esempio: /cartella/pagina.php), ecco qua:

echo $_SERVER['PHP_SELF'];