1
exc OP 是 echo "<html><b>abc</b><html>"
少了一个引号 |
2
pouta 2016-11-24 19:49:32 +08:00 via Android
转义字符?
|
3
exc OP 不是 , thinkphp 对 echo 做了重载,会原样输出 html 代码, 而我现在不需要这个功能,想原样输出 html ,可对 thinkphp 配置不熟悉,找不到方法
|
4
wesley 2016-11-24 20:14:10 +08:00
谁告诉你 echo 能被重载?
|
5
exc OP 我没说清,不是重载, thinkphp 在控制器里对 echo 的输出内容做了拦截再处理,从而起到了类似重载的效果,不知道对不对
|
6
cdwyd 2016-11-24 20:34:46 +08:00 via Android
return html 代码
|
7
exc OP @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; } } ``` |
8
jessynt 2016-11-24 21:40:45 +08:00
Try this
|
9
1762628386 2016-11-24 22:53:23 +08:00
function idnex(){
echo '<script>alert("no encode")</script>'; die; } |
10
cdwyd 2016-11-25 01:12:22 +08:00
可以直接 return 的吧,官方的默认页面都是直接 return 的
|
11
ETiV 2016-11-25 01:19:12 +08:00
- -
试试输出自定义头: content-type: text/html |
12
my101du 2016-11-25 08:01:37 +08:00
8 楼正解。
话说你装好 ThinkPHP 后就不看一眼它的文档和默认生成的代码 Home/Controller/IndexController.class.php 之 index() 方法,然后就上来发帖了? |
13
likezun 2016-11-25 08:44:03 +08:00
珍爱生命,
|
14
exc OP @1762628386 谢谢,这样写会输出: <script>alert("no encode")</script> ,不会弹出对话框
@cdwyd 直接 return 显示是的一个空白页面 @ETiV 非常感谢,这个可以用,之前我为了写 api 将自定义头设置为 application/json ,改成 text/html 后使用 echo 就可以成功输出 html 内容了,且输出 json 目前看也没有问题,再次感谢 @jessynt 谢谢,你的方法可以用,不过在我的应用场景中报错了,可能我输出的内容比较复杂,包含大量的 css/js 和注释语句 @my101du 8 楼、 10 楼的可以用。装 thinkphp 后文档看了,没完整看完,是我的学习方法不对,多谢指点 |