Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вывод xml в html, с сайта центробанка 
:(
    Опции темы
kr3v3tkus
Дата 16.10.2008, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 8.3.2008

Репутация: нет
Всего: 1



Помогите пожалуйта примером, как можно красиво выводить в хтмл, например, вот этот http://www.cbr.ru/scripts/XML_daily.asp скрипт.
PM MAIL   Вверх
bars80080
Дата 16.10.2008, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: нет
Всего: 315



а каким способ ты прежде всего хочешь? в смысле каким языком?


и это точно не скрипт, а лента RSS
PM MAIL WWW   Вверх
kr3v3tkus
Дата 16.10.2008, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 8.3.2008

Репутация: нет
Всего: 1



оооу... а каким можно? я просто в глаза не видел хмл, а желательно сделать, но сейчас пытаюс разобраца с пхп и мускулом и время поджымает :( 
PM MAIL   Вверх
bars80080
Дата 16.10.2008, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: нет
Всего: 315



ну раз пхп, так пхп.

идёшь на woweb.ru ищешь раздел по RSS новостным лентам и скачиваешь оттуда готовый скрипт. затем рыскаешь по разделу пхп и смотришь как справлялись другие
PM MAIL WWW   Вверх
kr3v3tkus
Дата 16.10.2008, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 8.3.2008

Репутация: нет
Всего: 1



пасип smile щас позырю smile
PM MAIL   Вверх
kr3v3tkus
Дата 17.10.2008, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 8.3.2008

Репутация: нет
Всего: 1



вот нашёл имхо самый понятный пример парсера... и то не очень понял...
Код

<?php

function delteg($string)
{
$keyp=0;
$out="";
       for ($i=0; $i<strlen($string); $i++) {
               if ($string[$i]=="<"):
                 $keyp=1;
               endif;

               if ($keyp==0):
                 $out.=$string[$i];
               endif;

               if ($string[$i]==">"):
                 $keyp=0;
               endif;

       }
       $out = substr($out,1,strlen($out)-3);
       return $out;
}

$num = array();
$char = array();
$nominal = array();
$name = array();
$value = array();

$n = 0;

$handle = fopen ("http://www.cbr.ru/scripts/XML_daily.asp", "r");
while (!feof ($handle)) {
   $buffer = fgets($handle, 4096);
   if (strpos($buffer, "Num")>0) ($num[$n]=delteg($buffer));                    // код
   if (strpos($buffer, "Char")>0) ($char[$n]=delteg($buffer));                  // обозначение
   if (strpos($buffer, "Nominal")>0) ($nominal[$n]=delteg($buffer));            // номинал
   if (strpos($buffer, "Name")>0) ($name[$n]=delteg($buffer));                  // название
   if (strpos($buffer, "Value")>0) :                                            // значение
     $value[$n]=delteg($buffer);
     $n++;
   endif;


}
fclose ($handle);

for ($i=0; $i<$n; $i++) {
       echo $num[$i]." - ".$char[$i]." - ".$nominal[$i]." - ".$name[$i]." - ".$value[$i]."<br>";
}
?>

Объясните пожалуйста его чутку, тк я ещё не очень ощущаю пхп. Мы присваиваем хэндлу страничку которую мы открываем, потом до конца странички считываем насколько я понял - построчно да? Если находим нужное слово в строке то передаём в процедуру... А вот зачем нам
Код
$value[$n]=delteg($buffer);

И вообще как процедура реализует добавление? Как можно на стадии запроса отсеять необходимые значения, чтобы не делать вот так на стадии вывода, увеличивая время отклика?
Код
for ($i=0; $i<$n; $i++) {
  if ($char[$i]=='USD') {
       echo $num[$i]." - ".$char[$i]." - ".$nominal[$i]." - ".$name[$i]." - ".$value[$i]."<br>";
  }
}


И наверно немного оффтоп - вот тут http://export.rbc.ru/expdocs/free.forex.0.shtml есть тоже экспорт данных, там есть выборка форекса по 2ум валютам, у них есть показатели OPEN HIGH LOW CLOSE WAPRICE, насколько я понял - цена при открытии, высшая, низшая, при закрытии, средняя выборка... а по каким из них определяется падение и повышение/спрос и предложение? Или это ваще не то? >__>
зы извините што такой тупой smile 
PM MAIL   Вверх
bars80080
Дата 17.10.2008, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: нет
Всего: 315



прежде всего по поводу конструкции:

Код

               if ($string[$i]=="<"):
                 ...
               endif;

первый раз такое вижу, обычно применяется:
Код

               if ($string[$i]=="<") {
                 ....
               }

хотя если работает, то бог с ним



Цитата(kr3v3tkus @  17.10.2008,  02:13 Найти цитируемый пост)
Мы присваиваем хэндлу страничку которую мы открываем, потом до конца странички считываем насколько я понял - построчно да? Если находим нужное слово в строке то передаём в процедуру
да

Цитата(kr3v3tkus @  17.10.2008,  02:13 Найти цитируемый пост)
А вот зачем нам
$value[$n]=delteg($buffer);

как зачем? там же цена волюты

Цитата(kr3v3tkus @  17.10.2008,  02:13 Найти цитируемый пост)
И вообще как процедура реализует добавление?
никак, она тупо парсит всё

на стадии добавления бессысленно выбирать что-то, больше заморочек будет. гораздо эффективней было бы закидывать все эти данные в БД и затем настроить свой скрипт так, чтобы он проверял, как давно происходило обновление данных и если прошло скажем больше суток, то отправить запрос на cbr. а потом выбрать из БД нужные валюты простым запросом:
Код

select * from kursy where NumCode=840 or NumCode=978


условия if кстати, не очень сильно увеличивают время отклика. прямо скажем для такой задачи это вообще не критично

по поводу форекса, то там придётся ручками сделать, зато будешь знать где как и что. выбери что-нибудь и открой, увидишь в адресной строке данные, это запрос, который если научишься формировать даст тебе доступ к этим данным. а далее по тому же сценарию - 
foren($url, 'r'); и чтение, также построчно fgets, но теперь уже без всякой функции deltag читаешь значения. как я понимаю достаточно будет: explode("\t", $str); 

а как они определяют эти значения - это уже вопрос к финансистам




вопросы нормальные, но не в том разделе. по пхп лучше задавать в разделе пхп, там советчиков гораздо больше найдётся
PM MAIL WWW   Вверх
kr3v3tkus
Дата 17.10.2008, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 8.3.2008

Репутация: нет
Всего: 1



ууу большое спасибо smile я думал это всё пихать в базу, но у меня были сомнения насчёт быстродействия, а потом когда понял, что я не знаю как сделать, чтобы она обновлялась по расписанию - совершенно решил отказаться :\ И не совсем понял как он откидывает теги типа <NumCode>, <Nominal> итд. Ну тогда пойду подомогаюсь в пхп+мускул форуме :3 ещё раз большушее спасибо ^__^
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0506 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.