Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обьясните, где ошибка (разбор XML-файла)?
 
 автор: Zilog   (18.01.2007 в 00:22)   письмо автору
 
 

Обьясните, где ошибка?


$xml = file_get_contents("http://informer.gismeteo.ru/rss/37789.xml"); 
$xml = iconv("WINDOWS-1251", "UTF-8", $xml); 

$dom = DOMDocument::loadXML($xml); 
$dom->validateOnParse = true; 
$list = $dom->getElementsByTagName("title"); 
$name = $dom->getElementsByTagName("description"); 
$info = $dom->getElementsByTagName("enclosure url"); 


$array = array(); 
for ( $i = 0; $i < $list->length; $i++ ) { 
//  $id = $list->item($i)->getAttribute('id'); 
  $array[$id]['city'] = $name->item($i)->nodeValue; 
  $array[$id]['weather'] = $list->item($i)->nodeValue; 
  $array[$id]['img_url'] = $info->item($i)->nodeValue; 

print_r($array); 

   
 
 автор: Sergey89   (18.01.2007 в 00:34)   письмо автору
 
   для: Zilog   (18.01.2007 в 00:22)
 

Дак, а какая ошибка?

   
 
 автор: Zilog   (18.01.2007 в 00:37)   письмо автору
 
   для: Sergey89   (18.01.2007 в 00:34)
 

http://informer.gismeteo.ru/rss/37789.xml- тут погода

хочу вывести . неполучается...

   
 
 автор: Саня   (18.01.2007 в 01:09)   письмо автору
 
   для: Zilog   (18.01.2007 в 00:22)
 

<?
$xml 
file_get_contents("http://informer.gismeteo.ru/rss/37789.xml");

$dom DOMDocument::loadXML($xml);
$dom->validateOnParse true;
$list    $dom->getElementsByTagName("item");
$city    $dom->getElementsByTagName("title");
$img_url $dom->getElementsByTagName("enclosure");
$weather $dom->getElementsByTagName("description");


$array = array();
for ( 
$i 0$i $list->length$i++ ) {
  
$array[$i]['city']    = $city->item($i 2)->nodeValue;
  
$array[$i]['img_url'] = $img_url->item($i)->getAttribute('url');
  
$array[$i]['weather'] = $weather->item($i 1)->nodeValue;
}
print_r($array);

   
 
 автор: Zilog   (18.01.2007 в 01:24)   письмо автору
 
   для: Саня   (18.01.2007 в 01:09)
 

Вот вторую ночь сижу изучаю, но что то не очень получается.....
в вашем примере что то с кодировкой, каракули какие-то выводит... почему?

   
 
 автор: Саня   (18.01.2007 в 01:34)   письмо автору
 
   для: Zilog   (18.01.2007 в 01:24)
 

Правильно настройте кодировку в браузере. Или добавьте строку
header("Content-Type: text/html; charset=utf-8");
в начало скрипта.

   
 
 автор: Zilog   (18.01.2007 в 01:36)   письмо автору
 
   для: Саня   (18.01.2007 в 01:34)
 

делал так $xml = iconv("windows-1251", "UTF-8", $xml);
и по вашему - непомогает....

   
 
 автор: LuxeMate   (18.01.2007 в 01:41)   письмо автору
 
   для: Zilog   (18.01.2007 в 01:36)
 

По этому я всегда стараюсь делать так -

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?php
$xml 
file_get_contents("http://informer.gismeteo.ru/rss/37789.xml"); 

$dom DOMDocument::loadXML($xml); 
$dom->validateOnParse true
$list    $dom->getElementsByTagName("item"); 
$city    $dom->getElementsByTagName("title"); 
$img_url $dom->getElementsByTagName("enclosure"); 
$weather $dom->getElementsByTagName("description"); 


$array = array(); 
for ( 
$i 0$i $list->length$i++ ) { 
  
$array[$i]['city']    = $city->item($i 2)->nodeValue
  
$array[$i]['img_url'] = $img_url->item($i)->getAttribute('url'); 
  
$array[$i]['weather'] = $weather->item($i 1)->nodeValue

print_r($array);
?>

   
 
 автор: Zilog   (18.01.2007 в 01:57)   письмо автору
 
   для: LuxeMate   (18.01.2007 в 01:41)
 

А если у меня весь сайт выполнен в 1251? Это как отразится?

   
 
 автор: Sergey89   (18.01.2007 в 08:37)   письмо автору
 
   для: Zilog   (18.01.2007 в 01:57)
 

Каракулями будет :-)

   
 
 автор: Саня   (18.01.2007 в 12:21)   письмо автору
 
   для: Zilog   (18.01.2007 в 01:57)
 

Переводите сайт в UTF-8... или результат работы этого скрипта в windows-1251.

   
 
 автор: Sergey89   (18.01.2007 в 12:43)   письмо автору
 
   для: LuxeMate   (18.01.2007 в 01:41)
 

А так:

<?php
header
('Content-type: text/html; charset=windows1251');
//...
$xml iconv('windows-1251''urf-8'$xml);
//...
ob_start();
print_r($array)
$text ob_get_contents();
ob_end_clean();

print 
iconv('utf-8''windows-1251'$text);
?>

   
 
 автор: Саня   (18.01.2007 в 17:51)   письмо автору
 
   для: Sergey89   (18.01.2007 в 12:43)
 

Это что ещё за извращение?

   
 
 автор: Sergey89   (18.01.2007 в 18:01)   письмо автору
 
   для: Саня   (18.01.2007 в 17:51)
 

Это_перевод_ХМЛ_документа_из_ЮТФ-8_в_виндовс-1251

   
 
 автор: Саня   (18.01.2007 в 18:03)   письмо автору
 
   для: Sergey89   (18.01.2007 в 18:01)
 

Аааа! Как же я сразу не догадался? Осталось узнать что такое ЮТФ-8 и виндовс-1251.

   
 
 автор: Sergey89   (18.01.2007 в 18:09)   письмо автору
 
   для: Саня   (18.01.2007 в 18:03)
 

Попробуй узнать. Если что спроси у кого.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования