版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34827048/article/details/70761817
云片网自定义的模版内容变量不唯一,可能存在多个!云片的变量是固定格式为# #
下面有两种方法可替换
(1)第一种替换方式比较简单
//模版的替换
public function postTempReplace(Request $request)
{
$tpl_content="恭喜您,注册成功,用户名:#user#密码#password#,请#school#妥善保管";
//接收模版的里面的变量
$replace_content=$request->input();
//计算短信模版中有多少需要替换的内容变量
$replace=substr_count($tpl_content,'#');
//计算几个变量
$number=intval(floor($replace/2));
//重复,去除,分割数组(由内到外)
$pattern=explode(',', rtrim(str_repeat("/#\w+#/,", $number),','));
//正则匹配
$tpl_content = preg_replace($pattern, $replace_content, $tpl_content , 1);
return $tpl_content;
}
替换后的内容格式:"恭喜您,注册成功,用户名:张三,密码abc,请 自己 妥善保管"
(2)第二种替换方式
public function param($content)
{
$tpl_content="恭喜您,注册成功,用户名:#user#密码#password#,请妥善保管";
$arr = explode('#', $content);
//接受要替换的变量内容
$replace_content=$request->input();
for ($i = 0; $i < count($arr); ++$i) {
$mb = mb_strlen($arr[$i], 'gbk');
$st = strlen($arr[$i]);
if ($st == $mb) {
foreach ($post as $key => $value) {
if ($arr[$i] == $key) {
$content = str_replace("#{$arr[$i]}#", htmlspecialchars($value), $content);
}
}
if ($arr[$i] == 'code') {
$content = str_replace('#code#', mt_rand(1000, 9999), $content);
}
}
}
return $content;
}
替换后的内容格式:"恭喜您,注册成功,用户名:李四,密码abc,请妥善保管"