解決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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM