2014-05-06 8 views
6

Ich habe alles über diesen Fehler gelesen, ohne eine Lösung finden zu können.PHP Warnung: DOMDocument :: load(): E/A-Warnung: externe Entität konnte nicht geladen werden

Ich habe eine einfache Seite, die wie folgt aussieht:

$xmlfile = "/var/www/marees.xml"; //Fichier dans lequel récupérer les données 
$ent = new DOMDocument(); 
$ent->load($xmlfile); 

if(!(@$ent->load($xmlfile))) 
{ 
    echo "Unable to load : " . $xmlfile; 
    exit(); 
} 

ich dreimal von vier zufällig dieser Fehler:

PHP Warning: DOMDocument::load(): I/O warning : failed to load external entity "/var/www/marees.xml" in /var/www/marees/test2.php on line 7

Wenn ich Apache neu starten, wird das Skript funktioniert gut für 5 Minuten, dann beginnt der Fehler zu erscheinen.

XML-Datei wiegt 595 kB, ist vorhanden und lesbar.

Was könnte das Problem sein?

+0

Was bedeutet 'var_dump (file_exists ($ xmlfile)); 'zurück? –

+0

versuche: chmod 777 /var/www/marees.xml –

+0

Ich habe versucht, chmod 777, das gleiche Ergebnis (die Datei war bereits lesbar/schreibbar durch www-Daten) die 'var_dump (file_exists ($ xmlfile));' gib immer zurück: bool (true) (auch wenn ein Fehler in der Lade xmlfile ist oder nicht) – MichaelED17

Antwort

10

fügen Sie diesen Befehl an die Spitze des Skriptes:

libxml_disable_entity_loader(false); 

Weitere Details finden this link.

1
public mixed DOMDocument::load (string $filename [, int $options = 0 ]) 

Die function declaration trägt damit einen optionalen Parameter $options benannt, wo:

options
Bitwise OR of the libxml option constants .

Die Nutzung der LIBXML_NOWARNING Konstante für mich das Problem löst:

$ent->load($xmlfile, LIBXML_NOWARNING); 
Verwandte Themen