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

Форум Регулярные Выражения

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

 

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

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

тема: Кто может помоч переделать информер погоды?
 
 автор: TanTaL91   (07.10.2008 в 09:42)   письмо автору
 
 

http://dyn.gismeteo.ru/cgi-bin/winfc2.exe?act=showcode

Вот погода Тольятти, можно сделать что бы ссылки небыло??

  Ответить  
 
 автор: TanTaL91   (09.10.2008 в 08:24)   письмо автору
 
   для: TanTaL91   (07.10.2008 в 09:42)
 

Ну хотя бы толкните в нужном нарпавлении. Где можно увидеть как это переделываеться.

  Ответить  
 
 автор: Саня   (09.10.2008 в 08:38)   письмо автору
 
   для: TanTaL91   (07.10.2008 в 09:42)
 

Что-то я не вижу погоды в Тольятти по вашей ссылке.

Рекомендую получать данные из XML-файла и форматировать его как надо. Вот файл для Тольятти: http://informer.gismeteo.ru/xml/27890_1.xml

  Ответить  
 
 автор: TanTaL91   (10.10.2008 в 08:30)   письмо автору
 
   для: Саня   (09.10.2008 в 08:38)
 

А что мне с ХМЛ делать??? а то я вообще ни разу не имел дела :(

  Ответить  
 
 автор: AcidTrash   (10.10.2008 в 09:55)   письмо автору
 
   для: TanTaL91   (10.10.2008 в 08:30)
 

Распарсить, используя РГ.
Для понимания, примерно можно сделать так.

<?
$text 
file_get_contents("http://informer.gismeteo.ru/xml/27890_1.xml");

  
$pattern "|<FORECAST day=\"(\d+)\" month=\"(\d+)\" year=\"(\d+)\" ".
  
"hour=\"\d+\" tod=\"\d+\" predict=\"\d+\" weekday=\"\d+\".".
  
"*<PHENOMENA cloudiness=\"[^\"]+\" precipitation=\"[^\"]+\" rpower=\"[^\"]+\" spower=\"[^\"]+\".".
  
"*<PRESSURE max=\"([\d]+)\" min=\"([\d]+)\".*<TEMPERATURE max=\"([^\"]+)\" ".
  
"min=\"([^\"]+)\".*<WIND min=\"([^\"]+)\" max=\"([^\"]+)\" direction=\"([^\"]+)\".".
  
"*<RELWET max=\"(\d+)\" min=\"(\d+)\"|isU";

   
$text preg_match_all($pattern$text$out);

   for(
$i 0$i 4$i++)
  {
    echo 
"Дата: ".$out[1][$i]."-".$out[2][$i]."-".$out[3][$i]."</b><br>";
    echo 
"Температура: ".$out[7][$i]."...".$out[6][$i]."°C"."<br>";
    echo 
"Ветер: ".$out[8][$i]."...".$out[9][$i]." м/с"."<br>";
    echo 
"Давление: ".$direction[$out[10][$i]].", ".$out[5][$i]."...".$out[4][$i]." мм.рт.ст. "."<br>";
    echo 
"Влажность: ".$out[12][$i]."-".$out[11][$i]."%"."<br><br>";
  }

 
?>

А там уж додумаете, что вам из этого XML еще нужно.

  Ответить  
 
 автор: HaJIuBauKa   (10.10.2008 в 11:01)   письмо автору
 
   для: TanTaL91   (10.10.2008 в 08:30)
 

PHP]$data = implode('', file('http://informer.gismeteo.ru/xml/27890_1.xml'));
$p = xml_parser_create();
xml_parse_into_struct($p, $data, $vals, $index);
xml_parser_free($p);

$name = urldecode($vals['2']['attributes']['SNAME']);
$i = 0;
foreach ($vals as $k=>$v){
    $day = array();
    if (($v['tag'] === 'FORECAST')&&(isset($v['attributes']))) {
        $i++;
        $day = $v['attributes'];
        $town[$name]['days'][$i] = $day;
    }
    if (($v['tag'] === 'PHENOMENA')&&(isset($v['attributes']))) {
        $town[$name]['days'][$i]['PHENOMENA'] = $v['attributes'];
    }
    if (($v['tag'] === 'PRESSURE')&&(isset($v['attributes']))) {
        $town[$name]['days'][$i]['PRESSURE'] = $v['attributes'];
    }
    if (($v['tag'] === 'TEMPERATURE')&&(isset($v['attributes']))) {
        $town[$name]['days'][$i]['TEMPERATURE'] = $v['attributes'];
    }
    if (($v['tag'] === 'WIND')&&(isset($v['attributes']))) {
        $town[$name]['days'][$i]['WIND'] = $v['attributes'];
    }
    if (($v['tag'] === 'RELWET')&&(isset($v['attributes']))) {
        $town[$name]['days'][$i]['RELWET'] = $v['attributes'];
    }
    if (($v['tag'] === 'HEAT')&&(isset($v['attributes']))) {
        $town[$name]['days'][$i]['HEAT'] = $v['attributes'];
    }
}
echo "<pre>";
print_r($town);
echo "</pre>";

  Ответить  
 
 автор: TanTaL91   (06.11.2008 в 09:50)   письмо автору
 
   для: HaJIuBauKa   (10.10.2008 в 11:01)
 

Все классно работает... Спасибо.

А картинку можно вытащить??? Ну там облачко солнышко.

<? 
$text 
file_get_contents("http://informer.gismeteo.ru/xml/27890_1.xml"); 

  
$pattern "|<FORECAST day=\"(\d+)\" month=\"(\d+)\" year=\"(\d+)\" "
  
"hour=\"\d+\" tod=\"\d+\" predict=\"\d+\" weekday=\"\d+\"."
  
"*<PHENOMENA cloudiness=\"[^\"]+\" precipitation=\"[^\"]+\" rpower=\"[^\"]+\" spower=\"[^\"]+\"."
  
"*<PRESSURE max=\"([\d]+)\" min=\"([\d]+)\".*<TEMPERATURE max=\"([^\"]+)\" "
  
"min=\"([^\"]+)\".*<WIND min=\"([^\"]+)\" max=\"([^\"]+)\" direction=\"([^\"]+)\"."
  
"*<RELWET max=\"(\d+)\" min=\"(\d+)\"|isU"

   
$text preg_match_all($pattern$text$out); 

   for(
$i 0$i 4$i++) 
  { 
    echo 
"Дата: ".$out[1][$i]."-".$out[2][$i]."-".$out[3][$i]."</b><br>"
    echo 
"Температура: ".$out[7][$i]."...".$out[6][$i]."°C"."<br>"
    echo 
"Ветер: ".$out[8][$i]."...".$out[9][$i]." м/с"."<br>"
    echo 
"Давление: ".$direction[$out[10][$i]].", ".$out[5][$i]."...".$out[4][$i]." мм.рт.ст. "."<br>"
    echo 
"Влажность: ".$out[12][$i]."-".$out[11][$i]."%"."<br><br>"
  } 

 
?>


  Ответить  
 
 автор: AcidTrash   (06.11.2008 в 14:40)   письмо автору
 
   для: TanTaL91   (06.11.2008 в 09:50)
 

Так пойдет?
<?
$text 
file_get_contents("http://informer.gismeteo.ru/xml/27890_1.xml");

  
$pattern "|<FORECAST day=\"(\d+)\" month=\"(\d+)\" year=\"(\d+)\" ".
  
"hour=\"\d+\" tod=\"\d+\" predict=\"\d+\" weekday=\"\d+\".".
  
"*<PHENOMENA cloudiness=\"([^\"]+)\" precipitation=\"[^\"]+\" rpower=\"[^\"]+\" spower=\"[^\"]+\".".
  
"*<PRESSURE max=\"([\d]+)\" min=\"([\d]+)\".*<TEMPERATURE max=\"([^\"]+)\" ".
  
"min=\"([^\"]+)\".*<WIND min=\"([^\"]+)\" max=\"([^\"]+)\" direction=\"([^\"]+)\".".
  
"*<RELWET max=\"(\d+)\" min=\"(\d+)\"|isU";

   
$text preg_match_all($pattern$text$out);

   for(
$i 0$i 4$i++)
  {
   echo 
"<img src=http://informer.gismeteo.ru/html/images/bg/".$out[4][$i].".gif border=0><br>"
    echo 
"Дата: ".$out[1][$i]."-".$out[2][$i]."-".$out[3][$i]."</b><br>";
    echo 
"Температура: ".$out[8][$i]."...".$out[7][$i]."°C"."<br>";
    echo 
"Ветер: ".$out[9][$i]."...".$out[10][$i]." м/с"."<br>";
    echo 
"Давление: ".$direction[$out[11][$i]].", ".$out[6][$i]."...".$out[5][$i]." мм.рт.ст. "."<br>";
    echo 
"Влажность: ".$out[13][$i]."-".$out[12][$i]."%"."<br><br>";

  }

 
?>

  Ответить  
 
 автор: TanTaL91   (07.11.2008 в 10:21)   письмо автору
 
   для: AcidTrash   (06.11.2008 в 14:40)
 

Благодарю вас за помощ.

Вы мне очень помогли. Все прям как хотелось... Пасяба :)

  Ответить  
Rambler's Top100
вверх

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