Check if file exists on remote machine

匿名 (未验证) 提交于 2019-12-03 01:27:01

问题:

I want to check if a file exists on a remote webserver with php.

I now have this function:

function url_exists($url) {    // Version 4.x supported    $handle   = curl_init($url);    if (false === $handle)    {        return false;    }    curl_setopt($handle, CURLOPT_HEADER, false);    curl_setopt($handle, CURLOPT_FAILONERROR, true);  // this works    curl_setopt($handle, CURLOPT_HTTPHEADER, Array("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15") );      // request as if Firefox         curl_setopt($handle, CURLOPT_NOBODY, true);     curl_setopt($handle, CURLOPT_RETURNTRANSFER, false);     $connectable = curl_exec($handle);     curl_close($handle);     return $connectable; }

It works fine, but if I pass an ip address instead of a domain name it returns false.. (so I want to check http://123.456.789.121/test.jpg, when I send http://somedomain.com/test.jpg it works fine...)

Any ideas?

Thanks in advance!

回答1:

The remote server probably resolves files using the Host header.
If so, you need to use a domain name.

You may be able to explicitly pass a Host header to the IP address, but I wouldn't recommend it.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!