Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1150 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Regex et ATOM

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Regex et ATOM

n°1052616
benamoubea​ch
tivuplai
Posté le 19-04-2005 à 17:50:29  profilanswer
 

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

mood
Publicité
Posté le 19-04-2005 à 17:50:29  profilanswer
 

n°1052666
kalex
Posté le 19-04-2005 à 18:32:09  profilanswer
 

Dsl de ne pas te répondre directement, mais es-tu sur qu'utiliser une regex et la bonne méthode ? Moi je travaillerai plutôt avec DOM, puisqu'il s'agit d'un doc XML.

n°1052679
kalex
Posté le 19-04-2005 à 18:41:09  profilanswer
 

Sinon ce que tu cherches à faire, c'est pas tout simplement :
preg_match('/<link.*(type="text\/html" ).*\/>/i', $text, $result);
 
?

n°1053028
benamoubea​ch
tivuplai
Posté le 20-04-2005 à 00:01:26  profilanswer
 

non car je dois catch aussi le href

n°1053061
kalex
Posté le 20-04-2005 à 01:27:48  profilanswer
 

ben fait le en deux fois. [:spamafote]

n°1053198
benamoubea​ch
tivuplai
Posté le 20-04-2005 à 10:07:31  profilanswer
 

oki c'est ce que je voulais faire si c'était impossible en une fois
 
merci quand meme :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Regex et ATOM

 

Sujets relatifs
aide REGEX[RESOLU] Autoriser un caractère dans un REGEX
[php/XML/regex] parsing bbcode aleatoireJe n'arrive pas a faire ma regex dans ce tableau
regex : long a afficher la pageUn regex qui tient compte des caractères d'échappement
regex: Afficher seulement les liens[PHP] Preg_Match() syntaxe regex pcre
Sortir une occurance d'un regex[regex] matcher un partage réseau
Plus de sujets relatifs à : Regex et ATOM


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR