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 27/03/2006, 18h14   #1
Invité de passage
 
Inscription : mars 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 4
Points : 2
Points : 2
Par défaut Récupération infos flux rss / atom via ereg()

Bonjour,

Mon but est à partir de l'url d'une page qui m'est fournie, de regarder si le site propose un flux RSS ou Atom et si oui de récupérer le titre et l'adresse du flux.

Je commence par ouvrir mon fichier et je regarde ligne par ligne si je trouve du code correspondant au flux via un masque.

Voici un bout de code qui doit effectuer ce test mais qui malheureusement ne marche pas :

Code :
1
2
3
4
5
6
7
8
9
if (eregi("<link rel=\"alternate\" type=\"application/rss+xml\" title=\"(.*)\" href=\"(.*)\"(.?)>",$ma_ligne,$regs))
 {
 echo "Titre du file : ".$regs[1]."<br/>";
 echo "Adresse du file : ".$regs[2]."<br/>";
 }
else
 {
 echo "pas trouvé !<br/>";
 }
Ce n'est qu'un début de code puisqu'à terme il faut aussi que je gère la possibilité de simples apostrophes ainsi que le cas ou il s'agit d'un flux Atom.

Mais déjà là, cela ne fonctionne pas avec des sites, dont je me suis pourtant inspiré du code pour créer mon masque.

Je ne comprends pas pourquoi...

Merci d'avance à ceux qui pourront m'aider.

Fab
Fab le Fou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2006, 19h58   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Je ne sais pas ce que tout le monde a avec les ereg alors qu'il est dit partout que les preg sont plus efficaces et plus complètes...

Bref, voici ce que je te propose :
Code :
preg_match_all('#<link rel="alternate" type="application/rss+xml" title="([^"])" href="([^"])"([^>])*>#Ui', $ma_ligne, $regs);
Si tu te demandes à quoi correspondent U et i, je te recommande la doc PHP et une recherche sur mes messages contenant des expressions régulières.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2006, 09h26   #3
Invité de passage
 
Inscription : mars 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 4
Points : 2
Points : 2
Salut et merci de ta réponse,

Je vais essayer de trouver une bonne doc sur le preg mais pour l'instant ça ne marche pas mieux pour mon problème.

Même moins bien, puisqu'avec ereg j'arrive au moins à récupérer la balise <title> d'une page alors qu'avec preg il ne trouve rien.
Mais ce n'est de toute façon pas mon but..

Mais je ne comprends pas d'où vient le problème avec ou sans ereg.
Mon masque me semble assez simple puisque je ne gère pas encore tous les cas de figure.

Peut-être les apostrophes ou les espaces sont mal reconnus, ce qui fait qu'il ne trouve pas exactement mon masque ? Etrange !

J'ai évidemment essayé avec plusieurs sites pour mes tests...

Fab
Fab le Fou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2006, 14h26   #4
Invité de passage
 
Inscription : mars 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 4
Points : 2
Points : 2
Je viens enfin de trouver ce qui buggait dans mon masque : j'avais bien échappé les apostrophes mais pas le "+" de "rss+xml", qui a évidemment un sens...

Cela servira peut-être à d'autres.

En tous cas merci du conseil. Je vais quand même essayé de me mettre à preg.
Fab le Fou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h28.


 
 
 
 
Partenaires

Hébergement Web