php Smarty模板大括号

2024-05-02 13:48
文章标签 模板 php 大括号 smarty

本文主要是介绍php Smarty模板大括号,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用 Smarty 模板的时候,通常都是用 ‘{’ 和 ‘}’ 作为定界符(delimiter)。
有时,我们需要在 html 代码里输出大括号,如果在模板里直接写出来,会被 Smarty 的解析器认为是定界符,然后会报错:
Smarty error : syntax error: unrecognized tag
无法识别的标签!
如何解决呢?

1 内置变量

在需要使用定界符的时候,可以通过 {ldelim},{rdelim}标签,或者 {$smarty.ldelim},{$smarty.rdelim}的变量来使用。

2 文本转义

我们经常会在 html 里写 javascript 函数,就不可避免地写大量的大括号,这个时候上面的解决方法就不适用了,Smarty 提供了一个转义一段代码的标签:{literal}…{/literal}
{literal}

function sayHello() {alert('Hello World!')}

{/literal}

3 修改默认定界符

<?php$smarty->left_delimiter = '<!--{';
$smarty->right_delimiter = '}-->';$smarty->assign('foo', 'bar');
$smarty->assign('name', 'Albert');
$smarty->display('example.tpl');?>

Smarty的默认定界符{ 和 }可以整齐地界定一般内容的显示。 然而你可以通过修改Smarty的 $left_delimiter 和 $right_delimiter 的变量值,设置更适合的定界符。
修改定界符会影响到全部模板代码和解析,请确保在修改前已清除了全部的缓存和编译文件。

4 加空格

在Smarty 3的模板中,如果‘{’和‘}’大括号里包含有空格,那么整个{}内容会被忽略,当然我们可以设置Smarty类变量$auto_literal=false来取消这种规则。【经测试,只要 { 后面有空格,就不会被解析】

参考:

Smarty 定界符 花括号 大括号 函数定义 转义
http://blog.csdn.net/sunlylorn/article/details/6319556

忽略Smarty解析
https://book.2cto.com/201305/22650.html

避免Smarty解析
https://www.smarty.net/docs/zh_CN/language.escaping.tpl

在php模板引擎smarty下输出大括号
http://blog.csdn.net/skfzc/article/details/48341375

这篇关于php Smarty模板大括号的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/954391

相关文章

C++的模板(八):子系统

平常所见的大部分模板代码,模板所传的参数类型,到了模板里面,或实例化为对象,或嵌入模板内部结构中,或在模板内又派生了子类。不管怎样,最终他们在模板内,直接或间接,都实例化成对象了。 但这不是唯一的用法。试想一下。如果在模板内限制调用参数类型的构造函数会发生什么?参数类的对象在模板内无法构造。他们只能从模板的成员函数传入。模板不保存这些对象或者只保存他们的指针。因为构造函数被分离,这些指针在模板外

记录AS混淆代码模板

开启混淆得先在build.gradle文件中把 minifyEnabled false改成true,以及shrinkResources true//去除无用的resource文件 这些是写在proguard-rules.pro文件内的 指定代码的压缩级别 -optimizationpasses 5 包明不混合大小写 -dontusemixedcaseclassnames 不去忽略非公共

PHP的基本语法有哪些?

PHP的基本语法包括以下几个方面: PHP标记:PHP脚本以<?php开始,以?>结束。这是PHP文件的默认文件扩展名是.php。 变量和常量:变量以$符号开头,其后是变量的名称。常量使用define()函数定义,例如define("常量名", 常量值);。 数据类型:PHP支持多种数据类型,如整型、浮点型、字符串型等。 注释:PHP支持单行注释(用//表示)和多行注释(用/* */表示

C++标准模板库STL介绍

STL的六大组成部分 STL(Standard Template Library)是 C++ 标准库中的一个重要组成部分,提供了丰富的通用数据结构和算法,使得 C++ 编程变得更加高效和方便。STL 包括了 6 大类组件,分别是算法(Algorithm)、容器(Container)、空间分配器(Allocator)、迭代器(Iterator)、函数对象(Functor)、适配器(Adapter)

HTML5文旅文化旅游网站模板源码

文章目录 1.设计来源文旅宣传1.1 登录界面演示1.2 注册界面演示1.3 首页界面演示1.4 文旅之行界面演示1.5 文旅之行文章内容界面演示1.6 关于我们界面演示1.7 文旅博客界面演示1.8 文旅博客文章内容界面演示1.9 联系我们界面演示 2.效果和源码2.1 动态效果2.2 源代码2.3 源码目录 源码下载万套模板,程序开发,在线开发,在线沟通 作者:xcLeigh

静态文件及模板

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501 1  静态文件 动态Web应用也会需要静态文件,通常是CSS和JavaScript文件。Flask可以向已经配置好的Web服务器提供静态文件,只要在包或模块所在的目录中创建一个名为s

php json_encode 大括号中括号

当array是一个从0开始的连续数组时,json_encode出来的结果是一个由[]括起来的字符串。 而当array是不从0开始或者不连续的数组时,json_encode出来的结果是一个由{}括起来的key-value模式的字符串。 当字符串为[1,1,1] 这种模式时,json_decode默认解析出来的结果是一个数组。 当字符串为{"1":1,"2":1} 这种模式时,json_

PHP序列化用到的构造:__sleep() __wakeup()

串行化serialize可以把变量包括对象,转化成连续bytes数据. 你可以将串行化后的变量存在一个文件里或在网络上传输. 然后再反串行化还原为原来的数据. 你在反串行化类的对象之前定义的类,PHP可以成功地存储其对象的属性和方法. 有时你可能需要一个对象在反串行化后立即执行. 为了这样的目的,PHP会自动寻找__sleep和__wakeup方法.   当一个对象被串行化,PHP会

PHP生成csv格式Excel,秒级别实现excel导出功能

防止报超内存,兼容中文,兼容科学技术法。 爽。。。。很爽。。。。 /*** 告诉浏览器下载csv文件* @param string $filename*/public static function downloadCsv($data, $filename, $encoding = 'utf-8'){header("Content-type: text/csv");header("Conten

PHP 读取或生成大的Excel

场景,在很多情况下,需要读取Excel文件。 常用的有PHPExcel包或者使用 maatwebsite/excel 包 但是使用这个包读取或生成excel,如果excel文件过大,很容易出现超内存情况。 解决方法: 上传:要求上传者使用.csv 文件上传。然后使用php自带的 fgetcsv()函数来读取文件。http://php.net/manual/zh/function.fgetc