2010-11-21 54 views
1

Bir dosyanın php ile uzak bir web sunucusunda olup olmadığını kontrol etmek istiyorum.Uzak makinede dosya olup olmadığını kontrol edin

şimdi bu işlevi vardır:

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; 
} 

Düzgün çalışır, ancak bir etki alanı adı yerine bir IP adresi geçirirseniz yanlış döndürür .. (yani http://123.456.789.121/test.jpg kontrol etmek istiyorum, ben gönderdiğinizde http://somedomain.com/test.jpg iyi çalışıyor ...)

Herhangi bir fikrin var mı?

Şimdiden teşekkürler!

+0

Tarayıcınızda denediniz mi (IP adresi)? – Ruel

+0

Dünyada neden bir IP adresi geçmek istiyorsun? – SLaks

+0

Evet, tarayıcımda denedim ve bir IP adresi iletmek istiyorum çünkü bu, uyguladığımın bildiği tek adres. URL'ler dinamik olarak yüklenir, bu nedenle bir etki alanı olabilir veya bir ip adresi olabilir. Dosyanın mevcut olup olmadığını kontrol etmek için ... – CyberK

cevap

3

Uzak sunucu, muhtemelen, Host üstbilgisini kullanarak dosyaları çözer.
Öyleyse, bir etki alanı adı kullanmanız gerekir.

Bir Host üstbilgisini IP adresine açıkça iletebilirsiniz, ancak bunu önermeyebilirim.

+0

Ve bir Ana bilgisayar üstbilgisini nasıl geçebilirim? : D – CyberK

+0

@CyberK, kendi başlıklarınızı CURL_HTTPHEADER seçeneğine ekleyebilirsiniz, örneğin: curl_setopt ($ handle, CURLOPT_HTTPHEADER, Array ("Host: www.example.com", "Kullanıcı-Aracı: Mozilla/5.0 (Windows) U; Windows NT 5.1; tr-US; rv: 1.8.1.15) Gecko/20080623 Firefox/2.0.0.15 ")); – BrianC

İlgili konular