最近在一次ajax取返回值, switch的时候,返回多了两个空白的字符, 用FIDDLER调试的时候发现不只是ajax返回值多了两个空白字符,其他的也多了两个空白字符。然后我蛋疼的一个小时开始了。
最开始我以为是我写的后台部分有问题,然后我让请求不走laravel的middleware不行, 然后我调试其他部分的请求,发现全部的请求都是多了两个空白字符。
去群里请教别人, 别人告诉我是<?php前面有空格或者 ?>后面有空格,然后我用notepad++查找了一下内容:?> ?> ?>[\r\n\s]+ 都没有找到。
然后我想到了laravel的入口文件只有一个index.php, 我去die这个文件的段落不就好了吗?
最后发现经过下面这段代码的时候就多了两个空白字符。
$kernel = $app->make('Illuminate\Contracts\Http\Kernel');
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
然后我查看了php的trace文件, 哎 , 没想到我的trace文件都好几十G了,DELETE掉,用FIDDLER请求重新生成一个,用notepad打开发现有6000+行, 我的天。
看了一会, 没有头绪,忽然想到前几天从laravel5.0迁移到5.1上面,只改了几个文件,就是非vendor目录下面的文件, 我想用notepad的查找功能查找非vendor目录php文件,结果正则表达式没有写好,我的天我的正则已经很差了吗?突然想到config下面的文件大部分是覆盖过来的, 然后我就查找了一下config,发现还真的是mail.php文件让我搞错了。
一个荒唐的BUG修复过程,让我蛋疼。