2014-02-21 83 views
0

加載進料時,我有一個PHP代碼檢索一個DOMDocument一個原子進料(進料不會被保存到文件)基本認證用的DOMDocument

我需要開始使用基本認證用於檢索飼料。

是否有可能,還是必須先將文件保存到文件?

我的工作代碼:

$doc = new DOMDocument(); 
$doc->load($feedurl); 
$feed = $doc->getElementsByTagName("entry"); 

我已經試過這樣:

$context = stream_context_create(array(
    'http' => array(
     'header' => "Authorization: Basic " . base64_encode("$username:$password") 
    ) 
)); 


$doc = new DOMDocument(); 
$doc->load($feedurl, context); 
$feed = $doc->getElementsByTagName("entry"); 

但它不工作(我得到一個空$doc

任何人都知道如何做到這一點?

回答

0

您需要使用fopen來讀取飼料和直接傳遞的內容,以DOM文檔,像這樣:

$opts = array (
     'http' => array (
       'method' => "GET", 
       'header' => "Authorization: Basic " . base64_encode ("$username:$password") . 
         "\r\n" 
     ) 
); 

$context = stream_context_create ($opts); 

//read the feed 
$fp = fopen ($feedurl, 'r', false, $context); 

//here you got the content 
$context = stream_get_contents ($fp); 

fclose ($fp); 

$doc = new DOMDocument(); 

//load the content 
$doc->loadXML ($context); 

此外,PHP的捲曲比的fopen好,看到這一點:How do I make a request using HTTP basic authentication with PHP curl?