thinkphp把HTML+PHP写的一个页面代码存入数据库以后 读取出来的效果HTML代码解析了PHP代码被直接输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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+PHP写的一个页面代码存入数据库以后 读取出来的效果HTML代码解析了PHP代码被直接输出的主要内容,如果未能解决你的问题,请参考以下文章

我用thinkphp做了个网站但是只显示主页,其他页面不显示

我用thinkphp写的项目,本地一切正常,上传到服务器后输入路径打开页面

Thinkphp5笔记七:设置错误页面②

以 ThinkPhp 为例,理解 PHP 框架的入口

2016/05/17 thinkphp3.2.2 分页的使用:①在Home下设置Publics文件夹或在thinkPHP下library的vender 把page.class.php 考贝

thinkphp如何生成条形码?