2017-03-11 4 views
0

Dieses Stück Code liest aus einem RSS-Feed und shoulfd erkennen, ob ein Bild exisists auf dem Server oder nicht:PHP Datei-Überprüfung immer false zurückgibt

<?php 
$feedURL = 'http://www.goapr.com/news/category/product-release/feed/'; 
$sxml = @simplexml_load_file($feedURL); 
if($sxml){ 
    $i=0; 
    foreach($sxml->channel as $channel){ 
     foreach($channel->item as $item){ 
      //if($i==6){break;} 
      if($item->prodimg=="~"){break;} 
      if($item->prodpage=="~"){break;} 
      $i += 1; 

      $file = 'http://www.goapr.co.uk'. $item->prodimg; 

      if (file_exists($file)) { 
      echo "The file $file exists"; 
      } else { 
      echo "The file $file does not exist"; 
      } 

     } 
    } 
}else{ 
    echo 'Sorry there was an error. The recent products will return shortly.'; 
} 
?> 

Viele der Bilder existieren, aber es gibt alle Bilder nicht gefunden:

Die Datei http://www.goapr.co.uk/includes/img/newprod/ultras4.png existThe Datei nicht http://www.goapr.co.uk/includes/img/newprod/30tpulleys.png nicht existThe Datei http://www.goapr.co.uk/includes/img/newprod/tiguan.png nicht existThe Datei http://www.goapr.co.uk/includes/img/newprod/2325row.png nicht existThe Datei http://www.goapr.co.uk/includes/img/newprod/plus.png nicht existThe Datei http://www.goapr.co.uk/includes/img/newprod/2017r.png nicht existThe Datei http://www.goapr.co.uk/includes/img/newprod/v24gti.png nicht existThe Datei http://www.goapr.co.uk/includes/img/newprod/q5gen3.png existiert nichtDie Datei http://www.goapr.co.uk/includes/img/newprod/s8downpipes.png existiert nichtDie Datei http://www.goapr.co.uk/products/ Alle Bilder werden als nicht gefunden erkannt.

Es ist nicht dasselbe wie: How to check if a file exists from a url, da sich die Dateien auf demselben Dateisystem wie diese PHP-Seite befinden.

+0

file_exists funktioniert nur auf dem lokalen Dateisystem . Ich, persönlich Verwenden Sie cURL, um eine Verbindung zu öffnen und die Informationen abzurufen und zu überprüfen, ob die Antwort 404 ist. Es reicht jedoch zu überprüfen, ob 'fopen' erfolgreich ist. – apokryfos

+0

Hallo Danke. Diese Dateien befinden sich auf demselben Dateisystem wie diese PHP-Seite, hilft das? –

+0

Mögliches Duplikat von [Wie prüfen, ob die Datei von der URL existiert] (http://stackoverflow.com/questions/7684771/how-check-if-file-exists-from-the-url) – Ruben

Antwort

1

Wenn Sie müssen überprüfen, ob eine Datei auf dem lokalen Dateisystem vorhanden Sie es über es lokalen Pfad beziehen sollten und nicht seine URL, so etwas wie:

$file = $_SERVER["DOCUMENT_ROOT"]."/path/to/images/".$item->prodimg; 

Beachten Sie, dass die DOCUMENT_ROOT der Weg Wurzel ist als set für den Webserver-Host auf (was bedeutet, dass es nicht in der Kommandozeile arbeiten.

Sie auch __DIR__."/".$item->prodimg, wenn die Bilder im selben Verzeichnis wie das aktuell laufenden Skript benutzen können.

Verwandte Themen