zoukankan      html  css  js  c++  java
  • 解决Zend加密的PHP页面出现Incompatible file format的问题

    错误如图:

    致命错误:不兼容的文件格式
    可能的原因:
    1、文件本身加密的问题,很有可能你用的Zend进行加密了,但是因为版本的问题,很有可能是你的主机上的Zend Optimizer版本太低了。
    2、文件编码的问题(可能性较小),比如你使用了非ANSI或者UTF-8的文件编码方式。
    3、上传的模式问题(当然,你这里使用的是内置程序,应该不是这个问题),上传的话使用binary模式可能会好些。
     

    手头有一套php程序是zend加密的,将它放到主机空间上运行的时候遭遇如下问题:Fatal error: Incompatible file format: The encoded file has format major ID 3, whereas the Loader expects 4 in

    百度总结之后,汇总该问题相关信息如下:

    1. 从PHP5.3开始如果要支持zendguard加密的PHP代码,必须安装zend guard loader,老的zend optimizer将不被支持。
    2. PHP5.2之前的Zend加密程序用Zend Optimizer解析。
    3. PHP5.3开始的Zend加密程序用Zend Guard Loader解析。

    综上,造成该问题的原因是Zend Guard 5.1更新了加密PHP文件的算法来迎合PHP5.3新版本支持,用Zend Guard老版本加密过的PHP文件在 PHP5.3 + Zend Guard Loader的环境下都无法正常浏览,会报出文章开头的错误。

    解决方法:

    • 可以把PHP程序源文件在Zend Guard 5.1下重新加密,然后才能浏览。本处因为拿到的就是加密商业代码,故放弃这一招。
    • 也可以把程序放到PHP5.2 + Zend Optimizer的环境下运行即可。本处选择它来运行这套加密程序。

         把空间搬迁到了低版本PHP的环境下,搞定。摘录前后主机PHP环境如下:

    • 搬迁前:PHP5.3.17 + Zend Engine v2.3.0 + Zend Guard Loader v3.3
    • 搬迁后:PHP5.2.17 + Zend Engine v2.2.0 + Zend Optimizer v3.3.9
  • 相关阅读:
    photoshop快捷键汇总
    div和css:行内元素和块元素的水平和垂直居中
    使块元素并排显示和清除浮动的方法
    javascript与DOM节点的结合使用
    导航+轮播图(手动)
    执行计划
    oracle存储过程
    oracle 常用语法
    Sqlserver数据库总结
    sqlserver sum 和count在关于进行统计时的区别
  • 原文地址:https://www.cnblogs.com/gredswsh/p/Fatal-error-Incompatible-for-php.html
Copyright © 2011-2022 走看看