Flokkar: Allir, Almennt, Kvikmyndir, PHP, Nörd, Tón- og leiklist

Deila á Facebook
PHP: Einfalt RSS feed
Skrifað af Gaui þann 6. mars 2007 - 13:57
athugasemdir skrifaðar - toppur / botn
Fjöldi lestra: 2329
Þar sem ég vil að hver og einn nýti sér RSS tæknina ákvað ég að skrifa smá grein um hvernig hægt er að gera sáraeinfalt RSS feed með einni lítilli PHP scriptu. Þú verður að hafa grunnþekkingu í PHP og MySQL til þess að geta gert þetta, þar sem þetta krefst getu á því að geta breytt gildunum í scriptinu skv. því sem þú notar. Ef þú veist ekki hvað RSS feed er geturu lesið um það hérna.

Til að byrja með

Búðu til skrá sem heitir t.d. rss.php. Þú mátt að sjálfsögðu velja þér nafn en það verður að hafa endinguna .php. Næst skaltu afrita kóðann hér fyrir neðan í skjalið sem þú bjóst til.

Kóðinn

Hér er svo kóðinn sem þú munt nota.

<?php
header
( 'Content-type: text/xml' ); # Tegundin á skjalinu

/*
    Gagnagrunns upplýsingar
*/

$db_host = 'host'; # Gagnagrunns serverinn
$db_user = 'user'; # Notandinn sem tengist gagnagrunninum
$db_pass = 'pass'; # Lykilorðið hjá notandanum
$db_db = 'db'; # Nafnið á gagnagrunninum
$db_table = 'frettir'; # Nafnið á MySQL töflunni í gagnagrunninum

@mysql_connect( $db_host, $db_user, $db_pass ) or die( 'Gat ekki tengst gagnagrunni:<br /><i>' . mysql_error() . '</i>' );
@
mysql_select_db( $db_db ) or die( 'Gat ekki fundið gagnagrunn:<br /><i>' . mysql_error() . '</i>' );

define( 'NL', "\n" ); # Ný lína
define( 'TB', "\t" ); # TAB

$titill = 'Einhver titill'; # Titillinn á RSS feedinu
$link = 'http://www.url.is'; # Slóðin á RSS feedið
$lysing = 'Lýsingin'; # Lýsingin á RSS feedinu
$webmaster = 'email@email.is'; # Webmasterinn

$query = mysql_query( "SELECT * FROM $db_table ORDER BY id DESC LIMIT 10" ) OR die( mysql_error() );

echo
'<?xml version="1.0" encoding="ISO-8859-1"?>' . NL;
echo
'<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">' . NL;
echo
'<channel>' . NL;
echo
'<title>' . $titill . '</title>' . NL;
echo
'<link>' . $link . '</link>' . NL;
echo
'<description><![CDATA[' . $lysing . ']]></description>' . NL;
echo
'<language>is-is</language>' . NL;
echo
'<pubDate>' . date( 'D, j M Y H:i:s T' ) . '</pubDate>' . NL;
echo
'<webMaster>' . $webmaster . '</webMaster>' . NL;

while(
$myrow = mysql_fetch_assoc( $query ) )
{
   
/*
        Hér þarftu að hafa þekkinguna á því hvað dálkarnir í MySQL töflunni heita.
    */
   
   
$_titill = 'titill';
   
$_id = 'id';
   
$_texti = 'texti';
   
$_dags = 'dagsetning'; # UNIX timestamp
   
   
$cat = 'Fréttir'; # Grúppan sem RSS feedið fellur undir

   
echo '<item>' . NL;
        echo
TB . '<title><![CDATA[' . $myrow[$_titill] . ']]></title>' . NL;
        echo
TB . '<link>' . $link . '/?frett_id=' . $myrow[$_id] . '</link>' . NL;
        echo
TB . '<description><![CDATA[' . nl2br( $myrow[$_texti] ) . ' ...]]></description>' . NL;
        echo
TB . '<pubDate>' . date( 'D, j M Y H:i:s T', $myrow[$_dags] ) . '</pubDate>' . NL;
        echo
TB . '<category><![CDATA[' . $cat . ']]></category>' . NL;
    echo
'</item>';
}

echo
'</channel>' . NL;
echo
'</rss>';
?>


Þarna ertu kominn með ágætis RSS scriptu sem nær í nýjustu fréttirnar/færslurnar og birtir þær í XML formi þannig fólk geti náð í þær með RSS Feed lesurum, birt þær á heimasíðunni sinni, o.s.frv. Núna þarf bara að breyta gildunum í scriptinu svo þetta virki eins og það á að gera.

Að lokum

Ég vil einnig benda á það að þú getur einfaldlega vísað í RSS skránna hvernig sem þú vilt, en til þess þarftu að hafa smá þekkingu á mod_rewrite module'num í Apache. Ef kveikt er á honum í vefþjóninum þínum geturu smellt þessari línu inn í Apache eða .htaccess. Þetta dæmi er svo þú getir vísað í /rss.xml - en þá les vefþjónninn rss.php skránna.

.htaccess
RewriteEngine On
RewriteRule ^rss.xml$ /rss.php

Jæja, nú ættir þú að vera kominn með mjög einfalt RSS feed. :)




Athugasemdir ():