Page 1 sur 1

supprimer un noeud xml

Posté : 31 mars 2007, 00:33
par Mahn
Bonsoir
Voila j'ai créer un forum dans le lequel les gens peuvent laisser des messages. Mais je souhaite controler le contenu.
Le fichier chargé est de ce genre :

Code : Tout sélectionner

<?xml version="1.0" encoding="UTF-8"?> <forum> <message id="0" date="le 08/01/2006 à 18:24:48" de="Webmaster" mail="" message="ok" club="0/> <message id="1" date="le 30/03/2007 à 23:59:15" de="Webmaster" mail="" message="Attention la boîte message est vide" club="0"/> </forum>
J'aimerai donc pourvoir en cliquant sur un bouton supprimer un message qui eventuellement contient des insultes.
je pense que l'on peut le faire à partir de l'id du message mais quelles fonctions faut-il utiliser dans php ?
Merci pour l'aide

Posté : 31 mars 2007, 05:08
par Xenon_54
removeChild de DOM pourrait t'être utile:
http://www.php.net/manual/en/function.d ... echild.php

PHP5 seulement

Posté : 31 mars 2007, 15:26
par mahn
J'avais qq chose qui ajouter un noeud avec ceci :

Code : Tout sélectionner

$noeud = "<message id=\"".$id."\" date=\"".$ladate."\" de=\"".$surnom."\" mail=\"".$email."\" message=\"".$message."\" club=\"".$isMember."\"/>"; $fp = fopen($fileXML, "r"); if($fp) { $contenu = fread($fp,filesize($fileXML)); $message = str_replace("</forum>","",$contenu); fclose($fp); $nouveaunoeud = $message.$noeud."</forum>"; //scrivi file xml $fp = fopen($fileXML, "w"); if($fp) { if(fwrite($fp, $nouveaunoeud)){ Parse("save","ok"); } fclose($fp); } } }
Ainsi j'ajoute un noeud. Mais comment supprimer ?

Posté : 01 avr. 2007, 05:17
par Xenon_54
Tu n'utilises pas les fonctions natives de gestion du DOM de PHP.

La supression d'un noeud n'est donc pas possible directement dans une chaine de caractères. Revois ta manière de faire puisqu'elle n'est pas appropriée pour ce que tu désires faire.

Tu peux consulter la doc PHP à ce sujet:
http://www.php.net/dom

Posté : 01 avr. 2007, 10:42
par Cyrano
Modération :
Mahn (ou manheman comme tu veux), le multipostage est interdit sur le forum.

Merci de prendre le temps de lire les règlements.