Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
缩小/模糊PHP代码_Php_Code Generation_Obfuscation_Minify_Haxe - Fatal编程技术网

缩小/模糊PHP代码

缩小/模糊PHP代码,php,code-generation,obfuscation,minify,haxe,Php,Code Generation,Obfuscation,Minify,Haxe,我用它来生成PHP代码。(这意味着你要用Haxe语言编写代码,编译后会得到一堆php文件。)今天,一位客户告诉我,他需要在一个用Haxe制作的旧项目上添加一个新功能。他还告诉我,他根据自己的需要修改了代码中的一些小东西。现在,我首先将他的更改移植到我的Haxe代码中,然后添加新的特性,因为否则他的更改将在下次编译项目时被覆盖 为了防止这种情况再次发生,我正在寻找某种缩小/混淆PHP代码的程序。目标是使代码尽可能不可读/不可编辑。 理想的工具将在Linux下运行,可以处理整个文件夹和所有包含它的文

我用它来生成PHP代码。(这意味着你要用Haxe语言编写代码,编译后会得到一堆php文件。)今天,一位客户告诉我,他需要在一个用Haxe制作的旧项目上添加一个新功能。他还告诉我,他根据自己的需要修改了代码中的一些小东西。现在,我首先将他的更改移植到我的Haxe代码中,然后添加新的特性,因为否则他的更改将在下次编译项目时被覆盖

为了防止这种情况再次发生,我正在寻找某种缩小/混淆PHP代码的程序。目标是使代码尽可能不可读/不可编辑。
理想的工具将在Linux下运行,可以处理整个文件夹和所有包含它的文件

有人有什么建议吗?

我们使用某些客户端对PHP代码进行编码,但正如Parrots所说,您需要确保代码是您自己的。我们只在某些情况下编码,并且只有当明确表示我们保留代码的所有权时,否则Parrots是正确的,客户端才有权修改它

据我所知,Expressionengine用它来加密他们试用版的核心代码。你可以试一下,尽管你需要付钱


然而,虽然我理解不得不移植他的更改所带来的挫折感,但我认为他们是从您那里购买代码的?他们有权修改它。您只是有权向他们收取额外费用,以移植他们的更改;)想象一下,如果你停止为他们工作,他们怎么会雇佣其他人来更新代码呢?

我同意这一评论,你所做的是非常秘密的,但在这个行业工作了10年后,我可以证明一件事:你得到的一半代码是如此复杂,甚至可能已经缩小了,实际上,函数/var名称常常是完全任意的,我编辑过简化的js,它并不比一些未统一的代码更麻烦

我找不到任何这样的脚本/程序,很可能是因为这有点违背了PHP的精神,而且有点卑鄙

第一:Php对空格不敏感,所以第一步是删除字符串外的所有换行符和空格

对于一般的修补匠来说,这将很难处理,一个中级程序员只需找到并替换所有的修补匠;{}使用$1\n或类似的内容

下一步是获取_定义的_函数并保存该数组(返回数组中的“user”键),您需要包含所有文件才能执行此操作

如果是oo代码,您还需要获得定义的类。保存该数组

本质上,您需要获取变量、方法和类实例,您必须实例化该类并在其上获取\u object\u vars,您可以四处查看,并看到您可以获得许多其他信息,如常量和类vars等

然后取这些列表,循环遍历它们,为每个对象创建一个唯一的名称,然后在所有文件中使用preg_replace或str_replace

确保在测试副本上执行此操作,并查看会出现哪些错误

不过,要明确的是,地狱里有一个特别的地方,专门为那些为了混淆而混淆的人保留

签出:只需跟随周围的链接查看您可以做什么。

您可以尝试或。

我们的工作就是剥离注释、空白和置乱标识符

它在一组完整的PHP文件中运行,以确保被加扰的符号被加扰 在这些文件中保持一致,确保即使在加扰后也能正确操作


编辑2013:现在加密字符串文字以使其不可读。在Windows下运行,在Linux上在Wine下运行。

我刚刚找到了PHP的minify服务。它看起来真的很有用。他们说,模糊处理很快就会出现。我希望这是真的:)
为什么不使用php内置函数


返回文件名中的PHP源代码,并删除PHP注释和空格。这可能有助于确定脚本中实际代码的数量与注释的数量。这类似于从命令行使用php-w。

用户可能会问我,我是免费的。或者他们可以从共享subversion获取haxe文件;-)+1但是,让人尴尬的是——是的,他们购买了代码——但是如果你只交付模糊的代码,那么这就是他们购买的。除非你明确地把它作为一个开发平台来销售,否则我看不出有什么问题。但是你可以百分之百地确定,如果你交付的是明文代码,而他们对其进行了修改,那么你就会遇到令人头疼的支持问题,而且他们通常不会准备付款。如果你交付的是明文和软件许可证,上面说不允许他们篡改,那么你就没有义务修复它。在这种情况下,发布模糊代码有助于阻止许可协议中已经阐明的内容。如果你向他们“出售”源代码,那么你可以期望在未经许可的情况下修改源代码并将其提供给第三方,因为“出售”的通常含义是“出售”。这有点过分了,我在寻找类似剥离空白和重命名变量的东西。@ctyshrock:“客户有权修改它?”这与道德无关,这是允许的。只有在约定的软件许可证允许的情况下,客户端才有修改的“权利”。有些软件许可证是严格禁止的,即使代码是以源代码形式提供的。商业模式是否允许或禁止代码修改取决于所有者如何看待管理product.OMG!“客户有权修改它?”@catsby你真的错了,客户根本没有权利修改它,你真的需要学习版权法。。所有作品的作者始终保留对作品的权利,事实上,在法律上,即使客户购买了作品,如果他当时没有签署EULA,作品也不得修改
string php_strip_whitespace ( string $filename )