0

ページを取得して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"));

別のURLを試しても何も返されませんが、ページは正常に読み込まれるため、問題は行にあります$xml = simplexml_load_string($response);

このコードの何が問題になっている可能性がありますか?

4

1 に答える 1

1

あなたが何をしているのか正確に理解していない、あなたはアマゾンのウェブページをこすり取ろうとしているように見えますか?ブラウザでそのURLをプルアップすると、ヘッダーまたはドキュメント自体にXHTMLとしてリストされません。そうではないと思われます。simplexmlではそれを処理できないと思います。

(CURLはあなたに代わってXMLへの変換を行いますか?私はそうは思いませんが、私はCURLのすべてのマスターではありません。そうであれば、CURLの出力とどのsimplxmlの間の非互換性である可能性があります-これはかなり制限されています- -取り込みます)。

代わりにDOMDocumentを使用してみてください。ただし、私のPHPは少し古くなっている可能性があります。最近は、より優れたユーティリティがあるかもしれません。

簡単なグーグルでこのチュートリアルが表示されました

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

これは完全な答えではないと思いますが、コメントには少し多かったです。だから、一粒の塩と健康的な疑いのサービングでそれを取りなさい。それがいくつかのアイデアを刺激することを願っています。

于 2012-10-17T21:11:33.440 に答える