Call to undefined function dl()

php

Solution

as @k102 mentioned `dl()` has been disabled by default since 5.3:

as refered on the php documentation: 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.

as suggested there, use the Extension Loading Directives instead: http://www.php.net/manual/en/ini.core.php#ini.extension

Basically your only choices are:

- Load the extension configuring it properly on the php.ini

- Use one of the mentioned SAPI's that still supports `dl()` as mentioned in the documentation: (CLI, CGI and Embed)

- Downgrade your php version if you really need to load it dinamically

Problem

I am using PHTML encoder to encode my php file but it is giving error "Call to undefined function dl()" when i run the encoded file. Somebody please help. ``` <?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); } ?> ```

Original source