IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Extraire un flux RSS d'une page avec une URL [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Par défaut Extraire un flux RSS d'une page avec une URL
    bonjour,

    j'ai adapté un bout de code pour recuperer a partir d'une url distance des infos sur le titre et l'adresse d'un feed rss.

    Seulement mon code me renvoi toujours Rien alors que j'ai tenter avec pas mal de site qui avait biensur des flux rss.

    c'est donc mon preg match qui doit déconner mais je vois vraiment pas.

    Je vous laisse regarder

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
    <?php
     
    $url = file_get_contents("http://lesite.com"); 
     
    if (preg_match_all('#<link rel="alternate" type="application/rss+xml" title="([^"])" href="([^"])"([^>])*>#Ui', $url, $regs))
     {
     echo "Titre : ".$regs[1]."<br/>";
     echo "Adresse : ".$regs[2]."<br/>";
     }
    else
     {
     echo "rien<br/>";
     }
     
     
    ?>
    Une idée ?

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Le caractère plus (+) est un métacaractère faisant office de quantifieur. Vous devez donc l'échapper pour qu'il retrouve sa valeur normale, c'est-à-dire de simple caractère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (preg_match_all('#<link rel="alternate" type="application/rss\+xml" title="([^"])" href="([^"])"([^>])*>#Ui', $url, $regs))

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Par défaut
    j'ai effectué la modification et le résultat est toujours Rien avec un site dont la ligne rss est présente.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
     
    $url = file_get_contents("http://www.lesite.net"); 
     
     
    if (preg_match_all('#<link rel="alternate" type="application/rss\+xml" title="([^"])" href="([^"])"([^>])*>#Ui', $url, $regs))
     {
     echo "Titre : ".$regs[1]."<br/>";
     echo "Adresse : ".$regs[2]."<br/>";
     }
    else
     {
     echo "rien<br/>";
     }
     
     
    ?>
    J'ai même essayé avec une chaine de caractére simple sans utiliser file_get_contents mais le probleme ne vient pas de la

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    1. Tout dépend de la forme utilisée sur le serveur distant : s'il n'y a pas de correspondance vous n'aurez aucun résultat
    2. Vous n'indiquez pas le résultat obtenu
    3. Pour autant que je sache le résultat de preg_match_all est un tableau d'au moins deux dimensions, résultat qui n'est pas exploité en ce sens. Un simple preg_match semble suffisant à votre cas.
    4. Sur les valeurs des attributs href ainsi que title, il manque certainement un quantifieur. Sans eux, la correspondance ne sera établit que sur un seul et unique caractère (donc évidemment s'il y en a plus, le motif n'établira aucune correspondance).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Par défaut
    J'imaginais pas que sa serait aussi compliqué
    Je me demande dans se ca si j'utilise la bonne technique n'y a t'il pas plus simple et plus évident dans mon cas ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 240
    Par défaut
    a moins qu'il y est une fonction qui permet de récupérer direct cette info comme les meta d'une page par exemple car j'ai tout essayer et rien ne marche en utilisant preg match

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Réponses: 0
    Dernier message: 23/08/2013, 10h29
  3. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  4. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  5. Réponses: 13
    Dernier message: 16/04/2004, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo