我需要在两个标记之间插入一个字符串。
最初,我在 #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# 之前的文件中一次插入一条记录,还是最好在服务器上操作字符串并重新插入服务器上文件中的现有字符串?
数据示例:
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 文件。