|
|
|
|
Bonjour, dans le cadre de mon stage, je dois faire un éditeur de XML (pour un flux RSS) en PHP et sans BDD.
Grâce à mon ami Google j'ai trouvé un code qui permet via 1 formulaire de remplir des champs textes,... avec les données que l'on veut voir apparaitre dans le RSS et qui permet d'enregistrer ces données dans un fichier XML.
Mon soucis au départ était que cela écraser à chaque fois ma précédente news. Donc encore avec mon ami Google, j'ai trouvé un autre code qui me permet de mettre plusieurs news dans un fichier XML.
Maintenant mes soucis sont :
- arriver à supprimer mes deux dernières balises pour qu'à chaque fois que je rentre une nouvelle news elles ne soient pas là.
- arriver à remplacer, par exemple la news 1 par une nouvelle news 1,... quand l'utilisateur spécifie le numéro de la news... mouais c'est pas super clair... mais bon c'est le premier problème qui me pose le plus de soucis ^^
Voici mon code qui me permet d'enregistrer mes news dans mon fichier XML :
<?php
// Configuration
$cfg['file_to_edit'] = "rss.xml";
$cfg['page_retour'] = "editer_news.php";
$titre = stripslashes($_POST['titre']);
$description = stripslashes($_POST['description']);
$url_link_text = $_POST['url_link_text'];
$url = $_POST['url'];
$add_date = $_POST['add_date'];
$thumb_image = $_FILES['thumb_image']['name']; /*Voir si importer image dans serveur, si redimensionner*/
$description = $_POST['description'];
$text = "<item id=\"".$_POST['num']."\">\n";
$text .= "<title>".$titre."</title>\n";
$text .= "<url_link_text>".$url_link_text."</url_link_text>\n";
$text .= "<url>".$url."</url>\n";
$text .= "<add_date>".$add_date."</add_date>\n";
$text .= "<thumb_image>".$thumb_image."</thumb_image>\n";
$text .= "<description>".$description."</description>\n";
$text .= "</item>\n\n";
$xml_bas = "</channel>\n";
$xml_bas .= "</rss>\n";
$path= $cfg['file_to_edit'];
if(file_exists($path))
{
$handle = fopen($path,"r");
$content = file($path);
fclose($handle);
}
$handle = fopen($path,"w");
for($i=0;$i < count($content); $i++)
{
if(($content[$i] != "")&&($content[$i] != "\r\n"))
fwrite($handle,$content[$i]);
}
$str_out = stripslashes($text);
fwrite($handle,$str_out);
fclose($handle);
echo "<div align=\"center\">";
echo "<h1>Edition effectuée</h1>";
echo "<p><a href=\"".$cfg['page_retour']."\">Retour</a></p>";
echo "</div>";
?>Configuration: Windows XP Firefox 3.0
Salut,
|
Re,
var_dump( $xml->xpath('/rss/chanel/item') );
te trouvera normalement tous les items contenu dans ton fichier rss... Suffit de garder ceux que tu souhaites dans un tableau et d'ajouter en plus celui que l'utilisateur veut rajouter... A la fin du script tu reprends le tableau des items, et tu génères le nouveau xml... et c'est gagné... Amicalement, S@M... |