PHP替换字符串中两个字符串之间的文本



我正在尝试替换284^A0N,30,24^FD^FS ^FO22,314之间的字符串

示例:^FO22,284^FT22,284^A0N,30,24^FDADRIAN ROY BAGUIO^FS ^FO22,314^FT22

在上面的字符串中,我想用另一个名字代替阿德里安·罗伊·巴乔。

我试过下面的,但没有成功。

$search = "/(284^A0N,30,24^FD)(.*?)(^FS ^FO22,314)/";    
echo preg_replace($search,$firstname,$content);

我遗漏了什么吗?

我找到了一个解决方案,但不确定它是否是最好的,但它能完成任务。

//Replacing First & Last Name
$firstRep = FindReplace($content,"284^A0N,30,24^FD", "FO22,314", $firstname." ".$lastname);
function FindReplace($content,$tagOne,$tagTwo,$reppar)
{
$startTagPos = strrpos($content, $tagOne);
$endTagPos = strrpos($content, $tagTwo);
$tagLength = $endTagPos - $startTagPos + 1;
$text = substr_replace($content, $tagOne.$reppar.'^FS ^'.$tagTwo, $startTagPos, $tagLength);    
return $text;
}

最新更新