2013-07-08 54 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