PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
Jampire
Отправлено: 09 Апреля, 2011 - 21:56:18
Гость
Покинул форум
Сообщений всего: 106
Дата рег-ции: Март 2011
Помог: 0 раз(а)
Пытаюсь исправить RSS файл lostfilm, очистить от ненужного мне мусора, и вывести его (у них некорректно ссылки пишутся в нем)
PHP:
скопировать код в буфер обмена
<?PHP
/**********************************************************
* Parse XML data into an array structure *
* Usage: array parse_rss ( string data ) *
**********************************************************/
function parse_rss( $reg_exp , $xml_data ) {
'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 ++ ) {
$rss_data [ 'link' ] [ $i ] ,
$rss_data [ 'title' ] [ $i ]
) ;
}
return $temp ;
}
/**********************************************************
* Settings *
**********************************************************/
$url = 'http://lostfilm.tv/rssdd.xml' ;
$reg_exp = '#<item>.*?<title>(.*?)</title>.*?' ;
$reg_exp .= '<link>(.*?)</link>.*?' ;
$reg_exp .= '</item>#si' ;
$pattern = '<a href="%s">%s</a><br>' ;
/**********************************************************
* Main script *
**********************************************************/
$rss_data = parse_rss( $reg_exp , $xml_data ) ;
echo output_rss( $pattern , $rss_data ) ;
}
/**********************************************************
* The END *
**********************************************************/
?>
Таким скриптом я получаю ссылку к примеру:
Есть еще возможность вывести ссылку:
Не знаю, с какой удобнее вытащить ID
Задача: вытаскивать ID торрента (3130 это он) и добавить его к ссылке ввиде ?id=3130
конечная ссылка должна выглядеть так:
или
Тот кто сможет мне помочь - награжу спасибкой большой (Отредактировано автором: 09 Апреля, 2011 - 22:11:59)
-----не будите во мне зверя!!! он и так не высыпается...
grefon
Отправлено: 10 Апреля, 2011 - 02:02:57
Частый посетитель
Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010
Помог: 32 раз(а)
PHP:
скопировать код в буфер обмена
function output_rss( $pattern , $rss_data ) {
for ( $i = 0 ; $i < $rss_data [ 'count' ] ; $i ++ ) {
$rss_data [ 'link' ] [ $i ] ,
$rss_data [ 'title' ] [ $i ]
) ;
}
return preg_replace ( "|download.php\/([0-9]{1,5})\/(.*?)torrent|si" , "download.php/\\ 1/\\ 2torrent/?id=\\ 1" , $temp ) ; }
-----____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
Jampire
Отправлено: 10 Апреля, 2011 - 10:51:58
Гость
Покинул форум
Сообщений всего: 106
Дата рег-ции: Март 2011
Помог: 0 раз(а)
Все ОК
но еще вопрос
При нажатии на ссылку - скачки не будет
При вставке ссылки в URL - пойдет нормально.
Это такая защита что-ли?
Можно ли это как то исправить?
replace немного переписал (сейчас ссылка получилась в точности как на сайте)
(Отредактировано автором: 11 Апреля, 2011 - 21:04:11)
-----не будите во мне зверя!!! он и так не высыпается...
Jampire
Отправлено: 12 Апреля, 2011 - 14:53:11
Гость
Покинул форум
Сообщений всего: 106
Дата рег-ции: Март 2011
Помог: 0 раз(а)
Viper если вставить ссылку просто в URL и нажать ОК - все нормально скачает.
Можно ли это как то с имитировать?
(Добавление)
Прикрепляю полный скрипт:
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
<?PHP
?>
<?PHP
/**********************************************************
* Parse XML data into an array structure *
* Usage: array parse_rss ( string data ) *
**********************************************************/
function parse_rss( $reg_exp , $xml_data ) {
'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 ++ ) {
$rss_data [ 'link' ] [ $i ] ,
$rss_data [ 'title' ] [ $i ]
) ;
}
return preg_replace ( "|download.php\/([0-9]{1,5})\/(.*?)torrent|si" , "download.php?id=\\ 1&\\ 2torrent" , $temp ) ; }
/**********************************************************
* Settings *
**********************************************************/
$url = 'http://lostfilm.tv/rssdd.xml' ;
$reg_exp = '#<item>.*?<title>(.*?)</title>.*?' ;
$reg_exp .= '<link>(.*?)</link>.*?' ;
$reg_exp .= '</item>#si' ;
$pattern = '<a title="Скачать torrent" target="page" href="%s" style="margin: 1px; border-radius: 7px; -moz-border-radius: 7px; padding: 0px 5px 0px 3px; color: #488939; background: #daf8cf right center no-repeat; text-decoration: none;"><img align="top" style="margin: 1px 5px 1px 0px;" src="/images/torrent.png" width="16" height="16">%s</a><br>' ;
/**********************************************************
* Main script *
**********************************************************/
$rss_data = parse_rss( $reg_exp , $xml_data ) ;
echo output_rss( $pattern , $rss_data ) ;
}
echo "<div id='clock' style='position: fixed; bottom: 5px; right: 5px; border-radius: 7px; -moz-border-radius: 7px; padding: 0px 5px 0px 3px; color: #488939; background: #daf8cf right center no-repeat; text-decoration: none;'></div>" ;
/**********************************************************
* The END *
**********************************************************/
?>
<script>
var sec=60;
secund();
function secund()
{
sec--;
document.getElementById('clock').innerText = "До обновления информации осталось "+sec+" секунд.";
setTimeout('secund()',1000);
}
</script>
Прикол в том, что некоторые ссылки работают при клике / некоторые нет.(Отредактировано автором: 12 Апреля, 2011 - 14:59:07)
-----не будите во мне зверя!!! он и так не высыпается...
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB