ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
需要对模板输出使用函数进行过滤或其它处理的时候,可以使用: ~~~ {$data.name|md5} ~~~ 可以使用空格,例如下面的写法是一样的: ~~~ {$data.name | md5} ~~~ 编译后的结果是: ~~~ <?php echo htmlentities(md5($data['name'])); ?> ~~~ 其中`htmlentities`方法是系统默认添加的(无需手动指定。 > 为了避免出现XSS安全问题,默认的变量输出都会使用`htmlentities`方法进行转义输出。 你还可以设置默认的过滤方法,在配置文件`cmspro/plugin/depin.template/src/Template.php`中设置 ~~~ 'default_filter' => 'htmlspecialchars' ~~~ 就会默认使用`htmlspecialchars`方法过滤输出。 如果你不需要转义(例如你需要输出html表格等内容),可以使用: ~~~ {$data.name|raw} ~~~ 编译后的结果是: ~~~ <?php echo $data['name']; ?> ~~~ 系统内置了下面几个固定的过滤规则(不区分大小写) | 过滤方法 | 描述 | | --- | --- | | date | 日期格式化(支持各种时间类型) | | format | 字符串格式化 | | upper | 转换为大写 | | lower | 转换为小写 | | first | 输出数组的第一个元素 | | last | 输出数组的最后一个元素 | | default | 默认值 | | raw | 不使用(默认)转义 | 例如 ~~~ {$data.create_time|date='Y-m-d H:i'} {$data.number|format='%02d'} ~~~ 如果函数有多个参数需要调用,可以使用 ~~~ {$data.name|substr=0,3} ~~~ 表示输出 ~~~ <?php echo htmlentities(substr($data['name'],0,3)); ?> ~~~ 还可以支持多个函数过滤,多个函数之间用“|”分割即可,例如: ~~~ {$name|md5|upper|substr=0,3} ~~~ 编译后的结果是: ~~~ <?php echo htmlentities(substr(strtoupper(md5($name)),0,3)); ?> ~~~ 函数会按照从左到右的顺序依次调用(系统默认的过滤规则会在最后调用)。 > 变量输出使用的函数可以支持内置的PHP函数或者用户自定义函数,甚至是静态方法。 如果你觉得这样写起来比较麻烦,也可以直接这样写: ~~~ {:substr(strtoupper(md5($name)),0,3)} ~~~