2012-10-17 80 views
0

我抓住一個頁面,然後將其轉換成XML格式,使用功能IM低於頁沒有被轉換成XML格式

public function getXML($url){ 
    $ch = curl_init(); 
    //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
    //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $response = curl_exec($ch);  
    $xml = simplexml_load_string($response); 
    return $xml; 
} 

print_r($curl->getXML("http://www.amazon.co.uk/gp/offer-listing/0292783760/ref=tmm_pap_new_olp_sr?ie=UTF8&condition=used")); 

嘗試不同的網址,不返回任何結果,頁面加載罰款等等之後問題出在線$xml = simplexml_load_string($response);

這段代碼有什麼問題?

+0

當你啓用'error_reporting(E_ALL)'和'ini_set('display_errors',true)'時,你看到了什麼? – Kato

+0

@Kato很多錯誤,複製和粘貼太多了,但我得到了類似'Warning:simplexml_load_string():Entity:1408行:解析器錯誤:打開和結束標記不匹配:鏈接行...' –

+0

我可以問你爲什麼要轉換爲XML? – Baba

回答

1

不完全瞭解你的意圖,它看起來像你試圖刮掉亞馬遜網頁?如果我在瀏覽器中拉出該URL,它在頭文件或文檔本身中沒有列爲XHTML - 我懷疑它不是。我不認爲simplexml可以處理。我不這麼認爲,但我不是CURL的所有東西的主人,如果是這樣,它可能是CURL的輸出和什麼樣的simpxml之間的不兼容性 - 哪一個是相當有限的 - 將採取)。

您可以嘗試使用DOMDocument,儘管我的PHP可能有點過時 - 現在可能會有更好的實用程序。

A quick googling brought up this tutorial

<?php 
    $doc = new DOMDocument(); 
    $doc->strictErrorChecking = FALSE; 
    $doc->loadHTML($html); 
    $xml = simplexml_import_dom($doc); 
?> 

我不認爲這是一個完整的答案,但它是一個有點吃不消了評論;所以要帶上一粒鹽和一份健康的懷疑食品。我希望它能激發一些想法。