thinkphp 如何输出从数据库读取出来的html
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp 如何输出从数据库读取出来的html相关的知识,希望对你有一定的参考价值。
从数据库查询出来的内容输出后,html标签全部被显示出来了,没有被浏览器解析,比如<div></div>,这样,如何处理呢?
参考技术A addslashes(), stripslashes() 一般是入数据库和出库的时候使用,以免变量中存储类似引号这些关键词,这样的话,本来是内容的部分却被数据库识别为标识符来执行,就会引起错误.thinkphp把HTML+PHP写的一个页面代码存入数据库以后 读取出来的效果HTML代码解析了PHP代码被直接输出
这个是要写入数据库的代码 里面的PHP变量是控制器赋值过来的 读取出来后PHP代码不被解析 各位TP高手给点意见 怎么才可以实现读取出来后就像直接写了 个这样的HTML模版文件一样的效果. 或者要怎么实现模版的二次解析 附上代码 万分感谢
你将是变量的值存放到数据库,取出来的时候系统是无法识别的。你只能存放没有动态数据的代码到数据库。至于这个解决的办法:要么你不要把代码存放到数据库,如果一定要存放到数据库,反正动态数据的代码存放进去是无法识别出来的,你可以将代码分成几个部分存进去,读取出来,然后动态数据的代码再单独写,不过会比较麻烦。这个不仅仅是thinkphp,任何一个框架,你存放动态的数据进去,都是无法识别的 参考技术A 用Widget,渲染输出是可以做到的.
在Lib/Widget/下新建一个文件命名为TestWidget.class.php文件:
代码
<?php
class TestWidget extends Widget
public function render($data)
return $this->renderFile("test_page",$data);
在Lib/Widget/Test/下新建一个文件test_page.html把你上面从数据库中读的代码放入test_page.html中。
然后在其它模板中这样调用:W('Test',array())
这只是一个基本例子。具体项目中你可以把你从数据库读出的代码动态保存入Lib/Widget/Test/test_page.html中。在调用 return $this->renderFile("test_page",$data);本回答被提问者和网友采纳 参考技术B
thinkphp里面有不解析的代码
可以使用 literal 标签来防止模板标签被览枂,例如:<literal>
<if condition="$name eq 1 "> value1
<elseif condition="$name eq 2"/>value2
<else /> value3
</if>
</literal>
上面癿 if 标签被 literal 标签包含,因此 if 标签里面癿内容开丌会被模板引擎览枂,而是保持原样输
出。
如果佝癿 php 标签中需要输出类似$user 戒者 XML 标签<volist></volist>癿情冴,可以通过添
加 literal 标签览决混淆问题,例如:
<php>echo \'$Think.config.CUSTOM.\'.$key.\'\';</php>
返个 php 标签中癿$Think 可能会被模板引擎诣当做标签览枂,览决癿办法就是加上 literal,例如:
<php><literal>echo \'$Think.config.CUSTOM.\'.$key.\'\';</literal></php>
Literal 标签迓可以用亍页面癿 JS 代码外层,确保 JS 代码中癿某些用法和模板引擎丌产生混淆。
总乀,所有可能和内置模板引擎癿览枂觃则冲突癿地方都可以使用 literal 标签处理。
以上是关于thinkphp 如何输出从数据库读取出来的html的主要内容,如果未能解决你的问题,请参考以下文章
thinkphp把HTML+PHP写的一个页面代码存入数据库以后 读取出来的效果HTML代码解析了PHP代码被直接输出
thinkphp把HTML+PHP写的一个页面代码存入数据库以后 读取出来的效果HTML代码解析了PHP代码被直接输出
thinkphp框架,数据动态缓存后,或数据已读取出来,想分页怎么办