答案 0 :(得分:-1)
function findTag($str,$replaceTag = []){
if(!$str){
return false;
}
$end = strlen($str);
$i=0;
while($i<=$end){
if(!isset($str[$i])){
break;
}
//Find tag
if($str[$i]=='{'){
$tag = '';
for($j=$i+1;$j<=$end;$j++){
if($str[$j]=='}'){
break;
}
//Check nested tag {xyz{abc}efg}
if($str[$j]=='{'){
return -1;//use nested tag
}
$tag.=$str[$j];
}
if(!isset($replaceTag[$tag])){
return -2;//invalid tag you can skip or prevent string parsing
}
//Replace tag with value
$str = substr_replace($str,$replaceTag[$tag],$i,$j);
$i=$j;
}
$i++;
}
return $str;
}
$str = 'Customer name : {tag1}, thank you for your {tag{tag2}}';
$replaceTag = ['tag1'=>' tag 1 value'];
var_dump(findTag($str,$replaceTag));