如果文件在远程服务器上,请检查PHP

时间:2013-10-24 20:49:52

标签: php remote-server

我基本上是在寻找一个if语句:

  

if(....){}

     
    

其他{}

  

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

我已经做了一些研究,它把我带到file_exists,但我不确定这是否是我想要的,或者是否有更好的方法来做到这一点。

我不确定它是否相关为什么我正在这样做,但是这里有:我在functions.php页面中有几个不同的配置,我希望它在不同时采取不同的行动它是在生产中,当它在本地测试模式时。

3 个答案:

答案 0 :(得分:3)

您的问题遗留了一些条件,例如文件是否可以通过HTTP请求进行调用,以及您是否关注文件是否相同远程服务器。如果您只关心文件是否存在,并且通过HTTP公开,则可以对该文件发出HTTP请求,并检查响应代码。您可能希望在文件中放置一些处理逻辑来处理这些请求。如果无法通过HTTP请求访问该文件,还有几个选项:

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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