首页 > 解决方案 > 替换字符串中的 {{word}}

问题描述

有一个字符串:$str = "Hello, {{first_name}} {{last_name}}!";

和数组$first, $last...中的变量

$trans = array("{{first_name}}" => $first, "{{last_name}}" => $last, "{{cart}}" => $crt1, "{{phone}}" => $phone, "{{adds}}" => $addr, "{{order_id}}" => $order_id);

如何更换{{first_name}}->$first{{last_name}}->$last

这是我所做的:

function replace_str($str, $trans)
{
    $subj = strtr($str, $trans);
    return $subj;
}

$cart = replace_str($str,$trans);

strtr不适用于西里尔字母 (utf-8)

标签: phparraysstringstr-replace

解决方案


你的代码很好。strtr()支持多字节字符串,但strtr(string, array)应使用数组形式。例子:

$str = "Hello {{first_name}}!";
$first_name = "мир.";
$trans = ['{{first_name}}' => $first_name];
echo strtr($str, $trans); // Hello мир.! 

推荐阅读