Как дописать скрипт "добавить RSS новости на свой сайт"?

N
На сайте с 15.02.2018
Offline
2
1440

Как дописать скрипт "добавить RSS новости на свой сайт"?

Скрипт здесь: /ru/forum/662917

Пожалуйста, помогите! Нельзя ли вставить в этот скрипт переменные или коды

чтобы он обрабатывал и сохранял в файл cache.txt сразу несколько RSS?

К примеру так:

$feed = file_get_contents ( "http://rss.feedsportal.com/c/801/f/413231/index.rss" );

$feed = file_get_contents ( "http://rss.feedsportal.com/c/802/f/413232/index.rss" );

$feed = file_get_contents ( "http://rss.feedsportal.com/c/803/f/413233/index.rss" );

$filename = "cache.txt";

<?php

// Simple RSS parser v.1.0 by CyberSEO.net
$feed = file_get_contents ( "http://rss.feedsportal.com/c/803/f/413231/index.rss" );
$filename = "cache.txt";
if (file_exists ( $filename ) && filesize ( $filename ) && (time () - filectime ( $filename )) < 60 * 60) {
$content = file_get_contents ( $filename );
} else {
$xml_parser = xml_parser_create ();
xml_parse_into_struct ( $xml_parser, $feed, $vals, $index );
$cnt = min ( 5, count ( $index ["TITLE"] ) );
$content = "";
for($i = 1; $i < $cnt; $i ++) {
$content .= "<h3>" . html_entity_decode ( $vals [$index ["TITLE"] [$i]] ["value"], ENT_QUOTES ) . "</h3>\n";
$content .= "<p>" . html_entity_decode ( $vals [$index ["DESCRIPTION"] [$i]] ["value"], ENT_QUOTES ) . "</p>\n";
}
file_put_contents ( $filename, $content, LOCK_EX );
xml_parser_free ( $xml_parser );
}
echo $content;
?>
N
На сайте с 15.02.2018
Offline
2
#1

Поясню. Нужно чтобы запоминался в файл cache.txt

текст не из одного канала RSS из нескольких канала RSS.

Как дописать код в файле скрипта "// Simple RSS parser v.1.0 by CyberSEO.net"?

S
На сайте с 30.09.2016
Offline
469
#2

Оформляете процедуру обработки данных как функцию и применяете эту функцию последовательно к каждому источнику. Результаты объединяете.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
N
На сайте с 15.02.2018
Offline
2
#3

Sitealert, Мне не сделать.

Помогите, как у Вас время будет.

Это бы увидеть как будет.

N
На сайте с 15.02.2018
Offline
2
#4

Кто бы смог помочь, извините, за бесплатно.

Дописать скрипт "добавить RSS новости на свой сайт"?

S
На сайте с 30.09.2016
Offline
469
#5

Как-то так, не вдаваясь в детали. Не проверял работоспособность.

<?php

$urls = array("http://rss.feedsportal.com/c/801/f/413231/index.rss", "http://rss.feedsportal.com/c/802/f/413232/index.rss", "http://rss.feedsportal.com/c/803/f/413233/index.rss");
$filename = "cache.txt";
$content = '';

function get_my_rss($feed){
$xml_parser = xml_parser_create ();
xml_parse_into_struct ( $xml_parser, $feed, $vals, $index );
$cnt = min ( 5, count ( $index ["TITLE"] ) );
$content = "";
for($i = 1; $i < $cnt; $i ++) {
$content .= "<h3>" . html_entity_decode ( $vals [$index ["TITLE"] [$i]] ["value"], ENT_QUOTES ) . "</h3>\n";
$content .= "<p>" . html_entity_decode ( $vals [$index ["DESCRIPTION"] [$i]] ["value"], ENT_QUOTES ) . "</p>\n";
}
xml_parser_free ( $xml_parser );
return $content;
}

if(file_exists($filename) && filesize ($filename) && (time () - filectime ( $filename )) < 60 * 60){
$content = file_get_contents($filename ;
}else{
foreach($urls as $url){
$fcontent = get_my_rss(file_get_contents($url));
if($fcontent)$content .= $fcontent;
}
file_put_contents($filename, $content, LOCK_EX);
}

echo $content;
N
На сайте с 15.02.2018
Offline
2
#6

Нет не работает...

<?php
$urls = array("https://rss.newsru.com/all_news/", "https://iz.ru/xml/rss/all.xml", "https://life.ru/xml/feed.xml");
$filename = "cache.txt";
$content = '';

function get_my_rss($feed){
$xml_parser = xml_parser_create ();
xml_parse_into_struct ( $xml_parser, $feed, $vals, $index );
$cnt = min ( 5, count ( $index ["TITLE"] ) );
$content = "";
for($i = 1; $i < $cnt; $i ++) {
$content .= "<h3>" . html_entity_decode ( $vals [$index ["TITLE"] [$i]] ["value"], ENT_QUOTES ) . "</h3>\n";
$content .= "<p>" . html_entity_decode ( $vals [$index ["DESCRIPTION"] [$i]] ["value"], ENT_QUOTES ) . "</p>\n";
}
xml_parser_free ( $xml_parser );
return $content;
}

if(file_exists($filename) && filesize ($filename) && (time () - filectime ( $filename )) < 60 * 60){
$content = file_get_contents($filename ;
}else{
foreach($urls as $url){
$fcontent = get_my_rss(file_get_contents($url));
if($fcontent)$content .= $fcontent;
}
file_put_contents($filename, $content, LOCK_EX);
}

echo $content;
S
На сайте с 30.09.2016
Offline
469
#7

Так будет работать:

<?php

ini_set('display_errors','On');
error_reporting(E_ALL | E_STRICT);

$urls = array("https://rss.newsru.com/all_news/", "https://iz.ru/xml/rss/all.xml", "https://life.ru/xml/feed.xml");
$filename = "cache.txt";
$content = '';

function get_my_rss($feed){
$xml_parser = xml_parser_create ();
xml_parse_into_struct ( $xml_parser, $feed, $vals, $index );
$cnt = min ( 5, count ( $index ["TITLE"] ) );
$content = "";
for($i = 1; $i < $cnt; $i ++) {
$content .= "<h3>" . html_entity_decode ( $vals [$index ["TITLE"] [$i]] ["value"], ENT_QUOTES ) . "</h3>\n";
$content .= "<p>" . html_entity_decode ( $vals [$index ["DESCRIPTION"] [$i]] ["value"], ENT_QUOTES ) . "</p>\n";
}
xml_parser_free ( $xml_parser );
return $content;
}

if(file_exists($filename) && filesize ($filename) && (time () - filectime ( $filename )) < 60 * 60){
$content = file_get_contents($filename);
}else{
foreach($urls as $url){
$fcontent = get_my_rss(file_get_contents($url));
if($fcontent)$content .= $fcontent;
}
file_put_contents($filename, $content, LOCK_EX);
}

echo $content;

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий