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

Форум PHP

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

 

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

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

тема: http://www.meteoinfo.ru/ - Гидрометцентр России ..?
 
 автор: AlevDV   (01.05.2007 в 01:38)   письмо автору
 
 

привет всем..! пытаюсь настроить парсер но нечего не получается:

parser.php
---

$xml_file="http://meteoinfo.ru/xml3/export/pay/1/1.xml";
// $xml_file - Путь к  xml файлу изменил на свой (регионатьный)

$xml=domxml_open_file('/home/server.ru/www/forecast.xml'); 
// $xml - здесь необходимо указать абсолютный путь к файлу



<?php

//Путь к Вашему xml файлу
$xml_file="http://meteoinfo.ru/xml3/export/pay/1/1.xml";


//Подключение к БД, укажите адрес сервера, имя пользователя, пароль и название БД.

$host='site.ru';
$user='user';
$pasd='pass';
$db='forecast';

mysql_pconnect($host,$user,$pasd) or die ('Нет подключения к базе!!!');
mysql_select_db($db) or die ('Ошибка при подключении!!!');

//Копирование  xml-файла к себе на хостинг

function http_get($url)
{
 
$buffer "";

   
$url_stuff parse_url($url);
   
$port = isset($url_stuff['port']) ? $url_stuff['port'] : 80;

   
$fp fsockopen($url_stuff['host'], $port);

   
$query  'GET ' $url_stuff['path'] . " HTTP/1.0\n";
   
$query .= 'Host: ' $url_stuff['host'];
   
$query .= "\n\n";

   
fwrite($fp$query);

   while (
$tmp fread($fp1024))
   {
       
$buffer .= $tmp;
   }
   
preg_match('/Content-Length: ([0-9]+)/'$buffer$parts);
   return 
substr($buffer, - $parts[1]);
}

$fp fopen ("forecast.xml""w+");
fwrite ($fphttp_get($xml_file));
fclose ($fp);

//Парсинг xml-файла


  
$xml=domxml_open_file('/home/server.ru/www/forecast.xml');   
  
//Пожалуйста указывайте абсолютный путь к файлу!

  
$root $xml->document_element();

  
$root_child $root->child_nodes();

for (
$i 0$i sizeof($root_child); $i++)    {
        if(
$root_child[$i]->node_name()=='town'){

        
$name=iconv("utf-8","windows-1251",$root_child[$i]->get_attribute('name'));
        
$ind=$root_child[$i]->get_attribute('id');
        
$country=iconv("utf-8","windows-1251",$root_child[$i]->get_attribute('country'));
        
$region=iconv("utf-8","windows-1251",$root_child[$i]->get_attribute('region'));

        
$town_child $root_child[$i]->child_nodes();

        for (
$j 0$j sizeof($town_child); $j++)    {
         if(
$town_child[$j]->node_name()=='date'){
             
$day=$town_child[$j]->get_attribute('day');

             
$date_child $town_child[$j]->child_nodes();

             for (
$k 0$k sizeof($date_child); $k++)    {

             switch (
$date_child[$k]->node_name()) {
            case 
'tday':
            
$tday=$date_child[$k]->get_content();
             break;
            case 
'tnight':
            
$tnight=$date_child[$k]->get_content();
              break;
            case 
'prec':
            
$prec=$date_child[$k]->get_content();
              break;
            case 
'prec_prob':
            
$prec_prob=$date_child[$k]->get_content();
              break;
            case 
'wind_dir':
            
$wind_dir=$date_child[$k]->get_content();
              break;
            case 
'windspeed':
            
$windspeed=$date_child[$k]->get_content();
              break;
            case 
'weather_conditions':
            
$weather_conditions=iconv("utf-8","windows-1251",$date_child[$k]->get_content());
              break;
            case 
'pday':
            
$pday=$date_child[$k]->get_content();
              break;
            case 
'pnight':
            
$pnight=$date_child[$k]->get_content();
              break;
          }

             }
             
//Запись иформации в БД
          
$res=mysql_query("insert into
 forecast (Ind,Station,Country,Region,dat,
tday,tnight,prec,prec_prob,wind_dir,
wind_speed,                    
weather_conditions,pday,pnight) values  ("
.
$ind.",\"".$name."\",\"".$country."\",\"".
$region."\",\"".$day."\",".$tday.",".
$tnight.",".$prec.",".$prec_prob.",".
$wind_dir.",".$windspeed.",\"".
$weather_conditions."\",".$pday.",".
$pnight.")");

              }

        }

        }


}

?>


forecast.sql
---


USE `forecast`;
CREATE TABLE `forecast` (
  `id` int(11) NOT NULL auto_increment,
  `Ind` mediumint(9) default NULL,
  `Station` varchar(255) default NULL,
  `Country` varchar(255) default NULL,
  `Region` varchar(255) default NULL,
  `dat` date default NULL,
  `tday` smallint(6) default NULL,
  `tnight` smallint(6) default NULL,
  `prec` smallint(6) default NULL,
  `prec_prob` smallint(6) default NULL,
  `wind_dir` smallint(6) default NULL,
  `wind_speed` smallint(6) default NULL,
  `weather_conditions` varchar(255) default NULL,
  `pday` smallint(6) default NULL,
  `pnight` smallint(6) default NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;


Инструкция по установке - http://www.meteoinfo.ru/xml-tech
Парсер http://www.meteoinfo.ru/files/parser.zip

Вроде все делал по инструкции но при выполнении parser.php скаченный файл forecast.xml не разберается по причине отсутствия в катологе - но приэтом он есть!
Что делать как быть? Уже на десять раз переписывал абсолютный путь но все по прежнему:

Fatal error: Call to undefined function domxml_open_file() in C:\WEBServer\wwwroot\test\1\parser.php on line 49
т.е. $xml=domxml_open_file('/home/server.ru/www/forecast.xml');

Как быть?

   
 
 автор: AlevDV   (01.05.2007 в 08:43)   письмо автору
 
   для: AlevDV   (01.05.2007 в 01:38)
 

Неужели не кто не сталкивался с http://www.meteoinfo.ru/ - Гидрометцентр России ..?
Помогите хоть идейку какую подкинте..! Плиз..!

   
 
 автор: Саня   (01.05.2007 в 10:19)   письмо автору
 
   для: AlevDV   (01.05.2007 в 08:43)
 

Проблема в том, что в PHP5 нету расширения DOMXML.

   
 
 автор: ddhvvn   (01.05.2007 в 10:24)   письмо автору
 
   для: Саня   (01.05.2007 в 10:19)
 

>Проблема в том, что в PHP5 нету расширения DOMXML.

Собстсвенно не знаю зачем автор так извращается... ;))

   
 
 автор: golovdinov   (01.05.2007 в 11:30)   письмо автору
 
   для: AlevDV   (01.05.2007 в 01:38)
 

В архиве мое решение: файл с выводом погоды и маленькая, но очень полезная библиотека для работы с любыми файлами, где есть теги. Все комментаровано, все работает.

   
 
 автор: Trianon   (01.05.2007 в 11:44)   письмо автору
 
   для: golovdinov   (01.05.2007 в 11:30)
 

И работает эта библиотека, конечно же, через regexp.
Тьфу.

   
 
 автор: golovdinov   (01.05.2007 в 13:39)   письмо автору
 
   для: Trianon   (01.05.2007 в 11:44)
 

Зато ей не нужет правильный XML файл, она жрет все подрят, хоть HTML, хоть RSS. Мне кажется, что такая ерунда лучше чем встроенные функции. Ну это лично мое мнение :)

   
Rambler's Top100
вверх

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