2013-07-26 33 views
0

我想从下面的脚本中拉出某个网站的值,但是我认为这不是一个有效的DOM文档,我想知道是否存在另一种方式?如何从网站拉取值(在PHP中使用cUrl)

 <?php 
     $curl_handle=curl_init(); 
     curl_setopt($curl_handle,CURLOPT_URL,'http://www.indiagoldrate.com/gold-rate-in-mumbai-today.htm'); 
     curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2); 
     curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1); 
     $buffer = curl_exec($curl_handle); 
     curl_close($curl_handle); 
     if (empty($buffer)) 
     { 
      print "Sorry, example.com are a bunch of poopy-heads.<p>"; 
     } 
     else 
     { 
      print $buffer; 
     } 
     ?> 
+0

没有可供金价API?我觉得不太可能 – 2013-07-26 04:38:01

+0

有,唯一的,我必须购买它! – user2613996

+0

好吧,它偷便宜 – 2013-07-26 04:43:31

回答

0

你试过file_get_contents试试这个,

$str= htmlentities(file_get_contents('http://www.indiagoldrate.com/gold-rate-in-mumbai-today.htm')); 

file-get-contents

+0

我试过以下,但没有成功: <?php $ data = file_get_contents('http://www.gitanjalijewels.com/category.php?id=39'); $ regex ='/ GOLD RATES ::(。+?),/'; preg_match($ regex,$ data,$ match); var_dump($ match); echo $ match [1]; ?> – user2613996

0

尽管在你的代码的页面(http://www.indiagoldrate.com/gold-rate-in-mumbai-today.htm)是不是一个有效的XML文档,你仍然可以使用PHP的解析它DOMDocument。 例如这里我们将今天得到1克22K黄金价格Mumbay城市:

libxml_use_internal_errors(true); //get rid of the warnings 

$dom = new DOMDocument; 
$dom->loadHTML($buffer); 
$xp = new DOMXPath($dom); 
$price = $xp->query('//*[@id="right_center"]/table[1]/tr[3]/td[2]/table/tr[1]/td[2]')->item(0)->nodeValue; 

libxml_clear_errors(); 
libxml_use_internal_errors(false); 

var_dump($price);