1. olga - 08 Мая, 2007 - 16:42:45 - перейти к сообщению
Здравствуйте! Помогите! Каким образом можно осуществить связь с др. сайтом, чтобы получать от него информацию в режиме on-line. Мне нужны данные (числовые: статистика, котировки и т.п.), которые размещаются в таблицах, формах (,имеющие идентификаторы). Можно ли написать какой-нибудь скрипт, который обращался бы к заданному сайту и передавал нужную информацию в базу данных.
2. evgenijj - 08 Мая, 2007 - 17:32:27 - перейти к сообщению
Если сайт, с которого планируется получать данные, предоставляет их в формате RSS, задача простая - существует большое количество скриптов, которые читают эту информацию (и либо сохраняют ее в БД, либо просто выводят в браузер).
Если нет - надо загрузить страницу с удаленного хоста и разобрать ее с помощью регулярных выражений, чтобы получить нужные данные.
Если нет - надо загрузить страницу с удаленного хоста и разобрать ее с помощью регулярных выражений, чтобы получить нужные данные.
3. olga - 08 Мая, 2007 - 18:10:27 - перейти к сообщению
Спасибо!!! А можете подсказать какие-нибудь примеры того, как разобрать страницу с помощью регулярных выражений, чтобы получить нужные данные!? Каким образом с др. сайта получать документы и др. обновленную информацию на сервер нашего сайта за определенный промежуток времени, если мы можем входить на этот сайт под своим логином и паролем, и получать нужную информацию?
4. evgenijj - 08 Мая, 2007 - 18:24:07 - перейти к сообщению
В XML-файле, который загружается с сайта ЦБ Росии, каждая валюта описывается набором тегов:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <Valute ID="R01010">
- <NumCode>036</NumCode>
- <CharCode>AUD</CharCode>
- <Nominal>1</Nominal>
- <Name>Австралийский доллар</Name>
- </Valute>
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?PHP
- // Ссылка на XML-файл
- // Загружаем файл
- // Регулярное выражение
- $pattern = "|<valute id=\\"([^\\"]+)\\">[\\s]*<NumCode>([^<]+)</NumCode>[\\s]*<CharCode>([^<]+)</CharCode>[\\s]*<Nominal>([^<]+)</Nominal>[\\s]*<Name>([^<]+)</Name>[\\s]*<Value>([^<]+)</Value>[\\s]*</Valute>|is";
- preg_match_all($pattern,$content,$out);
- echo "<table border=1>";
- echo "<tr>
- <td>ID</td>
- <td>Числовой код</td>
- <td>Символьный код</td>
- <td>Номинал</td>
- <td>Название</td>
- <td>Курс</td>
- </tr>";
- for($i = 0; $i < count($out[1]); $i++)
- {
- echo "<tr>
- <td>".$out[1][$i]."</td>
- <td>".$out[2][$i]."</td>
- <td>".$out[3][$i]."</td>
- <td>".$out[4][$i]."</td>
- <td>".$out[5][$i]."</td>
- <td>".$out[6][$i]."</td>
- </tr>";
- }
- echo "</table>";
- ?>
Результат работы:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <table border=1>
- <tr>
- <td>ID</td>
- <td>Числовой код</td>
- <td>Символьный код</td>
- <td>Номинал</td>
- <td>Название</td>
- <td>Курс</td>
- </tr>
- <tr>
- <td>R01010</td>
- <td>036</td>
- <td>AUD</td>
- <td>1</td>
- <td>Австралийский доллар</td>
- <td>21,2263</td>
- </tr>
- <tr>
- <td>R01035</td>
- <td>826</td>
- <td>GBP</td>
- <td>1</td>
- <td>Фунт стерлингов Соединенного королевства</td>
- <td>51,3904</td>
- </tr>
- <tr>
- <td>R01090</td>
- <td>974</td>
- <td>BYR</td>
- <td>1000</td>
- <td>Белорусских рублей</td>
- <td>11,9698</td>
- </tr>
- </table>