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
Форумы портала PHP.SU :: Версия для печати :: Информер погоды
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Информер погоды

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

1. shurikus - 13 Июня, 2008 - 08:28:19 - перейти к сообщению
Уважаемые WEB-программисты, если не трудно помогите решить проблему.
Такая задача: Есть локальный сайт на пердприятии на серваке Linux. Нужен информер погоды. На Gismeteo (и не только), как вы знаете, существует возможность получить код информера. Проблема в том, что при просмотре страницы сайта, чтобы код работал на локальной машине, пользователю необходим выход в интернет. Вобщем нужен скрипт, который забирал бы на сервер данные о погоде с каким-либо периодом и хранил у себя в виде php-страницы, на которую можно сослаться при нажатии ссылки "Погода".

Вот пример кода с Гисметео:

<script> var gminform_fc="0b0dbc", gminform_bc="FFFFFF"; </script>
<script language="JavaScript" src="http://informer.gismeteo.Ru/text/27612-1.JS"></script>

Спасибо заранее.
2. Джур - 13 Июня, 2008 - 14:11:40 - перейти к сообщению
несовсем понял что надо... Поэтому сделал кеширование только информера:

PHP:
скопировать код в буфер обмена
  1. <?
  2. if(@filemtime('cache.js')<(time()-3600)){
  3.   file_put_contents('cache.js',file_get_contents('http://informer.gismeteo.ru/text/27612-1.JS'));
  4. }
  5. ?>
  6. <script> var gminform_fc="0b0dbc", gminform_bc="FFFFFF"; </script>
  7. <script language="JavaScript" src="cache.js"></script>
  8.  

время жизни кеша 3600с, тобыш 1час

если же вам надо что-то более сложное, то проще юзать cron и wget...
3. shurikus - 13 Июня, 2008 - 14:40:32 - перейти к сообщению
Спасибо за внимание к проблеме. Возможно я немного мутновато всё изложил. Проблема в отсутствие у юзеров, просматривающих локальный сайт (предназначеный для внутреннего использования), ИНТЕРНЕТА. Так как код информера ссылается на прямую в инет, ничего у юзеров не отображается (погода). На серваке выход в инет имеется Необходим скрипт скачивающий данные о погоде в какую нибудь страничку, на которую можно сослаться ЛОКАЛЬНО без инета, обновляемую часа через 3.
4. Джур - 13 Июня, 2008 - 18:34:26 - перейти к сообщению
shurikus пишет:
На серваке выход в инет имеется Необходим скрипт скачивающий данные о погоде в какую нибудь страничку, на которую можно сослаться ЛОКАЛЬНО без инета, обновляемую часа через 3.


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

Когда я говорил что не понимаю что имено вы хотели, я имел в виду, нужно ли кешировать только информер или еще нужно кешировать страничку на которую этот информер ссылается...

Резюмирую: задачи вы в самом деле излагаете мутно. Поэтому если есть потребность, милости прошу, стучать ко мне в асю, чтобы не плодить на форуме оффтопики. Подмигивание
5. Джур - 22 Июня, 2008 - 15:02:42 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?
  2. if(@filemtime('meteo.txt')+3600<time()) file_put_contents('meteo.txt',file_get_contents('http://www.gismeteo.ru/towns/27612.htm'));
  3.  
  4. $x=file_get_contents('meteo.txt');
  5. preg_match_all("~var frc='(.+?)';~i",$x,$a);
  6. $x=$a[1][0];
  7. $x=preg_replace('~src="http://img.gismeteo.ru/images/(.+?)"~i','src="meteo/\\1"',$x);
  8.  
  9. echo $x;
6. Otto - 10 Июля, 2008 - 23:39:19 - перейти к сообщению
сталкивался с поставленой задачей.
На сколько я знаю , gismeteo каждые четыре часа выкладывает xml файл с погодой .
На каждый город своя xml-ка со своим url (статичным).
Часто ссылатя на неё не желательно.
Я зделал елементарно - c помошью фушкции file_get_contents()
скачиваю данные с xml.
заношу их в бд и заношу время этой операции через функцию date().
При следующем выполнение скрипта страницы с погодой достаю из бд время последнего выполнения скачивания xml контента и проверяю , если оно больше четырёх часов - функция вновь скачивает xml с погодкой и обновляет старый который лежал в базе , а если не прошло 4 часа то просто вывожу данные из базы.
Главное написать скрипт который будет считать сколько времени прошло с последней загрузки xml файла...

 

Powered by ExBB FM 1.0 RC1