我正在使用Laravel应用程序,经过一些更新后,我在每个http响应或控制台输出中都会收到一个逗号“,”所以我很想找到哪个脚本文件正在打印该字符。
是否可以知道哪个文件正在写入输出http响应或控制台?
更新
在调用加载类的include函数后,我在Composer的 ClassLoader vendor\composer\ClassLoader.php
中调用了一个echo调用,如下所示:
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*/
function includeFile($file)
{
include $file; echo $file . "\n";
}
现在加载以下类之间的逗号,这有用吗?
C:\Users\Bla\Bla\trunk\vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php
,C:\Users\Bla\Bla\trunk\vendor/laravel/framework/src/Illuminate/Foundation/AliasLoader.php
C:\Users\Bla\Bla\trunk\vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php
更新2
发现它!正如@vladsch
所述,它位于我的一个配置文件中的开始标记,<?php
之前,谢谢
答案 0 :(得分:1)
是的,你可以,debugging with xdebug或其他debbuger工具,一步一步(步入),直到找到脚本。
请参阅此stackover entry了解guiadance。
我强烈建议您使用真正的调试工具作为良好的专业实践。但也许对于这个特殊的purpouse它有点过度镶嵌。
答案 1 :(得分:1)
您可以通过一些基本调试来缩小范围。在整个申请过程中添加dd('hello')
。
我会从routes.php
文件开始。查看逗号是否出现在hello
之前或之后。如果它在hello之前,则逗号位于其中一个引导文件中。
如果逗号在问候之后,那么很可能是在你的一个视图中等。继续将dd('hello')
深入到你的应用程序中直到它出现。
答案 2 :(得分:1)
由于您在HTTP和控制台中拥有它,因此这将排除视图。
罪魁祸首可能是在开放<?php
标记之前无意中插入的逗号。最有可能是每个PHP文件顶部的第一个。
搜索,<?php
或正则表达式/\s*,\s*<\?php/
答案 3 :(得分:0)
不,你不能,这就是你应该使用版本控制系统(即:git)的原因,这样你就可以在系统中断时轻松回滚。
在您的情况下,您可以尝试在工作目录的每个文件中搜索逗号(包括供应商和其他不重要的文件夹,如存储)
如果你有一个调试器,你可以尝试进入检查来自开始
的每一个调用