2014-10-29 1 views
-2

Я пишу этот скрипт php, чтобы разобрать некоторый XML-документ.php simplexml load remote xml возвращает bool (false)

$xml = simplexml_load_file('http://www1.cbs.gov.il/xml/indices_heb_all.xml'); 
var_dump($xml); 

Когда я запускаю этот скрипт его эхо «BOOL (ложь)» Что я делаю неправильно? Спасибо!

+1

'simplexml_load_file' возвращает' ложь 'когда он не может загрузить документ. Я думаю, вы не используете его должным образом; Вам не нужно «rawurlencode» URL? http://php.net/manual/en/function.simplexml-load-file.php –

+0

Я думаю, что ваша xml-кодировка не является utf8. Возможно, он пытается отобразить специальные символы, поэтому не смог загрузить его как объект. –

+0

Да, ваша кодировка документа iso-8859-8-i, которая вызывает ошибку парсера: Неподдерживаемая кодировка iso-8859-8-i' –

ответ

0

Вот что бы решить вашу проблему:

$xml = simplexml_load_string(str_replace('iso-8859-8-i', 'iso-8859-8', file_get_contents('http://www1.cbs.gov.il/xml/indices_heb_all.xml'))); 
var_dump($xml); 

Но кодирование должен быть установлен в UTF-8 текст, который будет отображаться правильно:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
</head> 
<body> 
<?php 
$xml = simplexml_load_string(str_replace('iso-8859-8-i', 'iso-8859-8', file_get_contents('http://www1.cbs.gov.il/xml/indices_heb_all.xml'))); 
var_dump($xml); 
?> 
</body> 
</html> 
Смежные вопросы