我使用Haxe生成PHP代码。(这意味着您用Haxe语言编写代码,并在编译后获得一堆php文件。)今天,一位客户告诉我,他需要在一个用Haxe制作的旧项目上添加一个新功能。他还告诉我,为了自己的需要,他在代码上修改了一些小东西。现在,我首先将他的更改移植到我的Haxe代码中,然后添加新功能,否则他的更改将在我下次编译项目时被覆盖。
为了防止这种情况再次发生,我正在寻找一种可以缩小/混淆PHP代码的程序。目标是使代码尽可能地不可读/不可编辑。
理想的工具应该在Linux下运行,可以处理整个文件夹和所有包含文件的文件夹。
有人有什么建议吗?
发布于 2010-01-14 23:23:35
我同意你的评论,你所做的是非常隐蔽的,但在这个行业工作了10年后,我可以证明一件事:你得到的代码有一半是如此复杂,甚至可能已经被缩小了,而且实际上函数/变量名称经常是完全任意的,我编辑过缩小的js,这并不比一些未缩小的代码更麻烦。
我找不到任何这样的脚本/程序,很可能是因为这有悖于PHP的精神,有点不光彩,一点也没有。
首先: Php对空格不敏感,所以第一步是删除字符串之外的所有换行符和空格。
对于普通的修补人员来说,这将很难搞乱,一个中间程序员只会找到并用$1\n或类似的东西替换所有的;{}。
下一步将是用户并保存该数组(返回数组中的‘get_defined_functions’键),您需要包含所有文件才能完成此操作。
如果它是面向对象的代码,那么你也需要get_defined_classes。保存该数组。
本质上,你需要获取变量,方法和类实例,你必须实例化它上的类和get_object_vars,你可以查看一下,你可以得到很多其他的信息,比如常量和类变量等等。
然后,您获取这些列表,遍历它们,为每个内容创建一个唯一的名称,然后在所有文件中使用preg_replace或str_replace。
确保您在测试副本上执行此操作,并查看您得到的错误。
不过,为了清楚起见,地狱中有一个特殊的地方是为那些为了混淆而混淆的人而保留的。
查看:get_defined_functions get_declared_classes,只需按照周围的链接查看您可以做些什么。
发布于 2011-06-10 17:57:43
为什么不在函数php_strip_whitespace()中使用php buid
string php_strip_whitespace ( string $filename )
在filename中返回PHP源代码,删除PHP注释和空格。这可能有助于确定脚本中的实际代码量与注释量的比较。这类似于在命令行中使用php -w。
发布于 2010-01-14 23:10:24
我知道Zendguard,Expressionengine用它来加密他们试用版的核心代码。你可以随时试一试,尽管你需要付钱。
然而,虽然我理解不得不移植他的更改的挫败感,但我假设他们是从你那里购买代码的?他们有权修改它。你只是有权向他们收取额外的费用来移植他们的更改;)想象一下,如果你不再为他们工作,他们怎么会雇佣其他人来更新代码呢?
https://stackoverflow.com/questions/2064973
复制相似问题