simplexml_load_file
simplexml_load_file($filename, $class_name = SimpleXMLElement::class, $options = 0)
Jak simplexml_load_string(), ale XML wczytuje z pliku albo adresu URL (przy włączonym allow_url_fopen). Gdy pliku brak albo XML jest niepoprawny, funkcja zwraca false.
Parametry
- $filename – ścieżka albo adres URL.
- $class_name, $options – jak w
simplexml_load_string().
Przykłady
$catalog = simplexml_load_file("data/catalog.xml");
if ($catalog === false) {
exit("Nie można wczytać katalogu.");
}
echo $catalog->product[1]->name; // Bułka
// wypisanie z powrotem jako XML
echo $catalog->product[1]->name->asXML(); // <name>Bułka</name>
var_dump(@simplexml_load_file("data/missing.xml")); // bool(false)
Na co uważać
- Przy zdalnym adresie URL nie sterujesz ani limitem czasu, ani nagłówkami – kanał z innego serwera pewniej pobierzesz przez cURL i przekażesz do
simplexml_load_string(). - Duży plik (setki MB) wczytuje się w całości do pamięci; do tego służy
XMLReader, który czyta element po elemencie.
Powiązane funkcje:
simplexml_load_string()
libxml_use_internal_errors()
file_get_contents()
curl_exec()