查找字符串并将其值保存在字符串中

时间:2014-08-26 13:19:29

标签: php string find save ebay

我想通过网址在易趣中找到有关事物的信息。

我尝试了这个,但它不起作用:

<?php
$web = file_get_contents('http://www.ebay.com/itm/7-inch-Android-4-2-A13-Capacitive-Touch-Screen-WiFi-Tablet-PC-Front-Camera-8GB/361031774590');
$title = preg_replace('~(.*)<span class="g-hdn">(.*)</span>~','',$web);
$title = preg_replace('~</h1><h2 id="subTitle" class="it-sttl">(.*)~','',$title);
echo $title;
?>

2 个答案:

答案 0 :(得分:0)

或者,您也可以使用(作为halfer建议)DOMDocument和xpath来获取它们,并且更容易使用它们的id。例如:

$url = 'http://www.ebay.com/itm/7-inch-Android-4-2-A13-Capacitive-Touch-Screen-WiFi-Tablet-PC-Front-Camera-8GB/361031774590';
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTMLFile($url);
libxml_clear_errors();
$xpath = new DOMXPath($dom);
$title = $xpath->query('//h1[@id="itemTitle"]')->item(0)->lastChild->nodeValue;
$description = $xpath->query('//h2[@id="subTitle"]')->item(0)->nodeValue;

echo $title . '<br/>';
echo $description;

答案 1 :(得分:0)

我认为更好的方法是从URL中提取项目编号,然后对eBay进行API调用以检索项目信息。 (eBay API可以免费注册,您可以立即开始使用。)

从URL中提取项目#的快捷方法是提取前10-13位数字。会有一些罕见的边缘情况,这不起作用(如项目标题中的长部件号),但我不担心。

您也可以考虑使用eBay的RSS源来检索您想要的数据,而不是API。