ThinkPHP 的 Controller 控制器里如何不使用模板输出 Html

2016-11-24 19:19:22 +08:00
 exc
ThinkPHP 的 Controller 控制器里如何不使用模板输出 Html ,而不是 Html 源代码

使用

```
echo "<html><b>abc</b><html>
```

在浏览器上显示的是

```
<html><b>abc</b><html>
```

我想要的是加粗的是 abc

怎么办 google 半天没有到点子上 求助
4216 次点击
所在节点    问与答
14 条回复
exc
2016-11-24 19:23:24 +08:00
是 echo "<html><b>abc</b><html>"

少了一个引号
pouta
2016-11-24 19:49:32 +08:00
转义字符?
exc
2016-11-24 19:57:38 +08:00
不是 , thinkphp 对 echo 做了重载,会原样输出 html 代码, 而我现在不需要这个功能,想原样输出 html ,可对 thinkphp 配置不熟悉,找不到方法
wesley
2016-11-24 20:14:10 +08:00
谁告诉你 echo 能被重载?
exc
2016-11-24 20:32:41 +08:00
我没说清,不是重载, thinkphp 在控制器里对 echo 的输出内容做了拦截再处理,从而起到了类似重载的效果,不知道对不对
cdwyd
2016-11-24 20:34:46 +08:00
return html 代码
exc
2016-11-24 21:26:55 +08:00
@cdwyd 谢谢

不过直接 return ,页面是一片空白的

我的代码

```
<?php
namespace Demo\Controller;
use Think\Controller;

class TestController extends Controller {
public function test() {
$html = '<html><body><b>abc</b>def</body></html>';
return $html;
}
}
```
jessynt
2016-11-24 21:40:45 +08:00
Try this
1762628386
2016-11-24 22:53:23 +08:00
function idnex(){
echo '<script>alert("no encode")</script>';
die;
}
cdwyd
2016-11-25 01:12:22 +08:00
可以直接 return 的吧,官方的默认页面都是直接 return 的
ETiV
2016-11-25 01:19:12 +08:00
- -

试试输出自定义头: content-type: text/html
my101du
2016-11-25 08:01:37 +08:00
8 楼正解。
话说你装好 ThinkPHP 后就不看一眼它的文档和默认生成的代码 Home/Controller/IndexController.class.php 之 index() 方法,然后就上来发帖了?
likezun
2016-11-25 08:44:03 +08:00
珍爱生命,
exc
2016-11-25 11:57:02 +08:00
@1762628386 谢谢,这样写会输出: <script>alert("no encode")</script> ,不会弹出对话框

@cdwyd 直接 return 显示是的一个空白页面

@ETiV 非常感谢,这个可以用,之前我为了写 api 将自定义头设置为 application/json ,改成 text/html 后使用 echo 就可以成功输出 html 内容了,且输出 json 目前看也没有问题,再次感谢

@jessynt 谢谢,你的方法可以用,不过在我的应用场景中报错了,可能我输出的内容比较复杂,包含大量的 css/js 和注释语句

@my101du 8 楼、 10 楼的可以用。装 thinkphp 后文档看了,没完整看完,是我的学习方法不对,多谢指点

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/323060

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX