4

PHTML エンコーダーを使用して PHP ファイルをエンコードしていますが、エンコードされたファイルを実行すると、「未定義関数 dl() への呼び出し」というエラーが発生します。誰か助けてください。

<?php
    if(!function_exists("phtmldec")){
        $w=(substr(PHP_OS,0,3)=="WIN")?1:0;$ln="phtmlenc".phpversion();$cd=dirname(__FILE__);

        if($w){
            $ln=$ln.".dll";if($cd[1]==":") $cd=substr($cd,2);
        } else {
            $ln=$ln.".so";if(strlen($cd)<3) $cd=getcwd();
        }

        if(version_compare(phpversion(),"5.2.5")==-1){
            $cd1=ini_get('extension_dir');
            $cd2=PHP_EXTENSION_DIR;

            if($cd[strlen($cd)-1]!="/")$cd=$cd."/";

            if($cd1[strlen($cd1)-1]!="/")$cd1=$cd1."/";

            if($cd2[strlen($cd2)-1]!="/")$cd2=$cd2."/";

            if($cd1[1]==":") $cd1=substr($cd1,2);

            if($cd2[1]==":") $cd2=substr($cd2,2);

            $ic=substr_count($cd,"\\")+substr_count($cd,"/");
            $ic1=substr_count($cd1,"\\")+substr_count($cd1,"/");
            $ic2=substr_count($cd2,"\\")+substr_count($cd2,"/");
            $en=str_repeat("../",max($ic,$ic1,$ic2))."..".$cd.$ln;
        } else {
            $en=$ln;$r=dl($en);if(!$r)exit("Unable to load $en");
        }

        $p="F4\$A016YC2@Y(8Q[Y!2F3[@K2.0>K0Z%5^#2\\,&;5L7\$<KHL)BH<`";
        phtmldec($p);
    }
?>
4

1 に答える 1

3

@k102が言及したようdl()に、5.3以降、デフォルトで無効になっています。

PHP ドキュメントで参照されているとおり: http://php.net/manual/en/function.dl.php

    5.3.0   dl() is now disabled in some SAPIs due to stability issues.
The only SAPIs that allow dl() are CLI and Embed. Use the Extension Loading Directives instead.

そこで提案されているように、代わりに拡張機能ロード ディレクティブを使用してください: http://www.php.net/manual/en/ini.core.php#ini.extension


基本的に、唯一の選択肢は次のとおりです。

  1. php.iniで適切に構成されている拡張機能をロードします
  2. ドキュメントに記載されているように、まだサポートされている前述の SAPI のいずれかを使用してくださいdl(): (CLI、CGI、および埋め込み)
  3. 動的にロードする必要がある場合は、php のバージョンをダウングレードします。
于 2013-04-23T07:55:45.977 に答える