我想从RETS服务器下载所有的属性列表,包括所有的照片URL。我正在使用DMQL2和PHRETS库。属性和照片对象存储在RETS服务器中的不同表中。
要获取所有照片,我知道我可以下载属性列表,然后循环遍历每个属性并检索每个属性的照片,如下所示:
$results = $rets->Search($resource, $class, $query);
foreach ($results as $r) {
$photos = $rets->GetObject('Property', 'Photo', $r->get('ListingID'), '*', 1);
foreach ($photos as $p) {
// Save the photo locations somewhere…
}
}这是令人难以置信的缓慢,因为有成千上万的属性。
是否可以通过连接属性和对象表(如LEFT JOIN中的MySQL)在一个查询中请求所有照片以及属性?
或者,是否有方法在一个请求中下载所有照片对象,这样我就可以使用它们的ListingID键将它们与属性关联起来?
还有其他更快获得所有数据的建议吗?
发布于 2020-03-18 08:11:52
部分可能,但目前无法在一个查询中下载全部照片和属性。
我们可以在一个查询中下载多个清单的图像。检查下面的示例查询。
$photos = $rets->GetObject("Property", "Photo", "12345,12346,12347", "*", 1);
foreach ($photos as $p) {
$listingId = $p['Content-ID']; // save photo based on each listingIds
//continue
}这里是第三个参数,我们可以提供逗号分隔的listingIds。因此,您可以将listingIds作为批处理传递。
注意:仍然保持提取速度。一些MLS板可以根据请求临时增加带宽。在这段时间内,试着提取完整的图像。
发布于 2019-12-09 18:56:31
你可以一次下载所有的照片。一些服务器还支持媒体资源和类,这些资源和类允许您获取用于列表或列表组的所有照片的URL。如果您的服务器支持这一点,我将使用它,因为它通常更快。
使用phrets,我认为一次下载所有图像如下所示:
$photos = $rets->GetObject("Property", "Photo", $record[ListingID], "*", 1);我抄袭了这个答案:PHRets: Using PHP to download real estate listing photos
https://stackoverflow.com/questions/59206487
复制相似问题