2 つのマーカーの間に文字列を挿入する必要があります。
最初に、次を使用して #DATA# と #END# の間に (サーバーに保存されているファイルから) 刺されます。
function getStringBetweenStrings($string,$start,$end){
$startsAt=strpos($string,$start)+strlen($start);
$endsAt=strpos($string,$end, $startsAt);
return substr($string,$startsAt,$endsAt-$startsAt);
}
いくつかの処理を行い、文字列の詳細に基づいて、いくつかのレコードをクエリします。レコードがある場合は、それらを文字列の末尾に追加し、サーバー上のファイル内の #DATA# と #END# の間に文字列を再挿入できるようにする必要があります。
どうすればこれを達成できますか?
#END# の前に一度に 1 つのレコードをファイルに挿入することはできますか?それとも、サーバー上の文字列を操作して、サーバー上のファイルの既存の文字列を上書きするだけでよいでしょうか?
データの例:
AGENT_REF^ADDRESS_1^ADDRESS_2^ADDRESS_3^ADDRESS_4^TOWN^POSTCODE1^POSTCODE2^SUMMARY^DESCRIPTION^BRANCH_ID^STATUS_ID^BEDROOMS^PRICE^PROP_SUB_ID^CREATE_DATE^UPDATE_DATE^DISPLAY_ADDRESS^PUBLISHED_FLAG^LET_RENT_FREQUENCY^TRANS_TYPE_ID^NEW_HOME_FLAG^MEDIA_IMAGE_00^MEDIA_IMAGE_TEXT_00^MEDIA_IMAGE_01^MEDIA_IMAGE_TEXT_01^~
#DATA#
//Property records would appear here and match the string above, each field separated with ^ and terminating with ~
//Once the end of data has been reached, it will be fully terminated with:
#END#
新しいプロパティを確認するときは、次のことを行います。
- #DATA# と #END# の間のすべての既存のプロパティを取得します
- プロパティの ID を取得し、これらの ID に一致しない新しいプロパティをクエリします
次に、#END# の前で、ファイルの最後のプロパティの後に、新しいプロパティを再挿入する必要があります。
ファイルの構造は、Rightmove BLM ファイルです。