smarty模板的转义问题

-雪涛- 2014-09-02 02:23:45
我用<textarea>文本框提交以下内容
<ul>
<{assign var="s" value=1}>
<{foreach item=adv key=key from=$adv}>
<li <{if $s%4 == 0}>class="mro"<{/if}>><a href="<{$adv.url}>"><img src="<{$adv.picName}>" width="293" height="189" /></a></li>
<{assign var="s" value=$s+1}>
<{/foreach}>

</ul>
在后台用addslashes转义了一下存入数据库,前台都去的时候用stripslashes转义,但是,smarty模板中输出的是
<ul> <{assign var="s" value=1}> <{foreach item=adv key=key from=$adv}> <li <{if $s%4 == 0}>class="mro"<{/if}>><a href="<{$adv.url}>"><img src="<{$adv.picName}>" width="293" height="189" /></a></li> <{assign var="s" value=$s+1}> <{/foreach}> </ul> 确没有以html样式输出这是为什么??我用 |escape:"html" 转义也不行
...全文
313 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
码无边 2014-09-09
  • 打赏
  • 举报
回复
除非你在入库的时候,把样式版面写入字段,显示的时候直接assign变量就行,但是这个要考虑到样式问题。 一般的做法就是存入数据,通过html做好样式,直接显示变量值。
Zerolone 2014-09-08
  • 打赏
  • 举报
回复
你是打算自定义循环的输出, 但是smarty应该是,先php代码然后assign到模板。 你应该要的意思是assign到模板,然后在让smarty再解析一遍。 我看是不行的, 我建议你在后台提交的时候, 将这个循环写入模板文件中。
-雪涛- 2014-09-02
  • 打赏
  • 举报
回复
额,我也不知道啊,在网上没有找到资料,应该有方法吧,我这是在做一个自定义布局的时候用到的,这个应该挺常用的吧??
xuzuning 2014-09-02
  • 打赏
  • 举报
回复
可以这样做吗?重来没听说过
-雪涛- 2014-09-02
  • 打赏
  • 举报
回复
简单的说就是,我把smarty标签( <{assign var="s" value=1}> <{foreach item=adv key=key from=$adv}> <{assign var="s" value=$s+1}> <{/foreach}>)存到了数据库中,结果在smarty模板调用的时候没有被执行,而是原样输出了,如何执行这些代码……
-雪涛- 2014-09-02
  • 打赏
  • 举报
回复
<ul>
<{assign var="s" value=1}>
<{foreach item=adv key=key from=$adv}>
<li <{if $s%4 == 0}>class="mro"<{/if}>><a href="<{$adv.url}>"><img src="<{$adv.picName}>" width="293" height="189" /></a></li>
<{assign var="s" value=$s+1}>
<{/foreach}>

</ul>这些内容在我的数据库中,我想在smarty模板中显示成
这种形式,但是现在是原样输出的
ayzen1988 2014-09-02
  • 打赏
  • 举报
回复
smarty 跟 你的内容转义好像没什么关系吧,不是很懂你遇到什么问题?
-雪涛- 2014-09-02
  • 打赏
  • 举报
回复
我后如果编辑纯html,就不会出现问题,但是我需要在里面嵌smarty标签,就出问题了……
-雪涛- 2014-09-02
  • 打赏
  • 举报
回复
要将样式输出来,显示的样式应该是这样,我用
xuzuning 2014-09-02
  • 打赏
  • 举报
回复
你想输出成什么样子
《php开发典型模块大全》读书笔记 第四章 smarty (张迅雷闪击PHP系列) 下载地址 http://www.smarty.net/download 测试使用的是Smarty-2.6.26\libs 公用的smarty类库和相关信息,将smarty放在服务器根目录下,配置信息写在一个文件中,用的时候include下配置文件。 smarty的变量有以下三部分: a 来自php页面中的变量,即assign()方法传过来的变量; 在tpl模板中获取数组的值,两个方法 $arr[0] / 或者 $arr.name b 保留变量,相当于php中的预定义变量 get post server Session Cookie request ;now;const;config {%* 注释 *%} 使用“#”,将变量名置于两个"#"中,就可以像普通变量一样调用配置文件内容了。 保留变量同时调用,在tpl文件中加载配置文件 {% config_load file="04/04.conf" %} {% config_load file="04/04.conf" [section=section scope=local|parent|global] %} variable modifers 修饰变量 {% variable_name|modifer_name:parameter1:.... %} 内置函数: config_load foreach 使用foreach语句循环输出数组。 {% foreach key=key item=item from=$infobook %} {% $key %} => {% $item %} {% /foreach %} include {% include file='08/table.tpl' name='编程词典网' value='htt://www.mrbccd.com1' %} insert 用法与include相似,两者的区别是:使用insert函数载入的内容部会被缓存,每次开启页面都会重新被执行。 {% if $smarty.get.type == 'mr' %} 欢迎光临,{% $smarty.get.type %} {% else %} 对不起,您不是本站VIP,无权访问此栏目。 {% /if %} section循环可以处理比较复杂的数组 {% section name=sec1 loop=$obj %} {% $obj[sec1].bigclass %} {% section name=sec2 loop=$obj[sec1].smallclass %}   {% $obj[sec1].smallclass[sec2].s_type %} {% /section %} {% /section %} void append() 向数组中追加元素 void clear_all_assign() 清楚所有模板中的赋值 void clear_assign(string var)清除乙肝制定的赋值 void config_load()加载配置文件 string fetch(string template) 返回模板的输出内容,但不直接显示出来; array get_config_vars()返回指定配置变量的值,如果没有参数,则返回一个所有配置变量的数组; array get_template_vars()返回指定模板变量的值,如果没有参数,则返回一个所有模板变量的数组; bool template_exists(string template) 检测制定的模板是否存在 缓存默认是3600秒,即1小时。 addslashes() 在操作数据库时,对其中的特殊字符进行自动转义,即在特殊字符前加反斜杠,包括单引号‘ 双引号“ NULL,但是不包括% 和_ 另外还可以 mysql_real_escape_string()来进行转义,效果和addslashes()函数式一样的。

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧