
1 swordmaster 2022 年 5 月 19 日 把双引号换成单引号 |
2 icebay 2022 年 5 月 19 日 用的双引号,被解析成变量值,换成单引号。 |
3 pota 2022 年 5 月 19 日 echo str_replace("{{$title}}", "$tit", $string); |
6 lizuoqiang 2022 年 5 月 19 日 $string = '高清贴图将《{$title}》 PC 版的画面'; $tit = '战车 2'; echo str_replace('{$title}', $tit, $string); |
7 icebay 2022 年 5 月 19 日 @tangknox1 #4 说说你想要的输出结果是什么? >>> $string = '高清贴图将《{$title}》 PC 版的画面'; => "高清贴图将《{$title}》 PC 版的画面" >>> $tit = '战车 2'; => "战车 2" >>> str_replace('{$title}', '$tit', $string); => "高清贴图将《$tit 》 PC 版的画面" >>> str_replace('{$title}', $tit, $string); => "高清贴图将《战车 2 》 PC 版的画面" |
8 pota 2022 年 5 月 19 日 绝了 没细看 你的$title 不是变量啊 echo str_replace("{\$title}", "$tit", $string) .PHP_EOL; echo str_replace('{$title}', "$tit", $string) .PHP_EOL; 正常情况下都会输出 => 高清贴图将《战车 2 》 PC 版的画面 |
9 tangknox1 OP @pota {$title} 是在文本内容里包含出现的,但是,同时这个 {$title} 又是 CMS 程序里模板引擎的一个标题调用标签,所以我要把他替换成别的。意思就是,必须把 {$title} 转换为文本类型然后用别的替换掉 |
10 tangknox1 OP @IceBay 哥,你们单独一个 PHP 文件里测试,肯定没问题,但是 {$title} 虽然是输出的文本内容,可 {$title} 同时也是我这套程序的模板引擎里的一个标题调用标签 {$title} 可以直接输出当前文章的标题。所以必须把这个{$title} 转为文本,然后用别的替换掉。 |
11 gesse 2022 年 5 月 19 日 |
12 tangknox1 OP @gesse $string 中的文本里出现的 {$title} 同时也是我程序里模板引擎的一个数据标签,所以,我在模板里替换{$title},程序会把它当作数据调用标签,只能想法删除掉他并改成别的 '{$title}' 是不行的,'{$title', 只能这样,去掉后面那个 } ,才行。 |
13 tangknox1 OP 感谢各位,,我用 echo $str = preg_replace("/\{[^\}]+\}/", "$tit", $string); 正则过滤了 花括号和里面内容,这样搞定了 |
14 gesse 2022 年 5 月 19 日 兄弟你如果年龄大于等于 28 岁,我觉得你可以转下产品或者其他岗位。 |
15 gesse 2022 年 5 月 19 日 真心的,我 10 年前开过培训学校,学生上千人, 现在保持联系的也很多。 从一些细枝末节我能知道一个人适不适合干程序。 |
16 tangknox1 OP @gesse 嘿嘿兄弟,我就没学过 PHP ,帖子里我也说了,小白一个,偶尔需要修改下程序里的代码,都是直接百度搜下案例,照着弄,也没看过什么 PHP 手册啥的。所以问的问题挺小白的。 |
17 justseemore 2022 年 5 月 19 日 试试 strtr? |
18 fuchish112 2022 年 5 月 20 日 <?php /** * 用上下文信息替换记录信息中的占位符 */ function interpolate($message, array $cOntext= array()) { // 构建一个花括号包含的键名的替换数组 $replace = array(); foreach ($context as $key => $val) { // 检查该值是否可以转换为字符串 if (!is_array($val) && (!is_object($val) || method_exists($val, '__toString'))) { $replace['{' . $key . '}'] = $val; } } // 替换记录信息中的占位符,最后返回修改后的记录信息。 return strtr($message, $replace); } // 含有带花括号占位符的记录信息。 $message = "User {username} created"; // 带有替换信息的上下文数组,键名为占位符名称,键值为替换值。 $cOntext= array('username' => 'bolivar'); // 输出 "User bolivar created" echo interpolate($message, $context); |