我知道PHP在服务器上运行之前被编译为字节代码,然后字节代码可以被缓存,这样整个脚本就不必在每次web访问时重新解释。
但是,您能否“编译”PHP代码并上传一个二进制文件,该文件将由字节码解释器运行?
我知道PHP在服务器上运行之前被编译为字节代码,然后字节代码可以被缓存,这样整个脚本就不必在每次web访问时重新解释。
但是,您能否“编译”PHP代码并上传一个二进制文件,该文件将由字节码解释器运行?
当前回答
还有bcgen (bcompiler的一个PHP7端口):
https://github.com/vjardin/bcgen/
(仅PHP7.2)
其他回答
还有bcgen (bcompiler的一个PHP7端口):
https://github.com/vjardin/bcgen/
(仅PHP7.2)
有人听说过Zend Guard吗,它的功能正是这个人想要的。它将PHP代码编码/混淆为“机器代码”。
见5.5。使用集成的OPcache模块,在共享内存中的易失性,更好的性能和php的动态原则保持不变。
http://www.php.net/manual/en/opcache.installation.php
PHP代码有几个“编译器”。它们中的大多数不支持所有PHP特性,因为这些特性必须在运行时进行解释。
我们正在使用Phalanger - http://www.php-compiler.net/ -它甚至支持那些肮脏的PHP动态特性,并且仍然能够将它们编译为。net程序集,可以作为一个独立的DLL分发。
自从这个问题第一次被问到,答案已经从直截了当的“不”变成了“有点”
http://github.com/facebook/hiphop-php/wiki
Hip Hop for PHP是一个编译器,它将PHP代码转换为高度优化的c++ 显然,某些函数不受支持(例如' explosion ')
我在寻找更多关于如何实现HipHop的信息时发现了这个问题,我想我应该说出来:)
然而,自2013年以来,Facebook不再使用它,它已经停止使用,转而使用HHVM,这不是一个编译器:https://en.wikipedia.org/wiki/HipHop_for_PHP