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 :

Lecture flux RSS externes


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut Lecture flux RSS externes
    Bonjour,

    Je réalise actuellement un script qui permet de lire des flux rss sur une liste de sites externes et de les mettre en forme dans une seule page personnalisée, sur le même principe que ce site : http://www.phoenixjp.net/news/fr/

    Ma liste des flux RSS à suivre est définie de 2 façons :

    1) Un tableau dans mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Urls = array("http://rss.lemonde.fr/c/205/f/3050/index.rss","http://com.clubic.feedsportal.com/c/33464/f/581979/index.rss","http://com.clubic.feedsportal.com/c/33464/f/581992/index.rss");
    ou

    2) Un fichier texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Urls = explode("\n", file_get_contents('rss.txt'));
    En faisant un print_r les 2 méthodes me génères bien un tableau :

    Cependant en mettant mes urls dans un fichier texte rss.txt, j'ai un message d'erreur à l'affichage de la page, alors que en les mettant dans un array PHP array() ca fonctionne nickel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Warning: file_get_contents(http://rss.lemonde.fr/c/205/f/3050/index.rss ): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad request in E:\WEB\Reftech\rss_php.php on line 53
    Je ne comprends absolument pas pourquoi, si vous avez une idée, merci d'avance.

    Ci-dessous le code PHP complet :

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
    		<link href="style_rss.css" rel="stylesheet" type="text/css" />
    		<title>RSS Reader</title>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    	</head>
    <body>
     
    <?php
    // Refresh Auto
    $delai=5; 
    $RefreshUrl=$_SERVER['PHP_SELF'];
    header("Refresh: $delai;Url=$RefreshUrl");
     
    // METHODE OK
    $Urls = array("http://rss.lemonde.fr/c/205/f/3050/index.rss","http://com.clubic.feedsportal.com/c/33464/f/581979/index.rss","http://com.clubic.feedsportal.com/c/33464/f/581992/index.rss");
     
    echo "<pre>";
    print_r($Urls);
    echo "</pre>";
     
    // METHODE NOK
    $Urls = explode("\n", file_get_contents('rss.txt'));
     
    echo "<pre>";
    print_r($Urls);
    echo "</pre>";
     
    // PROXY
    $opts = array
    (
    	'http' => array (
    	'proxy'=>'tcp://127.0.0.0:8080',
    	'request_fulluri' => true
    	),
    	'https' => array (
    	'proxy'=>'tcp://127.0.0.0:8080',
    	'request_fulluri' => true
    	)
    );	
     
    $stream = stream_context_create($opts);
     
    // Traitement et affichage
    Foreach ($Urls as $url_num => $url)
    {
     
    	//echo $url_num."</br>";
    	echo $url."</br>";
     
    	// Récupération des données
    	$rss = file_get_contents($url,false,$stream);	
    	$rss = simplexml_load_string($rss);
     
    	$count = 0; 
     
    	if($rss)
    	{
    		echo '<table>';
    		//echo "<tr><td><h3><a href=".$url." Target= '_blank'>".$url."</a></h3></td></tr>";
    		echo '<tr><td>'.$rss->channel->title.' ('.$rss->channel->pubDate.')</td></tr>';
    		echo '<tr>';
    		echo '<td>';
    		$items = $rss->channel->item;
    		foreach($items as $item)
    		{
    			$count++;
     
    			If ($count == 6)
    			{
    				break;
    			}
     
    				$title = $item->title;
    				$link = $item->link;
    				$published_on = $item->pubDate;
    				$description = $item->description;
     
    				echo '<h3><a href="'.$link.' "Target= "_blank">'.$title.'</a></h3>';
    				//echo 'Span --> <span>('.$published_on.')</span>';
    				//echo 'Paragraph --> <p>'.$description.'</p>';
    		}
    		echo '</td>';
    		echo '</tr>';
    		echo '</table></br>';
    	}	
     
    }
    ?>
     
    </body>
    </html>

  2. #2
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    il y a surement un espace a la fin de ton url "http://rss.lemonde.fr/c/205/f/3050/index.rss" dans le fichier
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut
    Bonjour,

    Merci pour ta réponse.

    Il n'y a pas d'espace malheureusement

    Dans mon fichier texte, si j'affiche les caractères spéciaux j'ai des retours à la ligne :

    Mais si je les enlèves en faisant ça, c'est idem avez vous une idée, merci d'avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $Urls = explode("\n", file_get_contents('rss.txt'));
     
    Foreach ($Urls as $url)
    {
        $url = str_replace("\r\n", "", $url);
        $url = str_replace("\r", "", $url);
        $url = preg_replace("/\n{2,}/", "", $url);
     
    	echo $url."</br>";
     
    }

  4. #4
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Warning: file_get_contents(http://rss.lemonde.fr/c/205/f/3050/index.rss_): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad request in E:\WEB\Reftech\rss_php.php on line 53
    il y a surement un caractère parasite
    tu fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Urls = explode("\n", file_get_contents('rss.txt'));
    est-tu sur que tes lignes du fichier text finissent bien par "\n" et pas "\r\n"
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut
    j'ai essayé avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $Urls = explode("\r\n", file_get_contents('rss.txt'));
    Idem :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: file_get_contents(http://rss.lemonde.fr/c/205/f/3050/index.rss): failed to open stream: Invalid argument in E:\WEB\Reftech\rss_php.php on line 65
    je ne comprends pas

  6. #6
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    tu peux poster ton fichier ?
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  7. #7
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut
    rss.txt

    Voila

    Merci encore pour ton aide.

  8. #8
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    ton fichier est encodé en utf8 avec BOM donc il y a des caractères invisible en debut de fichier
    il faut supprimer le BOM et cela fonctionnera
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  9. #9
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut
    ca fonctione !

    Merci patrick tu es mon sauveur !



    Effectivement UTF8 sans BOM ca marche nickel.

    Merci encore pour ton aide.

    Bon week end.

  10. #10
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    de rien, mais je fait pas la multiplication des pains et des poissons :-)
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

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

Discussions similaires

  1. Lecture fichier Flux RSS Externe
    Par Fooshi dans le forum Langage
    Réponses: 1
    Dernier message: 20/10/2011, 11h19
  2. [SP-2010] Lecture Flux RSS Sharepoint
    Par Montagna73 dans le forum SharePoint
    Réponses: 3
    Dernier message: 09/03/2011, 09h26
  3. Lecture flux RSS
    Par omelhor dans le forum Langage
    Réponses: 2
    Dernier message: 22/07/2010, 23h12
  4. Souhaite intégrer un flux rss externe
    Par didinet dans le forum Débuter
    Réponses: 1
    Dernier message: 25/04/2009, 15h13
  5. [SimpleXML] Lecture flux RSS
    Par ArHacKnIdE dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 16/03/2008, 00h50

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