我正在此页面上的完整URL:http://localhost/projectname/custom.php
获取当前页面(PHP)
两个<?php echo $_SERVER['REQUEST_URI']; ?>
和<?php echo $PHP_SELF; ?>
不充分的位置。我应该使用什么来获取完整的url位置?
我正在此页面上的完整URL:http://localhost/projectname/custom.php
获取当前页面(PHP)
两个<?php echo $_SERVER['REQUEST_URI']; ?>
和<?php echo $PHP_SELF; ?>
不充分的位置。我应该使用什么来获取完整的url位置?
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)); }
没有一个本地方法,据我知道,但你可以这样做:
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;
}
检查这个......有点长,但脏良好的工作...
function absolutizeUrl ($u, $p)
{
$url = parse_url($u);
$page = parse_url($p);
if (strpos($u , '/') === 0)
{
//already absolute
} else {
$basePath = '';
if (
isset($page[ 'path' ])
&& strpos(ltrim($page[ 'path' ], '/'), '/')
)
{
$baseTokens = explode('/', $page[ 'path' ]);
array_pop($baseTokens); // strip basename
$baseTokens[] = $u;
$u = join('/', $baseTokens);
}
}
if (! isset($url[ 'host' ]))
{
$u = 'http://'.$page[ 'host' ].'/'.ltrim($u, '/');
}
return $u;
}
如果你正试图重新添加变量到你正在经历一个链接跟踪脚本的URL的末尾,例如,你可以试试这个:
$URI = array();
foreach($_GET as $key=>$val)
{
if ($key!="link"&&$key!="id"&&$key!="type") $URI[] = "$key=".urlencode($val);
}
if (sizeof($URI)>0) $link.="&".join("&",$URI);
在这种情况下,“link”,“id”和“type”是我需要跟踪的变量,但我想跟踪的URL有一个变量,脚本就好像它是发送给它的查询的一部分一样;我需要将它添加回链接URL,然后将它传递给标题(“Location:”。$ link)。
如果这是你正在努力实现这个伟大的作品,并比上面的例子短。
我发现这个代码非常有帮助
$protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']),'https') ===
FALSE ? 'http' : 'https'; // Get protocol HTTP/HTTPS
$host = $_SERVER['HTTP_HOST']; // Get www.domain.com
$script = $_SERVER['SCRIPT_NAME']; // Get folder/file.php
$params = $_SERVER['QUERY_STRING'];// Get Parameters occupation=odesk&name=ashik
$currentUrl = $protocol . '://' . $host . $script . '?' . $params; // Adding all
echo $currentUrl;
等待... $ _SERVER ['SERVER_PROTOCOL'] ==“HTTP/1.1”,即使使用https! – Michael 2014-12-10 03:04:20
似乎从该网站来:http://dev.kanngard.net/Permalinks/ID_20050507183447.html – 2011-08-04 14:04:38
'strleft'不存在(至少在最近PHP版本)。 – pr1001 2013-10-09 11:46:27
pr1001 - strleft不是在php中的函数中构建的,但是用户自定义的函数 – user8455694 2018-02-16 03:29:40