Dải // Nhận xét từ tệp


7

Cách tốt nhất để loại bỏ tất cả các nhận xét mã trong một thư mục nhất định là gì? Tôi cũng muốn loại bỏ tất cả các // ... EOL bình luận , và /* blah \*/(hoặc /** ... \*/) các bình luận .

Đây là một dự án PHP và tôi muốn đi xa hơn một chút so với những gì được nêu dưới đây, nhưng vì mục đích bảo mật hơn là hiệu quả.


1
umm ... làm thế nào để bạn nghĩ rằng điều này là để bảo mật? xóa bình luận sẽ không tăng cường bảo mật của bạn (trừ khi bạn có mật khẩu cửa sau trong các bình luận của mình, trong trường hợp đó không có gì có thể giúp bạn)
xenoterracide

@xenoterracide: Mật khẩu bình thường sẽ gây ra vấn đề. Mật khẩu cửa sau có thể được suy ra từ mã.
Maciej Piechotka

Tôi đang giao mã cho một bên khác. Đó là một điều hợp pháp - đó là tất cả.
Adrian Schneider

Câu trả lời:


3

Sử dụng mã thông báo của chính PHP có lẽ là cách an toàn duy nhất; bất kỳ cách nào liên quan đến perl / awk / bất cứ điều gì sẽ có vấn đề với những thứ như$foo = "// you shouldn't be touching this!";
Michael Mrozek

Thật tuyệt, sẽ làm một số bài kiểm tra. Xuất hiện là những gì tôi cần mặc dù. Cảm ơn
Adrian Schneider

0

Điều này sẽ làm điều đó trong Perl:

//will delete all comments starting at the beginning of the line with //
perl -p -i -e "s#^//.*$##" <your php file>
//will delete all comments starting somewhere in a line with //
perl -p -i -e "s#^(.*)//.*$#\$1#" <your php file>
//will delete all comments starting somewhere in a line with /* or /**
perl -p -i -e "s#^(.*)/\*+.*$#\$1#" <your php file>
//will delete all comments starting at the beginning of the line with /* or /**
perl -p -i -e "s#^/\*+.*$##" <your php file>

Các lệnh này sẽ không xóa các bình luận có nhiều dòng, như

/**
 *
 *
 */

Có thể làm điều này, nhưng regex nhiều dòng khó hơn nhiều.

Cũng sẽ có giải pháp cho awk, sed, python, ... Nhưng điều này cũng nên làm điều đó.


1
Lưu ý rằng bạn cũng sẽ gặp vấn đề với các chuỗi xảy ra có "//" bên trong chúng và có thể có các vấn đề khác.
Steven D
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.