[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: RSS лента
nukerster
Здравствуйте! У меня такой вопрос. У меня на сайте была реализована возможность получения новостей с одной RSS-ленты. Вот скрипт:

<?PHP

/**********************************************************
* Parse XML data into an array structure *
* Usage: array parse_rss ( string data ) *
**********************************************************/
function parse_rss($reg_exp, $xml_data) {
preg_match_all($reg_exp, $xml_data, $temp);
return array(
'count'=>count($temp[0]),
'title'=>$temp[1],
'link'=>$temp[2],
);
}

/**********************************************************
* Parse Array data into an HTML structure *
* Usage: string parse_rss ( array data ) *
**********************************************************/
function output_rss($pattern, $rss_data) {
for($i=0; $i<$rss_data['count']; $i++) {
$temp .= sprintf(" ***** ".$pattern,
$rss_data['link'][$i],
$rss_data['title'][$i]
);
}
return $temp;
}

/**********************************************************
* Settings *
**********************************************************/
$url = 'http://www.some_site.com/rss/news.xml';

$reg_exp = '#<item>.*?<title>(.*?)</title>.*?';
$reg_exp .='<link>(.*?)</link>.*?<description>#si';
$pattern = '<a href="%s" target="_blank" style="color: #FFFFFF">%s</a>';

/**********************************************************
* Main script *
**********************************************************/
if ( $xml_data = file_get_contents($url) ) {
$rss_data = parse_rss($reg_exp, $xml_data);
$str = output_rss($pattern, $rss_data);
}
/**********************************************************
* The END *
**********************************************************/

echo "<marquee behavior='scroll' direction='left' style='color:#FFFFFF; font-size:16px;' scrolldelay='125'>$str</marquee>";
?>

Скрипт не мой, но мною доработанный, так сказать, подогнанный для нужд моего сайта... Вопрос такой: всё это замечательно работало до опрделённого момента. А теперь просто не работает. Ничего не выдаётся, никаких действий не происодит. В чём может быть причина? На локальном компьютере на ДенВЕРе всё замечательно работает, а на сервере в интернете нет... Может хостер что-то отключил? У кого какие мысли? Буду благодарен за помощь... smile.gif



Спустя 2 часа, 10 минут, 4 секунды (13.12.2008 - 21:22) Гость написал(а):
На локальном компьютере вы с этого же url берёте данные ?
Включено ли отображение ошибок на сервере?

Спустя 7 минут, 46 секунд (13.12.2008 - 21:30) Гость написал(а):
И да, на сервере могут отключить возможность получения файла таким образом с другого сайта.

Спустя 17 минут, 40 секунд (13.12.2008 - 21:48) kirik написал(а):
nukerster, если вы пользуетесь обычным виртуальным хостингом, то там 99.9% будет отключена эта функция для работы с сылками.
Цитата
[c php.net] Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers".


попробуйте заюзать curl();
вот примерный скрипт -

Код
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);
$xml_data = curl_exec($ch);
curl_close($ch);

где $url ваш УРЛ, а $xml_data возвращаемый результат.

Правда на большинстве _бесплатных_ хостингов эта фишка тоже отключена =) Тогда уж никак не выйдет..

Спустя 1 час, 46 минут, 39 секунд (13.12.2008 - 23:34) nukerster написал(а):
Ну я изначально всё тестировал у себя на ДенВЕРе, всё работало... Потом залил на сервак (хостинг и правда бесплатный) и сначала тоже всё работало... Долго работало - месяц или два... А потом в один прекрасный день всё накрылось. Вообще, когда всё это "поломалось" там куча ошибок была, на странице всё сбилось, вся разметка... Я этот блок вырезал, всё стало нормально. Теперь решил этот блок с RSS вернуть, ошибок никаких не выдаёт, но и ничего не делает... Я так думаю, что это опции какие-то хостер отключил...

kirik, я этот код обязательно попробую... Может поможет... Просто новости с RSS очень полезные... Хочется вернуть!

Спустя 8 минут, 24 секунды (13.12.2008 - 23:43) nukerster написал(а):
Попробовал! sad.gif

На ДенВЕРе выдало: Fatal error: Call to undefined function curl_init()
На удалённом серваке снова то же самое: ничего не происходит...

Спустя 12 минут, 30 секунд (13.12.2008 - 23:55) kirik написал(а):
nukerster, хостинг от Джино? =)
Тогда, пожалуй, единственный выход - купить хостинг.. он не такой дорогой сейчас (или можно поискать какой-нибудь другой бесплатный с неотрубленными функциями)

Цитата
На ДенВЕРе выдало: Fatal error: Call to undefined function curl_init()

у вас версия php < 4.0.2 ?

Спустя 23 часа, 13 минут, 52 секунды (14.12.2008 - 23:09) nukerster написал(а):
PHP Version 5.2.4
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.