2010-07-08 38 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); 

?> 

任何想法?使用curl擴展時遇到此錯誤Curl錯誤:無法解析主機:http://rss.news.yahoo.com;沒有請求類型的數據記錄

回答

0

http://rss.news.yahoo.com/rss/world不是主機名。主機部分是rss.news.yahoo.com

這就是說,你的代碼工作(什麼評論左評論)。請參閱http://codepad.viper-7.com/j1U3jC

Tim提供了一個很好的觀點。您不應該發出POST請求。即使它「有效」,它也會干擾緩存請求的能力。

+0

奇怪的事情在這裏是相同的代碼正在一臺服務器(登臺服務器 - PHP 5.2.6)而不是在其他服務器(生產服務器 - PHP 5.2.6)上工作。兩臺服務器都具有相同的配置。 – Praveen 2010-07-08 10:09:37

相關問題