Ben iki işaret arasındaki bir dize eklemek için bir şartı var.
Başlangıçta ben kullanıyorum # DATA # ve # # END arasındaki (sunucuda saklanan bir dosya) bir acı olsun:
function getStringBetweenStrings($string,$start,$end){
$startsAt=strpos($string,$start)+strlen($start);
$endsAt=strpos($string,$end, $startsAt);
return substr($string,$startsAt,$endsAt-$startsAt);
}
Ben bazı işlemleri yapmak ve bazı kayıtlar için dize, sorgunun detayları dayalı. Kayıtlar varsa ben dizenin sonuna ekledim ve daha sonra sunucudaki dosya içinde # DATA # ve # # END arasındaki dize tekrar eklemek gerekiyor.
En iyi nasıl elde edebilirsiniz?
O # # END önce dosyada bir anda bir kayıt eklemek mümkün mü ya da sunucu üzerinde dize işlemek ve sadece sunucu üzerinde dosyada mevcut dize üzerinde yeniden insert için en iyisidir?
Verilerin Örnek:
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#
Ben yeni özellikleri kontrol, ben aşağıdakileri yapın:
- # DATA # ve # # END arasındaki mevcut tüm özelliklerini alın
- Özellikleri kimliklerini almak ve bu kimlikleri eşleşmiyor yeni özellikleri sorgulamak
Daha sonra # # END ama önce dosyasındaki son özellik sonra yeni özellikler yeniden takmanız gerekir.
Dosyanın yapısı Rightmove BLM dosyasıdır.