如何区分URL在服务器上或服务器外(远程)?

时间:2015-01-15 07:24:55

标签: php download server

我正在用户输入可下载文件,可以上传文件 -

  • 到他们自己的服务器(即:example.com/files/filename.ext
  • 或者,对于远程的。 (即:external.org/someone/somewhere/filename.ext

当我trying实现下载按钮(带有某个进程)时,我came to know从远程服务器下载的文件不是这样的。这就是我需要检查URL是我自己的服务器还是来自外部服务器的原因。

如果我可以通过一个简单的条件区分两者,我可以将流程传递给是否:

1 个答案:

答案 0 :(得分:1)

从文件URL获取主机名并与您的网络主机名进行比较

$fileHost = parse_url("example.com/files/filename.ext", PHP_URL_HOST);
//$fileHost == "example.com"
if($fileHost == $myHost)
{
    //this is local file
}
else
{
    //this is external file
}

你可以让你的PHP用

获得$ myHost
$myHost = $_SERVER['HTTP_HOST'];

http://php.net/manual/en/function.parse-url.php