PHP正在确定当前url
我需要修改我的函数以返回我所在的当前文件夹。以下是我目前的职能:PHP正在确定当前url,php,url,directory,Php,Url,Directory,我需要修改我的函数以返回我所在的当前文件夹。以下是我目前的职能: function getLinkFromHost($url){ $port = $_SERVER['REMOTE_PORT']; $server = $_SERVER['HTTP_HOST']; if($port == 443){ $type = "https"; } else { $type = "http"; } r
function getLinkFromHost($url){
$port = $_SERVER['REMOTE_PORT'];
$server = $_SERVER['HTTP_HOST'];
if($port == 443){
$type = "https";
} else {
$type = "http";
}
return $type . "://" . $server . "/" . $url;
}
看看
$\u服务器['REQUEST\u URI']
或$\u服务器['SCRIPT\u NAME']
(来自手动输入)这里有一个简短的sweet函数,我已经用了一段时间了 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; } 函数curPageURL(){ $pageURL='http'; 如果($_服务器[“HTTPS”]=“on”){$pageURL.=“s”} $pageURL.=“:/”; 如果($\服务器[“服务器\端口”!=“80”){ $pageURL.=$\u服务器[“服务器名称”]。:“$\u服务器[“服务器端口”]。$\u服务器[“请求URI”]; }否则{ $pageURL.=$\u服务器[“服务器名称”]。$\u服务器[“请求URI”]; } 返回$pageURL; } 我不能接受信用,它属于:
echo $_SERVER['PHP_SELF']; // return current file
echo __FILE__; // return current file
echo $_SERVER['SCRIPT_NAME']; // return current file
echo dirname(__FILE__); // return current script's folder
// etc
可能您还希望在url中包含get vars,因此您应该在函数中添加一些内容
$current\u url=rtrim(curPageURL(),“/”(!empty($\u GET))?“?”.http_build_query($\u GET):”代码>以下是一个可能有帮助的方法:
function current_url()
{
$result = "http";
if($_SERVER["HTTPS"] == "on") $result .= "s";
$result .= "://".$_SERVER["SERVER_NAME"];
if($_SERVER["SERVER_PORT"] != "80") $result .= ":".$_SERVER["SERVER_PORT"];
$result .= $_SERVER["REQUEST_URI"];
return $result;
}
我需要它包含我所在的文件夹。这是非常正确的方法。不检查协议(HTTP vs HTTPS)、端口和服务器名称通常会被忽略,并可能导致以后出现问题(尤其是在测试环境中,或者更糟糕的是,如果您在某些方面启用了SSL,而不是在开发中,则“仅在生产中”)。无论使用何种语言,这种方法都是很好的实践。尽管如果SSL是由负载平衡器完成的,即使是HTTPS和服务器_端口也帮不上忙。在这种情况下,URL可能看起来像https://site.com/
,但HTTPS将关闭,服务器端口可能为80(或其他)。