2010-11-21 14 views
1

Ich möchte überprüfen, ob eine Datei auf einem entfernten Webserver mit PHP existiert.Prüfen, ob die Datei auf dem entfernten Rechner existiert

Ich habe jetzt diese Funktion:

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

Es funktioniert gut, aber wenn ich eine IP-Adresse anstelle eines Domain-Namens übergeben wird false zurückgegeben .. (so will ich http://123.456.789.121/test.jpg überprüfen, wenn ich senden http://somedomain.com/test.jpg funktioniert es gut ...)

Irgendwelche Ideen?

Vielen Dank im Voraus!

+0

Haben Sie es in Ihrem Browser (IP-Adresse) versucht? – Ruel

+0

Warum in aller Welt möchten Sie eine IP-Adresse weitergeben? – SLaks

+0

Ja, ich habe es in meinem Browser versucht, und ich möchte eine IP-Adresse weitergeben, weil das die einzige Adresse ist, die meine App kennt. Die URLs werden dynamisch geladen, so dass es sich um eine Domain oder eine IP-Adresse handeln kann. Überprüfen Sie nur, ob die Datei existiert ... – CyberK

Antwort

3

Der Remote-Server löst möglicherweise Dateien mit dem Header Host.
Wenn ja, müssen Sie einen Domänennamen verwenden.

Sie können möglicherweise einen Header Host explizit an die IP-Adresse übergeben, aber ich würde es nicht empfehlen.

+0

Und wie kann ich einen Host-Header übergeben? : D – CyberK

+0

@CyberK, Sie können der Option CURL_HTTPHEADER eigene Header hinzufügen, zum Beispiel: 'curl_setopt ($ handle, CURLOPT_HTTPHEADER, Array (" Host: www.beispiel.com "," Benutzer-Agent: Mozilla/5.0 (Windows ; U; Windows NT 5.1; de-US; rv: 1.8.1.15) Gecko/20080623 Firefox/2.0.0.15 "));' – BrianC

Verwandte Themen