str 替换不适用于美元符号和 html 标签

str replace not work with dollar sign and html tags

我正在尝试替换此字符串中的一些文本(在 $ 登录 ins 标记之前添加 US) 前-

$mystring='<del><span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">$</span>49.00</span></del> <ins><span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">$</span>39.00</span></ins>';


echo str_replace('<ins><span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">$</span>39.00</span></ins>','<ins><span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">US$</span>39.00</span></ins>',$mystring);

但它似乎根本没有替换,我知道有 woocmmerce 函数可以添加前缀

但我需要这个而不用那些,

任何人都知道如何解决这个或更好的方法。谢谢

我们的输入应该是 当前输出是

49 美元39 美元

输出应该是

49 美元39 美元

请看一下,它会根据您需要的输出将最后一次出现的 $ 替换为 US$。

$mystring='<del>
<span class="woocommerce-Price-amount amount">
<span class="woocommerce-Price-currencySymbol">$</span>49.00</span></del>
<ins><span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">$</span>39</span></ins>';

echo str_lreplace('$','US$',$mystring);
function str_lreplace($search, $replace, $subject)
{
    $pos = strrpos($subject, $search);

    if($pos !== false)
    {
       $subject = substr_replace($subject, $replace, $pos, strlen($search));
    }

    return $subject;
}