Как отличить URL-адрес на сервере или вне сервера (удаленно)?

Я принимаю пользовательский ввод их загружаемых файлов, куда они могут быть загружены-

  • на свой сервер (например: example.com/files/filename.ext)
  • или к удаленному. (т.е.: external.org/someone/somewhere/filename.ext)

Поскольку я пытаюсь реализовать кнопку загрузки (с некоторым процессом), я узнал, что скачивание файлов с удаленного сервера не так. Вот почему мне нужно проверить, является ли URL-адрес моего собственного сервера или внешнего.

Если я могу различать оба, то с помощью простого условного выражения я могу передать поток следующим образом:


person Mayeenul Islam    schedule 15.01.2015    source источник


Ответы (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

person Ján Stibila    schedule 15.01.2015