2012-05-05 34 views
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”,则不行。我甚至不认为这是远程页面的问题,所以我的代码必须有错误。

回答

0

Ehm ..试图说明明显可能但'stoele'?

+0

呀,它看起来像它应该是“stoelen”。 – ZeroOne

+0

是的,这只是一个错误的问题,它是'stoelen',但它仍然无效,它只是输出''。 –

+0

好的。也许错误的方法,但使用错误的值可能会导致他的问题,因此可以解决它。 – Maarten

0

事实证明,我的代码完全正常,它是远程站点的HTML中缺少的空间,它使Simple PHP DOM解析器无法识别我正在寻找的iframe。我通过在代码上首先运行str_replace来替换错误的代码,从而将它固定在我的最终目标上。

我知道这是一个肮脏的解决方案,但它的工作原理:)

相关问题