Skocz do zawartości

Skrypt rss


Rekomendowane odpowiedzi

W panelu dodać nowy boks o treści:

<php>rss.php</php>

Plik rss.php umieścić w głównym katalogu:

<?
$link = 'https://wiadomosci.onet.pl/18,kategoria.rss';

$rss_link = $link;
$currentTag = "";
$startitem = 0;
$encoding = 0;
$rss_items = array();

function startTag($parser, $name, $attrs)
{
global $currentTag, $startitem;
$currentTag = $name;
if ($currentTag=='ITEM') $startitem++;
}

function endTag($parser, $name)
{
global $currentTag;
$currentTag = "";
}

function characterData($parser, $data)
{
global $currentTag, $startitem, $rss_items;
if ($startitem > 0) {
switch ($currentTag) {
case 'TITLE': $rss_items[$startitem]['TITLE'].=$data; break;
case 'LINK' : $rss_items[$startitem]['LINK'] .=$data; break;
case 'DESCRIPTION': $rss_items[$startitem]['DESCRIPTION'].=$data; break;
}

}

}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startTag", "endTag");
xml_set_character_data_handler($xml_parser, "characterData");

$rss_link = parse_url($rss_link);

$header = "GET ".$rss_link["path"].(isset($rss_link["query"]) ? "?".$rss_link["query"] : false)." HTTP/1.0\r\n";
$header .= "Host: ".$rss_link['host']."\r\n";
$header .= "Content-type: application/x-www-form-urlencoded\r\n";
$header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; www.inteco.win.pl)\r\n";
$header .= "Content-length: " . strlen($request) . "\r\n\r\n";


if ($rss_read = @fsockopen($rss_link['host'], ($rss_link['port']>0 ? $rss_link['port'] : 80), $err_num, $err_msg, 10)) {

fputs($rss_read, $header . $request);

while ($data = fread($rss_read, 4096)) {

if ((empty($encoding)) && (preg_match("#<\?xml.+(|encoding=\"([\w\-]+)\").*?\?>#i",$data,$enc))) { // nagłówek XML i pobieranie
$encoding = preg_replace("#<\?xml.+encoding=\"([\w\-]+)\".*\?>#s","\\1",$enc[0]); // kodowania tekstu
$data = preg_replace('#(.*?)(<\?xml)#s','\\2',$data);
}

if (!empty($encoding)) {
if (!xml_parse($xml_parser, $data, feof($rss_read))) {
die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)));

xml_parser_free($xml_parser);
}
}
}
}

$i=1;	
foreach ($rss_items as $wart) {
	if( $i < 4 ) {
	$rss .= ''."\r\n";
	$link = '[<a class="subcat" rel="nofollow" href="'.$wart['LINK'].'">więcej...</a>]<br>'."\r\n";
	$rss .= '<strong>'.$wart['TITLE'].'</strong><br>'."\r\n";
	$rss .= $wart['DESCRIPTION']."\r\n";
	$rss .= '<div style="text-align:right">'.$link.'</div><br /><br />'."\r\n";
	$i++;	   } 
	}
echo $rss;
?>

..dostosować wg potrzeb, wygląd, kanał itp.

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Skrypt jak najbardziej jest prawidłowy, ale wstawianie go już nie.... musi on być na początku wywoływania strony, czyli należało by go gdzieś zaincludować na początku.... a później wyświetlać.. albo zapisywać pobrane dane za pomocą crona do .txt i includować same newsy.

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

fakt, skrypt działa jak się wejdzie na niego bezpośrednio, czyli www.katalog.pl/rss.php.

@Mar, gdzie dokładnie mamy ten plik includować ? próbowałem w funkcje.php i home.php, ale nie działą jak należy. Utworzyłem również osobny plik php i includowałem do niego ten skrypt i wczytać ten nowy plik do kolumny ale również nie działa.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 6 miesięcy temu...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności