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();
?>
長いコードで申し訳ありません。
IDE を使用して FTP 経由で Wordpress サイトへの接続を確立し、そこに PHrets ファイルをロードしました。
私の最終的な目標は、rets フィードのすべてのリストを mysql データベースに入力し、データベースが更新されている間、更新されたリストまたは新しいリストを頻繁にチェックしながら、それから私のウェブサイトを動作させることです。
誰かが私を正しい方向に向けることができれば、私はそれを大いに感謝します.