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>