php - 在自定义“简码”上解析 php 字符串
问题描述
我试图了解如何在 PHP 中为短代码创建自定义解析器,但我需要有关使用哪个 php 函数(甚至可能是 php 库)的说明。
例如,我有一个这种格式的字符串:
Hello {user.name}, your CODE is {user.code}
我提前准备了带有自定义“简码”(用户名、ID、地址等)的电子邮件模板。我想动态检查字符串是否有简码,并替换数据库中真实数据上的所有简码。
解决方案
首先,我宁愿称它们为“占位符”(要替换的字符串)而不是“短代码”(执行较大代码的短代码)。
我假设您有一个固定的可能占位符列表?
您可以传递占位符及其替换的完整列表:
$placeholders = [
'{user.name}',
'{user.code}',
'{user.foo}',
...
];
// Change the replacements to be the correct values from where you have them
$replacements = [
$user->name,
$user->code,
$user->foo,
....
];
$string = str_replace($placeholders, $replacements, $string);
如果列表中的任何占位符在字符串中不存在,它将被忽略。
推荐阅读
- html - HTML页面滚动条考虑隐藏内容
- wso2 - Devportal 组合框中的“localhost”不使用我的 VMware 的 IP 地址,但页面的 URL 可以
- mongodb - 尝试在 Kubernetes 上部署 MongoDB 时出现 U_STRINGPREP_PROHIBITED_ERROR
- devops - 如何使用 Bitbucket 管道部署 Laravel 应用程序
- mysql - 无法更改日期格式 SQL
- notepad++ - 使用 Notepad++ 查找和替换带有换行符的字符串
- python - 在 Ubuntu 上安装 Oh My Zsh 后:执行 Jupyter 命令“实验室”时出错:[Errno 2] 没有这样的文件或目录
- javascript - 如何在我们的后端验证 shopify 商店
- python - 我给应用程序的路径给出了错误
- reactjs - TS 坚持我的 `useMemo` 函数返回 `null[]`