Php 替换字符串中的{word}}

Php 替换字符串中的{word}},php,arrays,string,str-replace,Php,Arrays,String,Str Replace,有一个字符串:$str=Hello,{{first_name}}{{last_name}} 变量$first,$last。。。排列 如何替换{{first_name}}->$first、{{last_name}}->$last 以下是我所做的: function replace_str($str, $trans) { $subj = strtr($str, $trans); return $subj; } $cart = replace_str($str,$trans); 但

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

变量$first,$last。。。排列

如何替换{{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一起使用,你可以解决你的问题

$str = "Hello, {{first_name}} {{last_name}}!";
$str1 = str_replace("{{first_name}}",$first,$str);
$str2 = str_replace("{{last_name}}",$last,$str1);
echo $str2;
首先我在$str中将{First_name}替换为$First,然后在$str1中将{last_name}替换为$last。

您的代码很好。支持多字节字符串,但应使用数组形式strtrstring,array。例如:

$str = "Hello {{first_name}}!";
$first_name = "мир.";
$trans = ['{{first_name}}' => $first_name];
echo strtr($str, $trans); // Hello мир.! 
对于不区分大小写的版本,可以使用或

这里的示例作为您的代码

str_replace(array_keys($trans), $trans, $str);
您可以使用str\u替换为array\u键

PHP代码:

检查以下位置的输出:

参考:


I您可以将str_replace函数与数组一起使用它是一个本机函数:^return str_replacearray_key$trans,$trans,$str;没有帮助吗?不需要在第二个参数中设置数组_值。
str_replace(array_keys($trans), $trans, $str);
<?php
$str = "Hello, {{first_name}} {{last_name}}!";
$first = "ХѠЦЧШЩЪЪІ";
$last = "ЬѢꙖѤЮѪ";
$crt1 = "";
$phone = "";
$addr = "";
$order_id = "";
$trans = array("{{first_name}}" => $first, "{{last_name}}" => $last, "{{cart}}" => $crt1, "{{phone}}" => $phone, "{{adds}}" => $addr, "{{order_id}}" => $order_id);

echo str_replace(array_keys($trans), array_values($trans), $str);