[PHP/XML] Flux RSS sans BDD
SamC7
-
kryoportail Messages postés 222 Date d'inscription Statut Membre Dernière intervention -
kryoportail Messages postés 222 Date d'inscription Statut Membre Dernière intervention -
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 :
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>"; ?>
A voir également:
- [PHP/XML] Flux RSS sans BDD
- Xml download - Télécharger - Édition & Programmation
- Tiny tiny rss - Télécharger - Flux RSS
- Easy php - Télécharger - Divers Web & Internet
- Office xml handler - Télécharger - Traitement de texte
- Driveimage xml - Télécharger - Sauvegarde
3 réponses
Re,
XMLWriter peut te permettre de créer un code XML valide : https://www.php.net/manual/en/book.xmlwriter.php
Ou sinon, un simple str_replace(); sur ton texte pour remplacer les entités XML suffit.
Une page qui parle des problèmes liés par les caractères invalides en XML : http://www.journaldunet.com/...
Un truc dans le genre :
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...
XMLWriter peut te permettre de créer un code XML valide : https://www.php.net/manual/en/book.xmlwriter.php
Ou sinon, un simple str_replace(); sur ton texte pour remplacer les entités XML suffit.
Une page qui parle des problèmes liés par les caractères invalides en XML : http://www.journaldunet.com/...
Un truc dans le genre :
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...
Salut,
Bien demande à ton ami google "simplexml"... car apparemment vous êtes proches tout les 2 !
Ou encore mieux, fait lui des infidélités et va directement dans le manuel PHP : https://www.php.net/manual/fr/book.simplexml.php
Attention : En procédant comme tu l'as fait... il est possible de rendre potentiellement ton XML illisible (car invalide).... Si tu mets dans ton titre ou ta description, le caractère "<" par exemple, je doute que ton RSS soit encore lisible... Il faut encoder certains caractères en XML !
Amicalement,
S@M...
Bien demande à ton ami google "simplexml"... car apparemment vous êtes proches tout les 2 !
Ou encore mieux, fait lui des infidélités et va directement dans le manuel PHP : https://www.php.net/manual/fr/book.simplexml.php
Attention : En procédant comme tu l'as fait... il est possible de rendre potentiellement ton XML illisible (car invalide).... Si tu mets dans ton titre ou ta description, le caractère "<" par exemple, je doute que ton RSS soit encore lisible... Il faut encoder certains caractères en XML !
Amicalement,
S@M...