php实现占位符模板替换

只学一点点 / 2023-05-24 / 原文

php实现占位符模板替换

对接过微信模板消息,或者阿里大于接口的,应该都知道,三方会给你一些模板,模板里有一些占位符,你只需要按照模板里的占位符填充参数即可。

demo,实现一个地址跳转系统

用户提供域名和路径参数,系统配置模板即可,用户传参即可替换。

// 用户提供的参数
$patterns = 'url-m-baidu-go';

// 模板替换
$str = 'https://{1}.{2}.com/{3}';
if (preg_match('/{\d+}/', $str) > 0) {
    $replacementArr = explode('-', $patterns);
    // url m baidu go
    $patternArr = array_map(
        function ($key) {
            return sprintf('/\{%d\}/', $key);
        },
        array_keys($replacementArr)
    );
    // /\{0\}/ /\{1\}/ /\{2\}/ /\{3\}/
    $str = preg_replace($patternArr, $replacementArr, $str);
    // https://m.baidu.com/go
}