2013-07-08 82 views
0

這是當前的代碼,我爲了檢索特定產品的尺寸,但是當一個項目有多個下拉菜單,例如這個顏色的下拉菜單。您必須先選取顏色,然後再檢索該顏色的尺寸。我將需要檢索兩組數據;顏色和大小。如何從使用php的外部URL檢索數據?

看來如果我沒有誤認爲這個網站使用JSON結構。

我是一個非常新手學習,而且希望以使用PHP檢索數據下一步該怎麼做指導......

提前感謝! :)

<?php 
$doc = new DOMDocument(); 
@$doc ->loadHTMLFile('http://www.drjays.com/shop/P1543932/'); 

$xpath = new DOMXPath($doc); 
$size = $xpath->query('//*[contains(@class, \'product_dropdown\')]'); 

foreach ($size as $sizes) 
{ 
    echo $sizes->nodeValue .PHP_EOL; 
} 
?> 

更新:我能夠使用Google Chrome(開發人員工具)來檢索此信息。我相信這是確認它實際上是JSON。

"description" : "The Lace Inset Tie Front Woven Top by Apple Bottoms features:\r\n<br>\r\n<ul>\r\n<li> US sizing</li>\r\n<li> Pieced lace accents on shoulders</li>\r\n<li> Metal stud trim</li>\r\n<li> Two chest pockets</li>\r\n<li> Button-down closure</li>\r\n<li> Sleeveless cut</li>\r\n<li> Waist tie on front</li>\r\n\r\n<br>\r\n<b> Model is wearing size 1X</b>\r\n</ul>", 
     "sizes" : [ 
      { 
      "id" : "1533783", 
      "display" : "1X" 
      }, 
      { 
      "id" : " 

1533785", 
     "display" : "2X" 
     } 
    ] 
+1

閱讀函數'file_get_contents' –

+0

嗨@moeed,我沒有嘗試使用:$ datadj = json_decode(file_get_contents('http://www.drjays.com/shop/P1543932/'));但是,當我var_dump($ datadj);結果爲NULL – CuriousE

+0

@CuriousE嘗試'var_dump(file_get_contents('http://drjays.com/shop/P1543932'));'。它是否會返回您認爲應該返回的內容?你在這個頁面上放置的JSON是無效的json。它應該在開始處有一個'{',末尾應該有一個'}'。如果是這樣的話,就像'var_dump(json_decode('{'。file_get_contents('http://drjays.com/shop/P1543932/')。'}'));'會返回一個對象。如果你將一些不合法的JSON傳遞給'json_decode',它將返回'NULL'。 – Sumurai8

回答

0

我不認爲這是實際的JSON對象的網址,與谷歌瀏覽器開發工具,你可以找到對象的網址?

+0

嗯,名稱似乎被稱爲sitejson,當我將鼠標懸停在名稱上時,它顯示爲http://www.drjays.com/sitejson請求URL:http://www.drjays.com/sitejson 請求方法:POST 狀態代碼:200行 - 我希望這就是你要求的? – CuriousE

+0

似乎並不是這樣,你在什麼徘徊我想得到你在看什麼 – Dennis

+0

我在「網絡」選項卡,並且我有底部的「XHR」標籤檢查。當我清除所有請求並從產品中選擇一種顏色時,名稱sitejson顯示在左側,啓動器是jscombined.js:4 – CuriousE