0

我仍在为客户端开发此目录,它通过 PHP 和 Simple DOM Parser 从远程站点加载图像。

// Code excerpt from http://internetvolk.de/fileadmin/template/res/scrape.php, this is just one case of a select

$subcat = $_GET['subcat'];
$url = "http://pinesite.com/meubelen/index.php?".$subcat."&lang=de";
$html = file_get_html(html_entity_decode($url));
$iframe = $html->find('iframe',0);
$url2 = $iframe->src;
$html->clear(); 
unset($html);
$fullurl = "http://pinesite.com/meubelen/".$url2;
$html2 = file_get_html(html_entity_decode($fullurl));
$pagecount = 1;
$titles = $html2->find('.tekst');
$images = $html2->find('.plaatje');
$output='';
$i=0;
foreach ($images as $image) {
$item['title'] = $titles[$i]->find('p',0)->plaintext;
$imagePath = $image->find('img',0)->src;
$item['thumb'] = resize("http://pinesite.com".str_replace('thumb_','',$imagePath),array("w"=>225, "h"=>162));
$item['image'] = 'http://pinesite.com'.str_replace('thumb_','',$imagePath);
$fullurl2 = "http://pinesite.com/meubelen/prog/showpic.php?src=".str_replace('thumb_','',$imagePath)."&taal=de";
$html3 = file_get_html($fullurl2);
$item['size'] = str_replace('  ','',$html3->find('td',1)->plaintext);
unset($html3);
$output[] = $item;
$i++;
}
if (count($html2->find('center')) > 1) {
// ok, multi-page here, let's find out how many there are
$pagecount = count($html2->find('center',0)->find('a'))-1;
for ($i=1;$i<$pagecount; $i++) {
$startID = $i*20;
$newurl = html_entity_decode($fullurl."&beginrec=".$startID);
$html3 = file_get_html($newurl);
$titles = $html3->find('.tekst');
$images = $html3->find('.plaatje');
$a=0;
foreach ($images as $image) {
$item['title'] = $titles[$a]->find('p',0)->plaintext;
$item['image'] = 'http://pinesite.com'.str_replace('thumb_','',$image->find('img',0)->src);
$item['thumb'] = resize($item['image'],array("w"=>225, "h"=>150));
$output[] = $item;
$a++;
}
$html3->clear();
unset ($html3);
}
}
echo json_encode($output);

那么它应该做什么(并且对某些类别做):从这个页面输出图像、标题和缩略图:http: //pinesite.com

例如,如果您将其传递给“?function=images&subcat=antiek”,则此方法有效,但如果您将其传递给“?function=images&subcat=stoelen”,则无效。我什至不认为这是远程页面的问题,所以我的代码中一定有错误。

4

2 回答 2

0

事实证明,我的代码完全没问题,它是远程站点的 HTML 中缺少的空间,导致 Simple PHP DOM Parser 无法识别我正在寻找的 iframe。我通过首先在代码上运行 str_replace 以替换错误代码来修复它。

我知道这是一个肮脏的解决方案,但它有效:)

于 2012-05-16T23:52:26.590 回答
0

嗯..试图说明明显的可能但“偷窃”?

于 2012-05-05T20:34:35.370 回答