Bonjour les gens . j'ai oune piti probleme
Je voulai faire un gestionnaire et afficheur de flux et donc je dois gérer tous les types de flux RSS mais la n'est pas le probleme. Lorsque le flux est de type ATOM, je dois catcher les <link ... > qui sont que de type text/html donc type="text/html"
voici a quoi ressemble une balise link
Citation :
<link href="http://www.blogger.com/atom/6356614/108567929825946436" rel="service.edit" title="How to make a linkblog in Atom" type="application/atom+xml"/>
<link href="http://diveintomark.org/archives/2004/05/27/howto-atom-linkblog" rel="related" title="How to make a linkblog in Atom" type="text/html"/>
|
Le premier n'est pas a catché car il n'a pas le bon type, donc on doit prendre le 2eme . Mais le type="text/html" peut etre soit avant, soit apres le href et donc la se pose le probleme car je voudrais que s'il n'y est pas avant, il doit absolument y etre apres. J'ai donc regardé les sous-masques conditionnels et j'ai fait cette expression:
Citation :
'/<link(.*)(type="text\/html" )(.*) href="([^"]+)"(?(2)(.*)|(type="text\/html" ))(\/?)>/i'
|
qui tourne avec un preg_match :
Citation :
preg_match('/<link(.*)(type="text\/html" )(.*) href="([^"]+)"(?(2)(.*)|(type="text\/html" ))(\/?)>/i',$this->items[$i+1],$lien_atom);
|
Avec ceci:
Citation :
<link href="http://www.blogger.com/atom/6356614/108567929825946436" rel="service.edit" title="How to make a linkblog in Atom" type="application/atom+xml"/>
<link href="http://diveintomark.org/archives/2004/05/27/howto-atom-linkblog" rel="related" title="How to make a linkblog in Atom" type="text/html"/>
|
Le tableau $lien_atom est vide.
Par contre , avec ceci :
Citation :
<link rel="alternate" type="text/html" href="http://eurosport.tf1.fr/home/pages/v4/l3/s18/sport_lng3_spo18_sto709471.shtml">
|
le tableau ressemble a ca :
Citation :
Array
(
[0] => <link rel="alternate" type="text/html" href="http://eurosport.tf1.fr/home/pages/v4/l3/s18/sport_lng3_spo18_sto709471.shtml">
[1] => rel="alternate"
[2] => type="text/html"
[3] =>
[4] => http://eurosport.tf1.fr/home/pages [...] 9471.shtml
[5] =>
[6] =>
[7] =>
)
|
et donc tout fonctionne parfaitement.
J'espere avoir été clair
En gros, je voudrais que le premier exemple catch la ligne de link ou le type est text/html, comme dans le 2eme exemple meme si ce dernier ne comporte qu'une balise link
merci d'avance si vous avez eu la volonté d'arriver jusque la