Я хочу проверить, существует ли файл на удаленном веб-сервере с php.
Теперь у меня есть эта функция:
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; }
Он работает нормально, но если я передаю IP-адрес вместо имени домена, он возвращает false .. (поэтому я хочу проверить http://img.ruphp.com/php/test.jpg , когда я отправляю http://somedomain.com/ test.jpg он отлично работает …)
Есть идеи?
Заранее спасибо!
Удаленный сервер, вероятно, разрешает файлы с использованием заголовка Host
.
Если это так, вам нужно использовать доменное имя.
Вы можете явно передать заголовок Host
на IP-адрес, но я бы не рекомендовал его.