在大型PHP文件中找到缺少的大括号?

时间:2012-02-13 18:40:20

标签: php debugging ide syntax-error

我正在调试客户端的 3500行PHP文件。包含此文件会导致PHP Parse error: syntax error, unexpected $end in ...错误,所以我假设某处缺少大括号。是否有一个简单的工具或方法可以在线或在我正在使用的Komodo IDE中丢失大括号发现?

7 个答案:

答案 0 :(得分:2)

使用一致且干净的标签。我发现很难错过一个闭合支撑。

除此之外,你有点在这里挖掘自己的坟墓。你在编码什么导致3500行PHP文件?

编辑:尝试将代码转储到Notepad ++中。我相当肯定如果你点击开头那个会突出显示相关的右括号,但是对于较大的文件,我的表现有点不可靠。

答案 1 :(得分:2)

另一个选项(类似于notepad ++)是使用Dreamweaver查找关联的结束标记。
请看这个链接:How do I make Dreamweaver to show me closing tags?

在dreamweaver中:
要选择匹配的打开和关闭花括号,括号或括号,请在打开或关闭符号内单击,然后单击“编码”工具栏上的“平衡括号”按钮(它位于“选择父标记”下方)。或者,使用键盘快捷键Ctrl +'/ Cmd +'。

答案 2 :(得分:1)

Komodo编辑有一个很棒的功能,突出了大括号内的内容

Ctrl + Alt +]

答案 3 :(得分:1)

我正在处理一个相关的问题(在JSON-object中找到缺少的数组方括号)。所以我希望能够提供帮助。

     $pos=0;
     $braceCount=0;
while( preg_match('~\{|\}~S', $source, $out, PREG_OFFSET_CAPTURE, $pos) ){
     if($out[0][0] === '{'){
       $braceCount++;
       if( $braceCount === 1 )$startPos=$out[0][1];
     }
     elseif( $out[0][0] === '}' ){
       $braceCount--;
       if( $braceCount === 0 ){
         //echo 'Up to that position:'.$out[0][1].' every thing seems to be ok?<br>';
         echo substr($source,$startPos,($out[0][1]+1-$startPos)).'<br>';
       } 
       elseif( $braceCount < 0 ){
         echo 'To many closing brace right before '.($out[0][1]+1).'<br>';
         exit;
       }
     }
     $pos = $out[0][1]+1;
}
if( $braceCount > 0 ) echo 'Closing brace is missing somewhere.'; 

这会回显源,直到错过匹配和花括号错误。

答案 4 :(得分:0)

您使用的是哪种文本编辑器?我将建议您使用Eclipse,它将更容易检测到它:)或者您也可以公开您的代码,我们可以通过这种方式提供帮助:)

答案 5 :(得分:0)

使用NetBeans IDE for PHP http://netbeans.org/features/php/

将检查您的语法并突出显示它具有的许多其他优秀功能中的问题。它是免费的。

答案 6 :(得分:0)

我们非常感谢每个人的聪明才智!有时候,最好坚持使用这个人正在使用的工具以及他们所询问的内容。我不知道你是否找到了答案,但这就是我的用法。

  1. 将光标放在开头Brace上 -
  2. 在Mac上: [命令]&#39;
  3. 或编辑菜单&gt;平衡支架 3.结果:这将突出显示大括号之间Dreamweaver上的代码,并帮助解决编码问题。

    希望这会有所帮助。附:有时您需要3000行代码:)