поэтому я хватаю некоторую информацию из XML-файла, например:
$url = "http://myurl.blah"; $xml = simplexml_load_file($url);
За исключением случаев, когда XML-файл пуст, и мне нужен код с ошибкой изящно, но я не могу понять, как поймать ошибку PHP. Я попробовал это:
if(isset(simplexml_load_file($url))); { $xml = simplexml_load_file($url); /*rest of code using $xml*/ } else { echo "No info avilable."; }
Но это не сработает. Думаю, вы не можете использовать ISSET таким образом. Кто-нибудь знает, как поймать ошибку?
$xml = file_get_contents("http://myurl.blah"); if (trim($xml) == '') { die('No content'); } $xml = simplexml_load_string($xml);
Или, возможно, немного более эффективный, но не обязательно рекомендованный, поскольку он замалчивает ошибки:
$xml = @simplexml_load_file($url); if (!$xml) { die('error'); }
Не используйте isset
здесь.
// Shutdown errors (I know it's bad) $xml = @simplexml_load_file($url); // Check you have fetch a response if (false !== $xml); { //rest of code using $xml } else { echo "No info avilable."; }
if (($xml = simplexml_load_file($url)) !== false) { // Everything is OK. Use $xml object. } else { // Something has gone wrong! }
Из руководства PHP, обработка ошибок ( нажмите здесь ):
var_dump(libxml_use_internal_errors(true)); // load the document $doc = new DOMDocument; if (!$doc->load('file.xml')) { foreach (libxml_get_errors() as $error) { // handle errors here } libxml_clear_errors(); }