我正在使用http://otw.rets.interealty.com/Login.asmx/Login 我将图像作为 Binay 数据。如何将 RETS 中的二进制数据显示为图像。这是我的代码
$sysid = $data['sysid'];
$photos = $rets->GetObject("Property", "Photo", $sysid, "*", 1);
echo $photos[0]['Data'];
我正在使用http://otw.rets.interealty.com/Login.asmx/Login 我将图像作为 Binay 数据。如何将 RETS 中的二进制数据显示为图像。这是我的代码
$sysid = $data['sysid'];
$photos = $rets->GetObject("Property", "Photo", $sysid, "*", 1);
echo $photos[0]['Data'];
我会查看您返回的结果/数据的内容类型。我会用各自的类型(.jpg、.bmp)保存每个文件,然后在你的 PHP 代码中引用保存的文件。
根据 GetObject 的 PHRETS 文档,GetObject中的最后一个参数 $location 可以是“0”或“1”。“1”返回图像的 URL 字符串,“0”返回二进制图像数据。
#1 编码图像数据并输出到浏览器而不保存到文件。从这个 SO question
$photos = $rets->GetObject("Property", "Photo", $sysid, "*", 0);
foreach ($photos as $photo)
{
if ($photo['Success'] == true)
{
$contentType = $photo['Content-Type'];
$base64 = base64_encode($photo['Data']);
echo "<img src='data:{$contentType};base64," . $base64 . "' />";
}
else
{
echo "({$photo['Content-ID']}-{$photo['Object-ID']}): {$photo['ReplyCode']} = {$photo['ReplyText']}<br />";
}
}
#2 将图像保存到文件然后显示。来自 PHRETS
$photos = $rets->GetObject("Property", "Photo", $sysid, "*", 0);
foreach ($photos as $photo)
{
if ($photo['Success'] == true)
{
file_put_contents("image-{$listing}-{$number}.jpg", $photo['Data']);
echo "<img src='image-{$listing}-{$number}.jpg' />";
}
else
{
echo "({$photo['Content-ID']}-{$photo['Object-ID']}): {$photo['ReplyCode']} = {$photo['ReplyText']}<br />";
}
}
这些答案中已经有一些很好的信息。
为了解决您后面的问题,Interealty 服务器不支持分页。要使用关键索引,您必须:
1) 使用 RETS/1.7.2 或更高版本 2) 在 SearchRequest 中指定 Limit => NONE 3) 在 SearchRequest 中的 Select 参数中仅给出关键索引标识的字段
如果你做对了这 3 件事,服务器应该暂停它的每响应记录限制。