【问题标题】:Is it possible to get all photo locations with properties when querying a RETS server using DMQL2?使用 DMQL2 查询 RETS 服务器时,是否可以获取所有具有属性的照片位置?
【发布时间】:2020-03-31 01:18:12
【问题描述】:

我想从 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…
    }
}

这非常慢,因为有成千上万个属性。

是否可以通过连接属性和对象表(如 MySQL 中的 LEFT JOIN)在单个查询中请求所有照片和属性?

或者,有没有办法在一个请求中下载所有个照片对象,这样我就可以使用它们的 ListingID 键将它们与属性相关联?

对于更快地获取所有数据还有其他建议吗?

【问题讨论】:

    标签: rets phrets dmql


    【解决方案1】:

    部分可能,但目前无法在单个查询中下载整张照片以及属性。

    我们可以在一个查询中下载多个列表的图像。检查下面的示例查询。

    $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 仍然保持提取速度。一些 MLS 板可能会根据要求临时增加带宽。在这段时间内尝试提取完整的图像。

    【讨论】:

      【解决方案2】:

      您可以一次下载所有照片。一些服务器还支持媒体资源和类,允许您获取列表或列表组的所有照片的 URL。如果您的服务器支持,我会使用它,因为它通常更快。

      使用 phrets,我认为一次下载所有图像看起来像这样:

      $photos = $rets->GetObject("Property", "Photo", $record[ListingID], "*", 1);
      

      我从这个 SO 答案中复制了它:PHRets: Using PHP to download real estate listing photos

      【讨论】:

      • 你好苗条。该代码工作正常,但它只检索由 MLS ID $record[ListingID] 指定的一个列表的图像。我想在一个查询中获取 all 列表的所有图像。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-10
      • 2020-07-21
      • 1970-01-01
      • 2020-07-14
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      相关资源
      最近更新 更多