Marmota Bobak
Зарегистрирован: 28.07.2004 Сообщения: 68
|
Добавлено: Ср Авг 04 2004 11:52 Заголовок сообщения: |
|
|
На PHP - можно подключиться к bc.ru, скачать текст странички в строковую переменную, найти в ней то место, где расположены новости, поместить их в другую переменную и вставить куда надо! Для этого понадобятся функции работы с файлом (считывание), регулярными выражениями (поиск шаблона в строке)
Вот пример того, как с rbc.ru скачивать котировки $:
<?php
$theurl = "http://www.rbc.ru/index.html"; // название странички, откуда нужно получить инфу
if (!($fp = fopen($theurl,"r"))) { // $fp - переменная файлового типа, туда будем скачивать текст странички, а пока что просто пытвемя открыть url
die ("Error while connecting to RBC");
}
$content = fread($fp,1000000); // в переменную $fp считываем весь текст странички (1000000 - максимальный размер ( предполагаю, что стр. не больше 1Мб ))))
fclose($fp); // закрывем соединение
$pattern1 = "USD ЦБ РФ</FONT></a></TD>[[:space:]]*<TD ALIGN=\"RIGHT\"><FONT SIZE=\"-2\">[0-9]*/[0-9]*</FONT></TD>[[:space:]]*<TD ALIGN=\"RIGHT\"><FONT SIZE=\"-2\"> [[:print:]]*</FONT></TD>"; // это шаблон (здесь как раз используются регулярные выражения), мы ищем то место, где располагаются котировки (у тебя - новости)
eregi($pattern1,$content,$res1); // eregi - функция для работы с регулярными выражениями, которая ищет в $content то, что подходит под шаблон (маску) $pattern1 и, если находит эту подстроку, помещает ее в массив $res1 (массив потому, что совпадений может быть не одно, и они последовательно туда запишутся)
В этом примере я знаю, что мне нужно именно первое совпадение (здесь оно, на самом деле, и единственное) - поэтому далее использую первый элемент массива $res1[0]
$pattern2 = " [[:print:]]*"; // проделываю аналогичные действия, но теперь уже выискиваю то, что мне нужно в меньшей подстроке
eregi($pattern2,$res1[0],$res2);
$pattern3 = "[0-9]+\.*[0-9]*"; // .... и еще раз
eregi($pattern3,$res2[0],$res3);
$result = $res3[0]*1.02; // результат готов! (я умножаю его на 1,02, т.к. у нас внутренний курс отличается на 2% =)
?>
Если хочешь, напиши мне, какое именно место с bc.ru ты хочешь помещать на свой сайт, а я тебе постараюсь помочь..... |
|