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 :

Récupérer enclosure flux RSS


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 17
    Points : 7
    Points
    7
    Par défaut Récupérer enclosure flux RSS
    Bonjour à tous,
    C'est la première fois que je viens ici et je suis un peu perdu je ne sais pas trop où poster mais bon j'espère trouver de l'aide.
    Voici mon problème
    J'ai un script qui traite les flux rss et je voudrait récupérer l'adresse des enclosure des flux rss. Voici un exemple d'item:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <item>
                <title>L'armée égyptienne dissout le Parlement</title>
                <description>	 L'armée égyptienne, en charge de la gestion du pays depuis le départ du...</description>
     
                <pubDate>Sun, 13 Feb 2011 17:08:00 +0100</pubDate>
                <link>http://www.lepoint.fr/monde/l-armee-egyptienne-organise-l-apres-moubarak-13-02-2011-1294902_24.php</link>
                <enclosure url="http://www.lepoint.fr/images/2011/02/13/tantaoui-252716-jpg_142894.JPG" length="163524" type="image/jpeg" />
            </item>

    Je ne sais pas comment récupérer l'adresse de l'enclosure.

    Mon autre bout de code est comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $xml = simplexml_load_file('http://www.lepoint.fr/rss.xml');
    	foreach($xml->xpath('//item') as $inf)
    	$tab[strtotime($inf->pubDate)] = array('titre' => $inf->title, 'type' => $inf->rss, 'texte' => $inf->description,'lien' => $inf->link,'date' => $inf->pubDate);
     
    krsort($tab);
    $tab = array_slice($tab, 0, 10);
     
    foreach($tab as $date => $val){
    	$titre=$val['titre'];
    	$date=strtotime($val['date']);
    	$lien=$val['lien'];
    	$texte=$val['texte'];
    }
    Mais je ne sais pas comment faire pour l'enclosure.
    Merci d'avance à ceux qui m'aideront.
    Totolef

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    avec attributes

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    OUAH !!!
    Jamais eu de réponse aussi rapide.
    Merci de m'aider je vais aller voir sa

  4. #4
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    J'ai juste un petit problème:
    J'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $xml = simplexml_load_file('http://www.lepoint.fr/rss.xml');
    //Des trucs au milieu
    foreach($xml->enclosure[0]->attributes() as $a => $b) {
    Et il me met Fatal error: Call to a member function attributes() on a non-object in /homepages/44/d344826307/htdocs/flux/flux2.php5 on line 30

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    $xml->enclosure[0] n'existe pas, y'a pas enclosure direct a la racine du XML

  6. #6
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Merci de m'aider.
    Mais je ne sais pas comment faire pour cette ligne.
    Pourrais-tu m'aider?
    Merci
    Totolef

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par totolef Voir le message
    Merci de m'aider.
    Mais je ne sais pas comment faire pour cette ligne.
    Pourrais-tu m'aider?
    Merci
    Totolef
    il faut faire tout le chemin absolue ou utilise xpath, c'est comme un dossier

  8. #8
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    J'ai fait sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    foreach($xml->rss->channel->item->enclosure->attributes() as $a => $b) {
    Mais j'ai toujours la même erreur.
    Je galère un peu

  9. #9
    Futur Membre du Club
    Inscrit en
    Février 2011
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Mon problème avance.
    Voici mon code en entier:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    <?php
    	$xml = simplexml_load_file('http://www.lepoint.fr/rss.xml');
    	foreach($xml->xpath('//item') as $inf)
    	$tab[strtotime($inf->pubDate)] = array('titre' => $inf->title, 'type' => $inf->rss, 'texte' => $inf->description,'lien' => $inf->link,'date' => $inf->pubDate);
     
    krsort($tab);
    $tab = array_slice($tab, 0, 10);
     
    foreach($tab as $date => $val){
    	$titre=$val['titre'];
    	$date=strtotime($val['date']);
    	$lien=$val['lien'];
    	$texte=$val['texte'];
     
     
     
     
    $dom = new DomDocument;
    $dom->load("http://www.lepoint.fr/rss.xml");
    $listetitre = $dom->getElementsByTagName('title');
    foreach($listetitre as $titree){
    $title=$titree->firstChild->nodeValue;
    if($title==$titre)
    {
    $enclosure = $dom->getElementsByTagName("enclosure");
      foreach($enclosure as $enclos)
      {
        if ($enclos->hasAttribute("url")) {
        	$enclosure==$enclos->getAttribute("url")->nodeValue;
        }
      }
      }
      }
     
    $x = 540;
    $y = 264; # Taille en pixel de l'image redimensionnée
    $size = getimagesize($enclosure);
    if ($size) {
    if ($size['mime']=='image/jpeg' ) {
    $extension_upload='jpeg';
    $img_big = imagecreatefromjpeg($file); # On ouvre l'image d'origine
    $img_new = imagecreate($x, $y);
    $img_mini = imagecreatetruecolor($x, $y)
    or   $img_mini = imagecreate($x, $y);
    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
    imagejpeg($img_mini,$file );
    }
    elseif ($size['mime']=='image/png' ) {
    $extension_upload='png';
    $img_big = imagecreatefrompng($file); # On ouvre l'image d'origine
    $img_new = imagecreate($x, $y);
    # création de la miniature
    $img_mini = imagecreatetruecolor($x, $y)
    or   $img_mini = imagecreate($x, $y);
    // copie de l'image, avec le redimensionnement.
    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
    imagepng($img_mini,$file );
    }
    elseif ($size['mime']=='image/gif' ) {
    $extension_upload='gif';
    $img_big = imagecreatefromgif($file); # On ouvre l'image d'origine
    $img_new = imagecreate($x, $y);
    # création de la miniature
    $img_mini = imagecreatetruecolor($x, $y)
    or   $img_mini = imagecreate($x, $y);
    // copie de l'image, avec le redimensionnement.
    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
    imagegif($img_mini,$file );
    }
    }
        $miniature = $date;
        $nomminiature = str_replace(' ','',$miniature).".".$extension_upload;
        $miniature = "../img/".$nomminiature;
        move_uploaded_file($img_mini,$miniature);
        mysql_query("INSERT INTO fluxx VALUES('', '" . $date . "', '" . mysql_real_escape_string($lien) . "', '" . mysql_real_escape_string($titre) . "','" . mysql_real_escape_string($texte) . "','".$nomminiature."')")or die (mysql_error());
    }
    C'est peut être pas la meilleur solution mais bon.
    Maintenant j'ai une erreur:
    Catchable fatal error: Object of class DOMNodeList could not be converted to string in /homepages/44/d344826307/htdocs/flux/flux2.php5 on line 52.

Discussions similaires

  1. Récupérer des flux RSS
    Par anassss dans le forum Web
    Réponses: 1
    Dernier message: 05/08/2011, 11h32
  2. Récupérer un flux RSS
    Par jinpol dans le forum Zope
    Réponses: 0
    Dernier message: 01/06/2010, 11h15
  3. Récupérer un flux RSS protégé par htaccess
    Par abricot dans le forum Langage
    Réponses: 4
    Dernier message: 25/05/2009, 12h04
  4. [XML] Récupérer attribut flux RSS
    Par yagrasdemonde dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 09/12/2008, 22h03
  5. Récupérer un flux RSS complet
    Par Nomogo dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 26/08/2008, 15h12

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