所以我有一个来自Paragon的RETS数据源我试图使用phRETS库将所有这些数据转储为CSV。我已经尝试了许多不同的方法,通过dmql或libRETS从这个RETS源中转储数据,并且它们都不起作用。这里是我的php代码使用phRETS来尝试转储数据馈送。转储一个RETS数据源
现在它只是生成一个空的csv。这是终端显示的内容。 ?
- 连接到http://RETS URL HERE /登录可再生能源技术的版本=可再生能源技术/ 1.5为用户
- 连接
- 连接
- 物业:RE_1
- 查询:(LIST_87 = 1980-01-01T00:00:00+)限制:1000抵消:0
- 总共找到:0
- 做
- 查询:(LIST_87 = 1980-01-01T00:00:00+)限制:1000抵消:0
- 断开
我不会纳入正确的网址到RETS在这里养活,但它使用1.5版
<?php
$rets_login_url = "http://Insert RETS feed link /login?rets-version=rets/1.5";
$rets_username = "**************";
$rets_password = "**********";
// use http://retsmd.com to help determine the SystemName of the DateTime field which
// designates when a record was last modified
$rets_modtimestamp_field = "LIST_87";
// use http://retsmd.com to help determine the names of the classes you want to pull.
// these might be something like RE_1, RES, RESI, 1, etc.
$property_classes = array("RE_1");
// DateTime which is used to determine how far back to retrieve records.
// using a really old date so we can get everything
$previous_start_time = "1980-01-01T00:00:00";
//////////////////////////////
require_once("phrets.php");
// start rets connection
$rets = new phRETS;
echo "+ Connecting to {$rets_login_url} as {$rets_username}<br>\n";
$connect = $rets->Connect($rets_login_url, $rets_username, $rets_password);
if ($connect) {
echo " + Connected<br>\n";
}
else {
echo " + Not connected:<br>\n";
print_r($rets->Error());
exit;
}
foreach ($property_classes as $class) {
echo "+ Property:{$class}<br>\n";
$file_name = strtolower("property_{$class}.csv");
$fh = fopen($file_name, "w+");
$maxrows = true;
$offset = 0;
$limit = 1000;
$fields_order = array();
while ($maxrows) {
$query = "({$rets_modtimestamp_field}={$previous_start_time}+)";
// run RETS search
echo " + Query: {$query} Limit: {$limit} Offset: {$offset}<br>\n";
$search = $rets->SearchQuery("Property", $class, $query, array('Limit' => $limit, 'Offset' => $offset, 'Format' => 'COMPACT-DECODED', 'Count' => 1));
if ($rets->NumRows() > 0) {
if ($offset == 1) {
// print filename headers as first line
$fields_order = $rets->SearchGetFields($search);
fputcsv($fh, $fields_order);
}
// process results
while ($record = $rets->FetchRow($search)) {
$this_record = array();
foreach ($fields_order as $fo) {
$this_record[] = $record[$fo];
}
fputcsv($fh, $this_record);
}
$offset = ($offset + $rets->NumRows());
}
$maxrows = $rets->IsMaxrowsReached();
echo " + Total found: {$rets->TotalRecordsFound()}<br>\n";
$rets->FreeResult($search);
}
fclose($fh);
echo " - done<br>\n";
}
echo "+ Disconnecting<br>\n";
$rets->Disconnect();
问题的一部分是我得到这行代码的错误
require_once(“phrets.php”);
我没有这个文件,所以我GOOGLE了它,并从
发现phrets.php文件这可能是该文件的一个坏的版本,但我不知道。
如果有人知道如何在RETS Feed上执行数据转储,请让我知道。如果有比使用phRETS更好的方法,请告诉我。我真的只需要将我的RETS feed中的数据转储到csv或某物中。谢谢!
编辑:我将我的LIST_87更改为L_UPDATEDATE,它现在正在查找数据但未将其写入文件。我也将限制更改为200.这是我的终端现在显示的内容。
- 连接
- 性质:RE_1
- 查询:(L_UPDATEDATE = 1980-01-01T00:00:00+)极限:200偏移:0
- 总共找到:1193
- 查询:(L_UPDATEDATE = 1980-01-01T00:00:00+)限制:200抵消:200
- 实测值:1193
- 查询:(L_UPDATEDATE = 1980-01-01T00:00:00+)极限:200偏移:400
- 总共找到:1193
- 查询:(L_UPDATEDATE = 1980-01- 01T00:00:00+)极限:200偏移:600
- 总共找到:1193
- 查询:(L_UPDATEDATE = 1980-01-01T00:00:00+)极限:200偏移:800
- 合计:1193
- 查询:(L_UPDATEDATE = 1980-01-01T00:00:00+)极限:200偏移:1000
- 总共找到:1193
- 完成
- 断开
- 性质:RE_1
我创建的csv文件中仍然只有一个空表。
好吧所以我用RETS连接器可以告诉我一个如何转储数据的例子吗?我能够检索一些数据,但想要将整个Feed转储到文档中。我真正想要的是以csv的形式下载RETS feed。 – hinsonan