2012-02-13 26 views
6

Tôi đang gỡ lỗi tệp của khách hàng của khách hàng. Bao gồm tệp này gây ra lỗi PHP Parse error: syntax error, unexpected $end in ..., vì vậy tôi giả định có một dấu ngoặc bị thiếu ở đâu đó. Có một công cụ hay phương pháp đơn giản nào để phát hiện ra dấu ngoặc kép, trực tuyến hoặc trong IDE Komodo mà tôi đang sử dụng không?Tìm dấu ngoặc bị thiếu trong tệp PHP lớn?

+3

Tệp 3000 dòng? Yuk. http://stackoverflow.com/questions/378959/is-there-a-static-code-analyzer-like-lint-for-php-files – Frankie

+0

Trong hầu hết các IDE, bạn có thể tìm thấy các dấu ngoặc bị thiếu bằng cách tìm kiếm địa điểm mỗi dòng đơn trở thành một lỗi. –

+0

NetBeans :) thats những gì tôi có trong tâm trí. . . – tomexsans

Trả lời

2

Sử dụng tab phù hợp và sạch sẽ. Tôi đã thấy rằng rất khó để bỏ lỡ một cú đúp đóng.

Khác hơn thế, bạn đã đào mộ của riêng bạn tại đây. Bạn đang viết mã gì để tạo ra một tệp PHP có dung lượng 3500 dòng?

EDIT: Thử bán mã của bạn vào Notepad ++. Tôi khá chắc chắn rằng sẽ làm nổi bật cú đúp đóng liên quan nếu bạn bấm vào một mở, nhưng với các tập tin lớn hơn, tôi đã nhận được phần nào hiệu suất không đáng tin cậy với điều này.

+0

Tory- Lời khuyên tuyệt vời nếu bạn sinh mã của riêng bạn, nhưng đây là mã máy khách, chứ không phải của tôi - tôi chỉ nhảy dù là một nhà tư vấn. – Yarin

+1

Điều này không tính đến định dạng thay thế 'if (true): else: endif; ' – Ray

0

Bạn đang sử dụng trình soạn thảo văn bản nào? Tôi sẽ khuyên bạn nên sử dụng Eclipse và nó sẽ dễ dàng hơn để phát hiện nó :) hoặc bạn cũng có thể công khai mã của bạn và chúng tôi có thể giúp theo cách đó :)

+0

Tôi đang sử dụng Komodo IDE và tôi không thể làm cho mã công khai là mã khách hàng độc quyền của nó. – Yarin

+0

Tôi không chắc chắn làm thế nào Komodo IDE làm việc nhưng tôi đánh giá cao sẽ khuyên bạn nên cho php, javascript, html ... để bắt đầu làm việc với Eclipse [HERE] (http://www.eclipse.org/downloads/) hoặc bạn có thể gửi cho tôi mã của bạn qua email =] [email protected] Đây là tất cả những gì tôi có thể làm :) –

0

Sử dụng NetBeans IDE cho PHP.
http://netbeans.org/features/php/

Sẽ kiểm tra cú pháp của bạn và làm nổi bật các vấn đề giữa nhiều tính năng đẹp khác mà ứng dụng có. Và hoàn toàn miễn phí.

1

Komodo Edit có một tính năng tuyệt vời làm nổi bật những gì bên trong niềng răng

Ctrl + Alt +]

2

một lựa chọn (tương tự như notepad ++) là sử dụng Dreamweaver để tìm thẻ đóng kèm theo.
Xem liên kết này: How do I make Dreamweaver to show me closing tags?

trong dreamweaver:
Để chọn phù hợp với khai mạc và bế xoăn niềng răng, khung, hoặc dấu ngoặc đơn, nhấp vào bên trong mở hoặc biểu tượng đóng cửa, và nhấp vào nút Balance niềng răng trên thanh công cụ mã hóa (đó là ngay bên dưới Chọn Thẻ cha mẹ). Ngoài ra, hãy sử dụng phím tắt, Ctrl + '/ Cmd +'.

1

Tôi chỉ đang làm việc trên một vấn đề liên quan (tìm thiếu khung hình vuông trong đối tượng JSON). Vì vậy, tôi hy vọng sẽ có thể giúp đỡ.

 $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.'; 

Điều này lặp lại nguồn cho đến khi có kết quả bỏ lỡ và lỗi cho dấu ngoặc nhọn.

0

Chúng tôi thực sự đánh giá cao sự thông minh của mọi người! Đôi khi nó tốt hơn để dính vào các công cụ người đang sử dụng và chính xác những gì họ đang hỏi về. Tôi không biết nếu bạn đã tìm thấy câu trả lời của bạn nhưng đây là những gì tôi sử dụng.

  1. Đặt con trỏ của bạn trên Brace khai mạc sau đó -
  2. Trên Mac: [lệnh]'

hoặc Chỉnh sửa Menu> Cân Niềng răng 3. Kết quả: Điều này sẽ làm nổi bật mã trên Dreamweaver giữa niềng răng và giúp giải quyết vấn đề mã hóa.

Hy vọng điều này sẽ hữu ích. P.S.Đôi khi bạn cần 3000 dòng mã :)

Các vấn đề liên quan