php - 替换字符串中的 {{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)
解决方案
你的代码很好。strtr()
支持多字节字符串,但strtr(string, array)
应使用数组形式。例子:
$str = "Hello {{first_name}}!";
$first_name = "мир.";
$trans = ['{{first_name}}' => $first_name];
echo strtr($str, $trans); // Hello мир.!
推荐阅读
- javascript - 无法在 Javascript 中删除对象属性
- .net - 机器人对话框不等待
- typescript - 在 Ionic 中转换为 HmacSHA256 中的字符串时出现不一致
- database - sqLite - 每个表或整个数据库文件的锁定?
- java - 从 Google Drive 下载文件 - 缺少方法?(爪哇)
- javascript - JavaScript:本地存储“布尔”未打开第一个函数调用
- html - 为什么我的链接说找不到文件?
- matlab - 如何使用 MATLAB 在结构内创建新字段?
- laravel-5 - 使用 laravel 黄昏测试 vuetify v-select
- javascript - 如何获取 j 查询中的下一个元素?