Avant tout commençons par la connexion à la base de données :

[PHP]
<?php
$server="localhost"; //serveur
$user="login";     //login sql
$pass="pass";   // mot de pass sql
$base="base"; // nom de la base 

$connexion = mysql_connect($server, $user, $pass);
if (!$connexion) die('Connect error: '.mysql_error());

$res = mysql_select_db($base); 
if($res) 
  echo "Connected<br>";
else 
  echo "$user not available<br>";
  ?>

Pour assurer un format compatible on va utiliser une petite fonction php pour convertir le contenu en UTF 8

[PHP]
<?php 
// convert the format to UTF-8  
function makeUTF($desc)
{  
  $desc = UTF8_encode($desc);
  $desc = stripslashes($desc);
  return($desc);
}    
?>

Maintenant il faut construire l'entête du flux RSS, ici ce sont les informations de mon site que vous devrez remplacer

[PHP]
<?php
$rss = '<?xml version="1.0" encoding="UTF-8" ?>'."
";
$rss .= '<rss version="2.0">'."
";
$rss .= '<channel>'."
";
$rss .= '<title>Boobs for france</title>'."
";
$rss .= '<link>http://www.boobsforfrance.com</link>'."
";
$rss .= '<description>Boobs for , Des seins pour la France</description>'."
";
$rss .= '<copyright>jarodxxx</copyright>'."
";
$rss .= '<language>fr</language>'."
";
$rss .= '<image>'."
";
$rss .= ' <title>Boobs for France</title>'."
";
$rss .= ' <url>http://www.boobsforfrance.com/logo.gif</url>'."
";
$rss .= ' <link>http://www.boobsforfrance.com</link>'."
";
$rss .= '</image>'."
";

$today= date("D, d M Y H:i:s +0100");
$rss .= "<pubDate>$today</pubDate>
";
?>

Et ensuite on va entrer les 10 derniers articles de la base de données, pour ma part j'ai aussi inclus des images dans le contenu des posts

[PHP]
<?php
$command="SELECT * FROM boobs ORDER BY id DESC LIMIT 10";

$items  = mysql_query($command, $connexion);
if(!$items) die("Select error: ".mysql_error()); 

while($article = mysql_fetch_assoc($items))
{
    $title = makeUTF('une nouvelle paire de seins pour la France');
    $url = 'http://www.boobsforfrance.com';
    $desc = 'une nouvelle paire de seins pour la France';
    $desc = trim(substr($desc, 0, 128));
    $len = strlen($desc) -1;
    $x = strpos($desc, '<'); 
    if($x !== false && $x < $len) $len = $x;
    if($desc[$len] != ".")
    {
     while($len > 20 && ord($desc[$len]) != 32) $len--;
    }   
    $desc = trim(substr($desc, 0, $len)) . "...";
    
    $desc = makeUTF($desc);
    
    $rss .= "<item>
";
    $rss .= "<title>$title</title>
";
    $rss .= "<link>$url</link>
";
    $rss .= "<guid>$url</guid>
";
    $rss .= "<pubDate>$date</pubDate>
";
    $rss .= "<description>$desc<br />";
        // ajout d'une image 
	$rss .= '<![CDATA[<img src="http://www.boobsforfrance.com/photos/'.$article['url'].'.jpg" width="120" height="90" alt="Boobs for france" />]]>';
	$rss .= "</description>
";
    $rss .= "</item>
";
}

$rss .= "</channel>
";
$rss .= "</rss>
";
?>

Pour finir on va écrire le tout dans fichier XML:

[PHP]
<?php 
$fp = fopen('../rss.xml', 'w');
fputs($fp, $rss);
fclose($fp); 
echo '<br><a href="../rss.xml">Voir le fichier</a><br>';
?> 

Pour les flemmards ou ceux qui ont peur de se tromper voici le code source final :

[PHP]
<?php
$server="localhost"; //serveur
$user="login";     //login sql
$pass="pass";   // mot de pass sql
$base="base"; // nom de la base 

$connexion = mysql_connect($server, $user, $pass);
if (!$connexion) die('Connect error: '.mysql_error());

$res = mysql_select_db($base); 
if($res) 
  echo "Connected<br>";
else 
  echo "$user not available<br>";
  
// convert the format to UTF-8  
function makeUTF($desc)
{  
  $desc = UTF8_encode($desc);
  $desc = stripslashes($desc);
  return($desc);
}    

$rss = '<?xml version="1.0" encoding="UTF-8" ?>'."
";
$rss .= '<rss version="2.0">'."
";
$rss .= '<channel>'."
";
$rss .= '<title>Boobs for France</title>'."
";
$rss .= '<link>http://www.boobsforfrance.com</link>'."
";
$rss .= '<description>Boobs for , Des seins pour la France</description>'."
";
$rss .= '<copyright>jarodxxx</copyright>'."
";
$rss .= '<language>fr</language>'."
";
$rss .= '<image>'."
";
$rss .= ' <title>boobs for france</title>'."
";
$rss .= ' <url>http://www.boobsforfrance.com/logo.gif</url>'."
";
$rss .= ' <link>http://www.boobsforfrance.com</link>'."
";
$rss .= '</image>'."
";

$today= date("D, d M Y H:i:s +0100");
$rss .= "<pubDate>$today</pubDate>
";

$command="SELECT * FROM boobs ORDER BY id DESC LIMIT 10";

$items  = mysql_query($command, $connexion);
if(!$items) die("Select error: ".mysql_error()); 

while($article = mysql_fetch_assoc($items))
{
    $title = makeUTF('une nouvelle paire de seins pour la France');
    $url = 'http://www.boobsforfrance.com';
    $desc = 'une nouvelle paire de seins pour la France';
    $desc = trim(substr($desc, 0, 128));
    $len = strlen($desc) -1;
    $x = strpos($desc, '<'); 
    if($x !== false && $x < $len) $len = $x;
    if($desc[$len] != ".")
    {
     while($len > 20 && ord($desc[$len]) != 32) $len--;
    }   
    $desc = trim(substr($desc, 0, $len)) . "...";
    
    $desc = makeUTF($desc);
    
    $rss .= "<item>
";
    $rss .= "<title>$title</title>
";
    $rss .= "<link>$url</link>
";
    $rss .= "<guid>$url</guid>
";
    $rss .= "<pubDate>$date</pubDate>
";
    $rss .= "<description>$desc<br />";
	$rss .= '<![CDATA[<img src="http://www.boobsforfrance.com/photos/'.$article['url'].'.jpg" width="120" height="90" alt="Boobs for France" />]]>';
	$rss .= "</description>
";
    $rss .= "</item>
";
}

$rss .= "</channel>
";
$rss .= "</rss>
";
  
$fp = fopen('../rss.xml', 'w');
fputs($fp, $rss);
fclose($fp);
 
echo '<br><a href="../rss.xml">Voir le fichier</a><br>';

?> 

http://www.jarodxxx.com/public/1_1Ortho/buttonEcripro.png