使用php显示服务器ioncube加载程序版本


Show server ioncube loader version with php

我正在使用ioncube对脚本进行编码。

但我不知道服务器上安装的加载程序版本。

是否有任何方法、任何代码或任何函数来显示IONCUBE加载程序版本的确切版本?

这是一个老问题,但最好知道,找出ionCube Loader确切版本的最简单方法是通过SSH连接到服务器并键入

php -v

这会给你一些类似的东西:

PHP 5.5.30 (cli) (...)
with the ionCube PHP Loader v4.7.5, Copyright (c) 2002-2014, by ionCube Ltd.(...)

如果安装了Loader,则可以通过调用Loader API中的ioncube_Loader_version()或ioncube_Loader_iversion()以编程方式检索此加载程序。

如果Loader是在调用时安装的,那么phpinfo()也会显示Loader版本。

用户指南PDF提供了有关Loader API的更多详细信息。

您可以简单地使用phpinfo()。如果您想检查它是否已加载,可以使用extension_loaded()

<?php
phpinfo();

使用以下函数。phpinfo如果列在disable_functions 中则不起作用

function GetIonCubeLoaderVersion() {
      if (function_exists('ioncube_loader_iversion')) {
         $version = ioncube_loader_iversion();
         $version = sprintf('%d.%d.%d', $version / 10000, ($version / 100) % 100, $version % 100);
         return $version;
      }
      return 'Not Found!';
}

以下是我从phpInfo:获得ionCube版本的解决方案

function GetIonCubeLoaderVersion()
{
    ob_start();
    phpinfo(INFO_GENERAL);
    $aux = str_replace('&nbsp;', ' ', ob_get_clean());
    if($aux !== false)
    {
        $pos = mb_stripos($aux, 'ionCube PHP Loader');
        if($pos !== false)
        {
            $aux = mb_substr($aux, $pos + 18);
            $aux = mb_substr($aux, mb_stripos($aux, ' v') + 2);
            $version = '';
            $c = 0;
            $char = mb_substr($aux, $c++, 1);
            while(mb_strpos('0123456789.', $char) !== false)
            {
                $version .= $char;
                $char = mb_substr($aux, $c++, 1);
            }
            return $version;
        }
    }
    return false;
}