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)

 

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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();
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();
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):

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
function selfPage() {
return substr($_SERVER['PHP_SELF'],1+strrpos($_SERVER['PHP_SELF'],'/'));
}
echo selfPage();
function selfPage() { return substr($_SERVER['PHP_SELF'],1+strrpos($_SERVER['PHP_SELF'],'/')); } echo selfPage();
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
echo $_SERVER['PHP_SELF'];
echo $_SERVER['PHP_SELF'];
echo $_SERVER['PHP_SELF'];