本人其实是十分反对此举的..但是为了学习..还是跟大家说一下..这个方法来源于PHP手册..
我相信大多数人跟我一样..都对PHP的Tokenizer Functions很不了解..
其实没关系..这个是非常不常使用的..我们一般人也很少用到..或者说根本不必用到..因为对于web程序很少会用到.
说了很多废话..扯远了..回到主题
我们知道..很多人都为discuz的开源方式而感动头痛..因为他们玩的狠毒..注释几乎都删除了...
我想他们在写的时候肯定会写注释的 ..只不过在发布的时候把注释都删除了.(我想这也是他们出于安全的考虑.)
我以前一直认为他们是手工把注释一行一行删除的..那只是我以前的想法..
因为康盛的人肯定不会这么笨的..他们会偷懒..人们因为懒而变得更强大..
其实也非常简单..下面这个例子你如果读懂就OK了..注释写的非常清楚..我就不啰嗦喽..
- <?php
- $code = '<?php
- /**
- * 这里是注释
- */
- $a = 4; //$a = 4;
- $b = 6;
- ?>';
- $tokens = token_get_all($code);
- foreach ($tokens as $token) {
- if (is_string($token)) {
- //单字符就直接打印..比如"="
- echo $token;
- } else {
- //token 数组
- list($id, $text) = $token;
- switch ($id) {
- case T_COMMENT:
- case T_ML_COMMENT:
- case T_DOC_COMMENT:
- //以上全部是注释的token 所以我们什么都不必做
- break;
- default:
- //其他的打印出来.你也可以保存图片..
- echo $text;
- break;
- }
- }
- }
经过上面的过程..一个PHP代码的注释就被删除了..
你也可以做个遍历..把文件夹下的所有PHP文件的注释都删除..然后再存一下..:)