Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Получение информации с др. сайта

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
olga
Отправлено: 08 Мая, 2007 - 16:42:45
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2007  
Откуда: РФ, Краснодар


Помог: 0 раз(а)




Здравствуйте! Помогите! Каким образом можно осуществить связь с др. сайтом, чтобы получать от него информацию в режиме on-line. Мне нужны данные (числовые: статистика, котировки и т.п.), которые размещаются в таблицах, формах (,имеющие идентификаторы). Можно ли написать какой-нибудь скрипт, который обращался бы к заданному сайту и передавал нужную информацию в базу данных.
 
 Top
evgenijj
Отправлено: 08 Мая, 2007 - 17:32:27
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Если сайт, с которого планируется получать данные, предоставляет их в формате RSS, задача простая - существует большое количество скриптов, которые читают эту информацию (и либо сохраняют ее в БД, либо просто выводят в браузер).
Если нет - надо загрузить страницу с удаленного хоста и разобрать ее с помощью регулярных выражений, чтобы получить нужные данные.
 
 Top
olga
Отправлено: 08 Мая, 2007 - 18:10:27
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2007  
Откуда: РФ, Краснодар


Помог: 0 раз(а)




Спасибо!!! А можете подсказать какие-нибудь примеры того, как разобрать страницу с помощью регулярных выражений, чтобы получить нужные данные!? Каким образом с др. сайта получать документы и др. обновленную информацию на сервер нашего сайта за определенный промежуток времени, если мы можем входить на этот сайт под своим логином и паролем, и получать нужную информацию? Закатив глазки
 
 Top
evgenijj
Отправлено: 08 Мая, 2007 - 18:24:07
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




В XML-файле, который загружается с сайта ЦБ Росии, каждая валюта описывается набором тегов:
PHP:
скопировать код в буфер обмена
  1.  
  2. <Valute ID="R01010">
  3.   <NumCode>036</NumCode>
  4.   <CharCode>AUD</CharCode>
  5.   <Nominal>1</Nominal>
  6.   <Name>Австралийский доллар</Name>
  7. </Valute>
  8.  

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.   // Ссылка на XML-файл
  4.   $url = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=".date("d/m/Y");
  5.   // Загружаем файл
  6.   $content = file_get_contents($url);
  7.   // Регулярное выражение
  8.   $pattern = "|<valute id=\\"([^\\"]+)\\">[\\s]*<NumCode>([^<]+)</NumCode>[\\s]*<CharCode>([^<]+)</CharCode>[\\s]*<Nominal>([^<]+)</Nominal>[\\s]*<Name>([^<]+)</Name>[\\s]*<Value>([^<]+)</Value>[\\s]*</Valute>|is";
  9.  preg_match_all($pattern,$content,$out);
  10.  echo "<table border=1>";
  11.  echo "<tr>
  12.           <td>ID</td>
  13.           <td>Числовой код</td>
  14.           <td>Символьный код</td>
  15.           <td>Номинал</td>
  16.           <td>Название</td>
  17.           <td>Курс</td>
  18.         </tr>";
  19.  for($i = 0; $i < count($out[1]); $i++)
  20.  {
  21.    echo "<tr>
  22.             <td>".$out[1][$i]."</td>
  23.             <td>".$out[2][$i]."</td>
  24.             <td>".$out[3][$i]."</td>
  25.             <td>".$out[4][$i]."</td>
  26.             <td>".$out[5][$i]."</td>
  27.             <td>".$out[6][$i]."</td>
  28.           </tr>";
  29.  }
  30.  echo "</table>";
  31. ?>
  32.  

Результат работы:
PHP:
скопировать код в буфер обмена
  1.  
  2. <table border=1>
  3. <tr>
  4.           <td>ID</td>
  5.           <td>Числовой код</td>
  6.           <td>Символьный код</td>
  7.           <td>Номинал</td>
  8.           <td>Название</td>
  9.           <td>Курс</td>
  10. </tr>
  11. <tr>
  12.             <td>R01010</td>
  13.             <td>036</td>
  14.             <td>AUD</td>
  15.             <td>1</td>
  16.             <td>Австралийский доллар</td>
  17.             <td>21,2263</td>
  18. </tr>
  19. <tr>
  20.             <td>R01035</td>
  21.             <td>826</td>
  22.             <td>GBP</td>
  23.             <td>1</td>
  24.             <td>Фунт стерлингов Соединенного королевства</td>
  25.             <td>51,3904</td>
  26. </tr>
  27. <tr>
  28.             <td>R01090</td>
  29.             <td>974</td>
  30.             <td>BYR</td>
  31.             <td>1000</td>
  32.             <td>Белорусских рублей</td>
  33.             <td>11,9698</td>
  34. </tr>
  35. </table>
  36.  
 
 Top
olga
Отправлено: 10 Мая, 2007 - 09:29:50
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2007  
Откуда: РФ, Краснодар


Помог: 0 раз(а)




Огромное спасибо!!!РадостьА можете подсказать: каким образом можно получить XML-файл, загружаемый с др. сайта, или посмотреть его или т.п.?
 
 Top
evgenijj
Отправлено: 10 Мая, 2007 - 12:13:23
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Такой сервис - информация в XML-формате (или RSS - это тот же XML, который предназначен для конкретной цели - импорт/экспорт анонсов новостей) предоставляют достаточно небольшое количество сайтов.
Если тот сайт, с которого планируется получать информацию, не предоставляет такой возможности - надо просто получить эту страницу функцией file_get_contents() и "выудить" нужную информацию. Например, мы знаем, что на главной странице Yandex публикуется информация о погоде.
PHP:
скопировать код в буфер обмена
  1.  
  2.             < !-- Погода -- >
  3.             <div class="info-block">
  4.             <a href="http://weather.yandex.ru/" class="title">Погода</a>
  5.             <noindex><table class="weather" border="0" cellpadding="0" cellspacing="0">
  6.             <tbody><tr valign="bottom">
  7.         <td class="now"><nobr><img src="http://img.yandex.net/i/10.png" height="24" border="0" title="Переменная облачность, небольшой дождь" style="vertical-align: text-bottom;">&nbsp;+15</nobr></td>
  8.         <td>&nbsp;ночью <nobr>+5</nobr></td>
  9.         <td>завтра <nobr>+14</nobr></td>
  10.             </tr></tbody></table>
  11.         </noindex>
  12. </div>
  13. < !-- / Погода -- >
  14.  

Эта страница остается неизменной уже достаточно долго - и мы можем, зная как выглядит HTML конкретного фрагмента, "выудить" эту информацию, разобрав страницу с помощью регулярных выражений. Но если Yandex сменит дизайн главной страницы - наш скрипт престанет работать.
 
 Top
olga
Отправлено: 14 Мая, 2007 - 10:33:48
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2007  
Откуда: РФ, Краснодар


Помог: 0 раз(а)




Evgenijj, огромное Вам спасибо!!!! Вы мне очень-очень помогли!!!!Ха-ха
 
 Top
olga
Отправлено: 17 Мая, 2007 - 15:51:00
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2007  
Откуда: РФ, Краснодар


Помог: 0 раз(а)




Все работало как нужно!!! И через несколько дней не работает!!! А?!Показывает ошибку: Warning: file_get_contents(http://www.bdopen.ru/): failed to open stream: HTTP request failed! HTTP/1.1 500 in ....php on line 6 Что случилось?!
 
 Top
Стас
Отправлено: 17 Мая, 2007 - 15:56:06
Post Id


Частый гость


Покинул форум
Сообщений всего: 147
Дата рег-ции: Май 2007  


Помог: 0 раз(а)

[+]


olga пишет:
Все работало как нужно!!! И через несколько дней не работает!!! А?!Показывает ошибку: Warning: file_get_contents(http://www.bdopen.ru/): failed to open stream: HTTP request failed! HTTP/1.1 500 in ....php on line 6 Что случилось?!

500 - внутренняя ошибка сервера, если я не ошибаюсь... это у них проблемы, у www[dot]bdopen[dot]ru ... Сайт открывается вообще?
 
 Top
olga
Отправлено: 17 Мая, 2007 - 16:10:18
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2007  
Откуда: РФ, Краснодар


Помог: 0 раз(а)




Сайт открывается! И нужная мне информация тоже отображается! Могли мне каким-нибудь образом запретить "обращение" к этому сайту?!Огорчение
 
 Top
evgenijj
Отправлено: 17 Мая, 2007 - 16:13:18
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Попробовал зайти на сайт www.bdopen.ru:
PHP:
скопировать код в буфер обмена
  1.  
  2. HTTP Error 500-100 (Saitistika Error)
  3.  
  4. Url: http://www.bdopen.ru/Default.asp
  5. Referer: http://www.php.su/forum/topic.php?forum=1&topic=251&v=
  6.  
  7. Описание: Error -2147217873
  8. Violation of UNIQUE KEY constraint 'IDX_Clients_Unique'. Cannot insert duplicate key in object 'Clients'.
  9. Microsoft OLE DB Provider for SQL Server
  10. SQL/Execute: Can't execute and get retval: SQL=[Sait_Events_NewGuestClient('Guest')]
  11.  
 
 Top
Стас
Отправлено: 17 Мая, 2007 - 16:20:30
Post Id


Частый гость


Покинул форум
Сообщений всего: 147
Дата рег-ции: Май 2007  


Помог: 0 раз(а)

[+]


Я обновил и раработало Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB