Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: RSS новости.
 
 автор: Footer   (16.02.2007 в 17:55)   письмо автору
 
 

Опять же хочу разобраться с RSS новостями. Есть вот такой скрипт:

<?php  
$text 
file_get_contents("http://news.yandex.ru/theaters.rss");  


if(
$text

 
$Months=array('Jan'=>'01''Feb'=>'02''Mar'=>'03''Apr'=>'04''May'=>'05''Jun'=>'06''Jul'=>'07''Aug'=>'08''Sep'=>'09','Oct'=>'10','Nov'=>'11','Dec'=>'12');  
$Days=array('Mon'=>'Пн''Tue'=>'Вт''Wed'=>'Ср''Thu'=>'Чт''Fri'=>'Пт''Sat'=>'Сб''Sun'=>'Вс'); 



$pattern "/<item>(.*?)<\/item>/ims";/* регулярное выражения для выбора данных между двумя тегами <item></item>*/  
preg_match_all($pattern$text$array);  
  


$patt1 "/<title>(.*?)<\/title>/ims";/*Заголовок новости*/  
$patt2 "/<description>(.*?)<\/description>/ims";/*тело новости*/  
$patt3 "/<pubDate>(.*?)<\/pubDate>/ims";/*дата публикации*/  
$patt4 "/<link>(.*?)<\/link>/ims";/*ссылка на сайт новостей*/  
$i=0;  
foreach (
$array[1] as $v){  
preg_match_all($patt1$v$temp);  
$news[$i]['title'] = $temp[1][0];  
preg_match_all($patt2$v$temp);  
$news[$i]['description'] = html_entity_decode($temp[1][0]);  
/*php автоматически переконвертил html символы поэтому вернем все обратно :)*/  
preg_match_all($patt3$v$temp);  
$news[$i]['pubDate'] = $temp[1][0];  
preg_match_all($patt4$v$temp);  
$news[$i]['link'] = urldecode($temp[1][0]);  
$i++;  

}  

foreach (
$news as $v){  

foreach(
$Days as $EngName => $RusName)  
               
$v['pubDate']=str_replace($EngName$RusName$v['pubDate']);  
foreach(
$Months as $EngName => $RusName)  
$v['pubDate']=str_replace($EngName$RusName$v['pubDate']); 
$v['link']=str_replace("http://news.yandex.ru/theaters.rss"$v['link']); 
 
$v['pubDate']=str_replace(GMT""$v['pubDate']); 
$v['pubDate']=rtrim($v['pubDate']); 
echo 
"<div class=news_title><br><a  href=".$v['link'].">".$v['title']."</a></div><a class=answers>".$v['description']."<font color='#666666'> [".$v['pubDate']."]";  
}  

?> 

Я этот скрипт сохраняю как файл с расширением .php и загружаю на сервер. При обращении к этому скрипту выводится следующее сообщение: 504 Gateway Time-out. Что делать? Помогите? В RSS технологии я пока не очень разбираюсь.

   
 
 автор: Alph[p]a   (16.02.2007 в 18:06)   письмо автору
 
   для: Footer   (16.02.2007 в 17:55)
 

Попробуй добавить в начале

set_time_limit(0);

   
 
 автор: Footer   (16.02.2007 в 18:45)   письмо автору
 
   для: Alph[p]a   (16.02.2007 в 18:06)
 

Добавил, но не помогло. Не знаю что и делать. В чём может быть причина неработы скрипта? Помогите, знающие люди! Хелп!!!

   
 
 автор: ddhvvn   (16.02.2007 в 18:55)   письмо автору
 
   для: Footer   (16.02.2007 в 18:45)
 

>Я этот скрипт сохраняю как файл с расширением .php и загружаю на сервер
в смысле на хост? или на локальный сервер?

   
 
 автор: Footer   (16.02.2007 в 19:03)   письмо автору
 
   для: ddhvvn   (16.02.2007 в 18:55)
 

да, на хост.

   
 
 автор: ddhvvn   (16.02.2007 в 19:26)   письмо автору
 
   для: Footer   (16.02.2007 в 19:03)
 

Возможно, хостер запретил использовать set_time_limit() ...
Проконсультируйтесь с ним (хостером) по этому поводу.

   
 
 автор: Footer   (17.02.2007 в 09:00)   письмо автору
 
   для: ddhvvn   (16.02.2007 в 19:26)
 

Да, это проблема хостра. А не подскажите бесплатные хостинги, на которых работает этот скрипт?

   
 
 автор: Footer   (17.02.2007 в 15:13)   письмо автору
 
   для: Footer   (17.02.2007 в 09:00)
 

На хостинге мне сказали, что у них нельзя использовать сокеты. А что это такое, я не знаю. Просветите!

   
 
 автор: cheops   (17.02.2007 в 15:20)   письмо автору
 
   для: Footer   (17.02.2007 в 15:13)
 

На беслпатных хостингах, как правило, запрещают обращение к удалённым хостам (чтобы не ломали), поэтому с беслатного хостинга нельзя взять файл с чужого хоста - только со своего.

   
 
 автор: Footer   (17.02.2007 в 16:43)   письмо автору
 
   для: cheops   (17.02.2007 в 15:20)
 

То есть получается, что RSS-новости на бесплатных хостингах вообще применять невозможно?

   
 
 автор: ddhvvn   (17.02.2007 в 17:52)   письмо автору
 
   для: Footer   (17.02.2007 в 16:43)
 

Может Вам еще asp.net на бесплатном хостинге нужно? ;-))

   
 
 автор: bronenos   (17.02.2007 в 18:25)   письмо автору
 
   для: Footer   (17.02.2007 в 16:43)
 

$rss = implode ('', file(url));
тоже не хочет?

   
 
 автор: Footer   (18.02.2007 в 09:29)   письмо автору
 
   для: bronenos   (17.02.2007 в 18:25)
 

Да, тоже не хочет.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования