首页 > 解决方案 > 在自定义“简码”上解析 php 字符串

问题描述

我试图了解如何在 PHP 中为短代码创建自定义解析器,但我需要有关使用哪个 php 函数(甚至可能是 php 库)的说明。

例如,我有一个这种格式的字符串:

Hello {user.name}, your CODE is {user.code}

我提前准备了带有自定义“简码”(用户名、ID、地址等)的电子邮件模板。我想动态检查字符串是否有简码,并替换数据库中真实数据上的所有简码。

标签: phpregextemplates

解决方案


首先,我宁愿称它们为“占位符”(要替换的字符串)而不是“短代码”(执行较大代码的短代码)。

我假设您有一个固定的可能占位符列表?

您可以传递占位符及其替换的完整列表:

$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);

如果列表中的任何占位符在字符串中不存在,它将被忽略。


推荐阅读