2013-10-24 42 views
-1

上我基本上找一个if语句:检查与PHP如果文件是远程服务器

如果(....){}

其他{}

...将检查当前文件是否在远程服务器上(在线,在我的网站上,而不是在使用Xampp或Mamp的本地配置中)。

我已经完成了一些研究,它将我带到了file_exists,但我不确定这是我想要的还是有更好的方法来做到这一点。

我不知道这是否是相关为什么我这样做,但在这里有云:我有一个页面的functions.php几个不同的配置,我想它采取不同的行动时,它的生产,以及当它处于本地测试模式时。

+2

'$ _ SERVER [“SERVER_ADDR”]' – Tchoupi

+0

你必须拿出一些其他的标准比*当前文件是在远程服务器上应该做的伎俩*。当前文件始终在本地服务器上,这就是* current *的原因。 – Oswald

回答

1

如果文件位于不同的主机上,您可以使用gethostbyaddr进行检查,并将其与本地主机或服务器进行匹配,然后相应地执行操作语句。

3

有几个条件已经被排除在您的问题之外,比如文件是否可以通过HTTP请求进行调用,以及您是否关心远程服务器上的文件是否为相同。如果您只关心文件的存在并通过HTTP公开,则可以为该文件发出HTTP请求,并检查响应代码。您可能需要在文件中添加一些处理逻辑来处理这些请求。如果该文件不能通过HTTP请求访问,则有几个选项:

1)创建一个脚本来检查文件。这需要一些额外的工作来确保安全。 2)FTP到服务器并尝试下载文件。

使用这两种解决方案之一,如果您希望知道两个地方的文件是否相同,您可以在两端使用MD5哈希查找。

1

如果文件是远程文件,您可以使用filectime返回FALSE。

$remote = empty(@filectime($url)); 
if ($remote) { 
    // File is remote. 
} 
else { 
    // File is local. 
} 
相关问题