当尝试调用phpinfo()
函数时,Laravel返回以下错误:
响应内容必须是实现__toString()的字符串或对象,给定的"boolean“。
代码是:
Route::get('phpinfo', function () {
return phpinfo();
});
Laravel的版本是5.6
编辑:
当我使用
Route::get('phpinfo', function () {
return utf8_encode(phpinfo());
});
页面呈现得很好,但我担心这可能会在未来给我带来问题。在呈现phpinfo页面时会不会有什么问题呢?我是否在不想的情况下触摸了PhpStorm中的某些东西?
Laravel是新安装的,指向/
的路由运行良好,并正确呈现html,但我也担心这一点:
以红色突出显示的面包屑似乎呈现了奇怪的字符。
我希望有人能帮助我。
发布于 2018-07-07 07:39:42
正如消息所述,路由器需要一个返回字符串值的函数,或者至少是一个实现了__toString的对象,以便可以将其转换为字符串值。
phpinfo
不返回字符串值-您看到的结果直接写入输出流,并且它返回true或false。
使用return utf8_encode(phpinfo());
,您可以“修复”这个问题,因为函数现在有一个实际的字符串返回值。phpinfo输出仍然被立即写入到输出流中,但是您现在使用utf8对其返回值true
进行编码,该返回值将首先隐式地转换为1
,以便最终将其作为字符串值返回。但这可能会让您在某个地方输出1
……
所以你应该先调用phpinfo
,然后再返回一个空字符串。
因为phpinfo
直接写入输出流,所以这仍然可能在以后导致问题-所以这里的“干净”解决方案可能是首先使用输出缓冲来捕获phpinfo
输出,然后返回缓冲区内容。
https://stackoverflow.com/questions/51217418
复制相似问题