【发布时间】:2011-12-15 07:54:25
【问题描述】:
谁能告诉为什么第二个 if 语句提取 soldby 名称不能正常工作?
我想要它做的是从图像中提取 alt 属性,如果有卖家的图像 - 这有效。但是,如果没有图像徽标,则会有一个带有卖家名称的粗体标签,我希望将其插入到数组中与 alt 标签相同的位置。
我正在使用的 HTML 是:http://amazon.com/gp/offer-listing/B002UYSHMM
谁能帮忙?
谢谢!
$item = array();
foreach ($html->find('div.resultsset table tbody.result tr') as $article) {
if ($article->find('span.price', 0)) {
// get retail
$item[$retail.$i++] = $article->find('span.price', 0)->plaintext;
// get soldby
if ($article->find('ul.sellerInformation img', 0)) {
$item[$soldby.$j++] = $article->find('ul.sellerInformation img', 0)->getAttribute('alt');
} else {
$item[$soldby.$j++] = $article->find('ul.sellerInformation li a b', 0)->plaintext;
}
$ret['SellerInfo'] = $item;
}
}
这是我从上面的代码中得到的数组:
Array ( [0] => Array ( [Retail] => $219.88 [SoldBy] => J&R Music and Computer World ) [1] => Array ( [Retail] => $234.21 [SoldBy] => PORTABLE GUY ) [2] => Array ( [Retail] => $235.73 [SoldBy] => The Price Pros ) [3] => Array ( [Retail] => $234.74 [SoldBy] => GizmosForLife ) [4] => Array ( [Retail] => $230.00 [SoldBy] => ) [5] => Array ( [Retail] => $198.73 [SoldBy] => ) [6] => Array ( [Retail] => $240.72 [SoldBy] => ) [7] => Array ( [Retail] => $248.99 [SoldBy] => onSale ) )
您可以看到它缺少 SoldBy for:
STEPHS 好书宝藏
Diakonos23
最佳房子
【问题讨论】:
-
你可能想要包含有问题的 HTML,我的心灵感应技能今天用完了……
-
糟糕!对不起,我在上面添加了一个链接。这是亚马逊优惠列表页面。
-
@GolezTrol 抱歉,这是我的错,问题是在我编辑以修复代码间距时由 OP 编辑的,我的编辑吃了他的。现已修复。
-
查看 html 我没有看到与
li a b匹配的内容 -
这匹配
li a b: STEPHS GREAT BOOK TEASURES
标签: php parsing dom html-parsing