2010-07-08 3 views
0
<?php 

ini_set("display_errors", 1); 
error_reporting(E_ALL); 

define ('HOSTNAME', 'http://rss.news.yahoo.com/rss/world'); 

//$path = ($_POST['rss_path']) ? $_POST['rss_path'] : $_GET['rss_path']; 
//$url = HOSTNAME.$path; 
$url = HOSTNAME; 

// Open the Curl session 
$session = curl_init(); 
curl_setopt($session, CURLOPT_URL, $url); 


// If it's a POST, put the POST data in the body 
/* 
if (isset($_POST['rss_path'])) { 
    $postvars = ''; 
    while ($element = current($_POST)) { 
     $postvars .= urlencode(key($_POST)).'='.urlencode($element).'&'; 
     next($_POST); 
    } 
    curl_setopt ($session, CURLOPT_POST, true); 
    curl_setopt ($session, CURLOPT_POSTFIELDS, $postvars); 
} 
*/ 

curl_setopt ($session, CURLOPT_POST, true); 
curl_setopt($session, CURLOPT_HEADER, false); 
curl_setopt($session, CURLOPT_RETURNTRANSFER, true); 



$xml = curl_exec($session); 

if(curl_errno($session)) { 
    echo 'Curl error: ' . curl_error($session); 
} 



header("Content-Type: text/xml"); 

echo $xml; 
curl_close($session); 

?> 

Des idées?Je reçois cette erreur lors de l'utilisation des extensions curl Erreur Curl: Impossible de résoudre l'hôte: http://rss.news.yahoo.com; Aucun enregistrement de données du type demandé

Répondre

0

http://rss.news.yahoo.com/rss/world n'est pas un nom d'hôte. La partie hôte est rss.news.yahoo.com.

Cela dit, votre code fonctionne (ce qui a été commenté a laissé des commentaires). Voir http://codepad.viper-7.com/j1U3jC

Tim fait un bon point. Vous ne devriez pas faire une demande POST. Même si cela "fonctionne", cela interfère avec la possibilité de mettre en cache la requête.

+0

Etrange chose ici est le même code fonctionne sur un serveur (serveur de transfert - PHP 5.2.6) et ne fonctionne pas sur l'autre serveur (serveur de production - PHP 5.2.6). Les deux serveurs ont la même configuration. – Praveen

Questions connexes