Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP正在确定当前url_Php_Url_Directory - Fatal编程技术网

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(或其他)。