Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/06/2006, 15h08   #1
Nouveau Membre du Club
 
Inscription : juin 2004
Messages : 156
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 156
Points : 34
Points : 34
Par défaut Construction d'un fichier XML/RSS avec PHP

Bonjour, je voudrais constuire un fichier RSS et j'ai un probleme, chaque <item> peut avoir 0 ou N fichier associé et je ne sais pas comment faire pour récupérer ensuite le résultat.

voici un bon de code qui sera plus parlant, la c'est ma construction de l'item.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
	$xml .= '<item>'."\n";
	$xml .= '<num>'.$i.'</num>';
	$xml .= '<id_site>'.$ID_site.'</id_site>'."\n";
	$xml .= '<titre_site><![CDATA['.$titre_site.']]></titre_site>'."\n";
	$xml .= '<id_cat>'.$ID_cat.'</id_cat>'."\n";
	$xml .= '<url><![CDATA['.$url.']]></url>'."\n";
	$xml .= '<titre_category><![CDATA['.$titre_category.']]></titre_category>'."\n";
	$xml .= '<titre_category2><![CDATA['.$titre_category2.']]></titre_category2>'."\n";
 
	$sql3="SELECT * FROM adcenter WHERE ID_cat='".$ID_cat."' AND ID_project='".$ID_project."'";
	$res3=mysql_query($sql3);
 
	$j=1;
	while($val_ban=mysql_fetch_array($res3))
	{
		$xml .= '<ban_'.$j.'>'.$val_ban['url'].'</ban_'.$j.'>'."\n";
                          $j++;
 
	}
 
	$xml .= '</item>'."\n"."\n";


ensuite dans la page de lecture, le problème est que je déclare un tableau avec des variables fixe.

$rss = lit_rss("rss2/flux_".returne($id).".xml",array("num","id_site","titre_site","id_cat","url","titre_category","titre_category2","ban",));

le soucis c'est que ban change de nom tous le temps en fonction du nombre de fichier possible pour l'item concernée.

Comment puis-je faire pour récupérer tous les "ban" (fichier) en les distinguant.

Merci de votre aide, je coince depuis ce matin sur ce problème.
sirbaldur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 15h18   #2
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
Salut !

pourquoi ne pas définir un attribut du style id ou num sur ta balise ban qui contiendrait le numéro ?
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 15h26   #3
Nouveau Membre du Club
 
Inscription : juin 2004
Messages : 156
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 156
Points : 34
Points : 34
Euh oui je vois ce que tu veux dire, du style :

<ban>
<ban url="'.$val_ban['url'].'" id="'.$j.'"/>
</ban>

mais comment puis-je ensuite le récupérer dans le tableau? c'est un tableaux à 2 dimension?
sirbaldur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 15h50   #4
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
ça dépend de ta fonction lit_rss... :\
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 16h04   #5
Nouveau Membre du Club
 
Inscription : juin 2004
Messages : 156
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 156
Points : 34
Points : 34
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function lit_rss($fichier,$champs)
{
   // on lit le fichier
   if($chaine = @implode("",@file($fichier))) 
   {
      // on explode sur <item>
      $tmp = preg_split("/<\/?"."item".">/",$chaine);
      // pour chaque <item>
      for($i=1;$i<sizeof($tmp)-1;$i+=2)
         // on lit les champs demand? <champ>
         foreach($champs as $champ)
		 {
            $tmp2 = preg_split("/<\/?".$champ.">/",$tmp[$i]);
            // on ajoute au tableau
            $tmp3[$i-1][] = @$tmp2[1];
         }
      // et on retourne le tableau
      return $tmp3;
   }
}
ma fonction lit rss est faite de cette manière, je l'ai récupérer sur ce site d'ailleur
sirbaldur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h16.


 
 
 
 
Partenaires

Hébergement Web