simplexml_import_dom - çalışmıyor

6 Cevap
if (file_exists('http://something_from_a_url.xml')) {
    $xml = simplexml_import_dom('http://something_from_a_url.xml');

    print_r($xml);
} else {
    exit('Failed to open xml file.');
}

Bu kod yürütmesine zaman ben neden anlamak için başarısız açmak için başarısız diyor ..

6 Cevap

file_exists () URL'ler üzerinde çalışmaz. Bu bile bir URL için mantıklı değil.

simplexml_import_dom () düğümleri SimpleXML DOM düğümleri dönüştürmek için tasarlanmıştır. Bu bir argüman olarak bir DOM düğümü örneğini bekliyor. Bunun yerine bir URL geçiyoruz.

Belki istediğiniz:

$simplexml = simplexml_load_string(file_get_contents($url));

Olmadığını kontrol edin:

a) için parametre simplexml_import_dom bir DOMNode olduğunu.

b) Eğer allow_url_fopen php.ini sağladı

Alternatif olarak, URL ile [simplexml_load_file] [3] ve neler olup bittiğini görmek için deneyebilirsiniz.

Extra links: php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen

php.net / manual / tr / function.simplexml-load-file.php

genellikle ini ayar bu yasaklar.

Sen uzak bir dosyanın varlığını doğrulamak için bu yöntemi deneyebilirsiniz.

if (fopen($url, "r")) {
    echo "File Exists";
} else {
    echo "Can't Connect to File";
}

Ne yapar

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

$contents = file_get_contents('http://something_from_a_url.xml');
echo '<div>Debug: len(contents)=', strlen($contents), "</div>\n";

libxml_use_internal_errors(true);
libxml_clear_errors();
$xml = new SimpleXMLElement($contents);

foreach( libxml_get_errors() as $error ) {
  echo 'error: ', $error->$message, "<br />\n";
}

yazdırabilir?

ama çözüldü - bu tam tersi, değil emin niçin çalışıyor