2016-11-01 4 views
0

В следующем коде функция die() должна выполняться, поскольку URL-адрес, который я передаю в simplexml_load_file(), является плохим. simplexml_load_file() возвращает FALSE, который должен вызвать умереть():die Function Not Triggering

$url = 'http://www.badurl.com'; 

$xml = simplexml_load_file($url) or die('Error: Can\'t create the object.'); 

Как прийти вместо этого я получаю следующее сообщение об ошибке?

Warning: simplexml_load_file(http://www.badurl.com): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in /var/www/badurl.com on line 16 

Warning: simplexml_load_file(): I/O warning : failed to load external entity "http://www.badurl.com" in /var/www/badurl.com on line 16 
Error: Can't create the object. 
+0

Вы можете использовать '@', чтобы отключить предупреждение. Или даже лучше, вы можете просто установить 'display_errors'' off'. Изначально запускается 'die' IS. – Federkun

+0

Можете ли вы определить «плохой»? Просто потому, что он может не загружаться (если то, что вы использовали, является фактическим доменом), не означает, что оно «плохо». Результат Whois: * "\ * badurl.com уже зарегистрирован \ *" *. Который не загружал для меня, или занимает много времени для загрузки по неизвестной причине. –

+0

Но это действительно вызвало, не так ли? Я вижу «Ошибка: не могу создать объект» в вашем выводе. –

ответ

1

Вы можете использовать оператор @, если вы хотите отключить предупреждение или отключить display_errors.

$xml = @simplexml_load_file($url) or die('Error: Can\'t create the object.'); 

simplexml_load_file возвращается false с или без предупреждения, и die выполняется в любом случае.