获取当前页面的完整URL(PHP)

3zz*_*zzy 8 php scripting location path

我在这个页面上工作: http://localhost/projectname/custom.php

双方<?php echo $_SERVER['REQUEST_URI']; ?><?php echo $PHP_SELF; ?>没有充分的位置.我应该使用什么来获取完整的网址?

Sor*_*tis 12

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)); }
Run Code Online (Sandbox Code Playgroud)

  • 似乎来自该网站:http://dev.kanngard.net/Permalinks/ID_20050507183447.html (4认同)
  • `strleft`不存在(至少在PHP的最新版本中). (3认同)

har*_*pax 8

据我所知,没有一种原生方法,但你可以使用它:

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;
}
Run Code Online (Sandbox Code Playgroud)