PHrets — Использование PHP для создания таблиц mysql из rets — Script

Я нашел этот фрагмент кода онлайн, который подключится к каналу rets и создаст таблицы MySQL.

<?php

/* Raw example on how to use phrets to generate the necessary sql code
for mysql tables generation from rets.
Works for me*/

require ('phrets0.6.1.php');


$rets = new phRETS;

$Host = 'http://demo.crt.realtors.org:6103/rets/login';
$Account = 'Joe';
$Password = 'Schmoe';
$User_Agent = 'RETS_class/1.0';
$Rets_Version = 'RETS/1.5' ;



$rets->AddHeader("Accept", "*/*");
$rets->AddHeader("RETS-Version", "$Rets_Version");
$rets->AddHeader("User-Agent", "$User_Agent");
$rets->SetParam("cookie_file", "phrets_cookies.txt");
//$rets->SetParam("debug_mode", TRUE); // ends up in rets_debug.txt


$rets->Connect($Host,$Account,$Password);
$ResourcesInfo1 = $rets->GetMetadataInfo();
$MetadataInfo1 = $rets->GetMetadataTypes();
/*testing4GetTables*/
function GetTables($ResourcesInfo, $MetadataInfo) {
/*        Put toghether all the rets info needed for database tables creation
in an array. */
foreach ($MetadataInfo as $key => $value){
$Resource = $value['Resource'];
foreach ($value['Data'] as $key){
$tables[$key['Description']] = array(
'ResourceID' => $Resource,
'Description' => $key['Description'],
'ClassName' => $key['ClassName'] ,
'KeyField' => $ResourcesInfo[$Resource]['KeyField'],
'ClassCount' => $ResourcesInfo[$Resource]['ClassCount']
);
}

}
return $tables;
}

function CreateMysqlTables ($ResourcesInfo, $MetadataInfo, $class){
/*function providing the mysql code needed to create mysqltables.
to be run as the script on the commande line for nicer output*/
$table = GetTables($ResourcesInfo, $MetadataInfo);

foreach ($table as $key => $value){

$TablesAndFields[$value['Description']] = $class-
>GetMetadata($value['ResourceID'],$value['ClassName']);
}

foreach ($TablesAndFields as $key => $value){
$find = array ('/ /', '/-/');
$TableName = preg_replace($find, "_", $key);
echo "\n\r CREATE TABLE IF NOT EXISTS $TableName  (\n\r";
foreach ( $value as $key2 => $value2){
echo "`$value2[SystemName]` ";
ConvertTypeToMysql($value2[DataType], $value2[MaximumLength]);
}
echo "`MyNewTablesTimeStamp` timestamp NOT NULL default
CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,\n\r";
echo " PRIMARY KEY (".$table[$key]['KeyField']."));\n\r";
}
}

function ConvertTypeToMysql($datatype, $datalenght){
/*        This function  to convert mls datatype and datalenght to mysql.
Change to fit your needs works for me: db2 to mysql (flexmls)*/
switch ($datatype){
case "Character":
if ($datalenght >= 255){
echo "text  collate utf8_unicode_ci default NULL, \n\r";

}
elseif (!$datalenght){
echo "$datatype(25) collate utf8_unicode_ci default NULL, \n\r";

}
else {
echo "$datatype($datalenght) collate utf8_unicode_ci default NULL,
\n\r";

}

break;

case "Decimal":

echo "$datatype($datalenght,0) default NULL, \n\r";
break;

case "Int":

echo "$datatype($datalenght) default NULL, \n\r";
break;

case "Long":
/*                note:if I put this case after case ("Date" or "Boolean"): it won't
work, Why? is Long a Boolean?'*/
echo "LONGTEXT collate utf8_unicode_ci default NULL, \n\r";
break;

case ("Date" or "Boolean"):

echo "$datatype default NULL, \n\r";
break;


}

}
CreateMysqlTables ($ResourcesInfo1, $MetadataInfo1, $rets);

$rets->Disconnect();

?>

Извините за длинный кусок кода.

Я установил соединение с моим сайтом WordPress через FTP, используя мою IDE, и загрузил туда файлы PHrets.

Моя конечная цель — заполнить базу данных mysql всеми списками в канале rets, а затем заставить мой веб-сайт отключаться от этого, пока база данных обновляется, часто проверяя наличие обновленных или новых списков.

Если бы кто-нибудь мог указать мне правильное направление, я был бы очень признателен.

0

Решение

Хорошо, прежде чем я предложу несколько советов, вот простой путь, когда вы хотите работать по правилам IDX (то есть это не относится к VOW). Забудьте о RETS и получите свой собственный фид данных. Возможно, использование провайдера IDX — лучший способ получить ваши данные. Взгляните на эти два: IDX Broker http://www.idxbroker.com/mls/florida-keys-mls-flkmls или же http://www.diversesolutions.com/idx-coverage/floridakeysmls-410. Я не уверен, что это ваш MLS, и есть еще несколько провайдеров IDX. Вы должны иметь возможность получить полный список разговоров с вашим MLS, потому что провайдеры IDX должны зарегистрироваться на каждом MLS.

Если вы хотите или нуждаетесь в собственном фиде RETS и БД, вот несколько указателей

  • Я использовал PHRETS один раз несколько лет назад — с тех пор я создал свой собственный клиент. Я не обновляюсь на PHRETS, но похоже, что вы используете очень старый клиент phrets0.6.1.php, Вы должны взглянуть на https://github.com/troydavisson/PHRETS и версия 2.
  • Посмотрите на его вики-страницы для получения дополнительной информации https://github.com/troydavisson/PHRETS/wiki
  • Если вы хотите узнать больше о RETS, вы можете найти больше в RESO (Организация по стандартам недвижимости) и их спецификации здесь http://www.reso.org/specifications. Уточните у своего MLS, какую версию RETS они используют.
  • Хотя RETS как стандарт должен помочь вам получить данные (поскольку это протокол передачи), он не определяет, как форматировать фактические данные с помощью канала. RESO уже более десяти лет работает над словарем RESO, который должен нормализовать данные по всем MLS, но это все еще в работе, и мы никогда не узнаем, сколько времени потребуется всем 900+ MLS для принятия этого стандарта.
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]