Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php /* ===================================================== DataLife Engine - by So..
Decoded Output download
?><?php
/*
=====================================================
DataLife Engine - by SoftNews Media Group
-----------------------------------------------------
https://dle-news.ru/
-----------------------------------------------------
Copyright (c) 2004-2024 SoftNews Media Group
=====================================================
This code is protected by copyright
=====================================================
File: redis.class.php
-----------------------------------------------------
Use: redis class
=====================================================
*/
if( !defined( 'DATALIFEENGINE' ) ) {
header( "HTTP/1.1 403 Forbidden" );
header ( 'Location: ../../' );
die( "Hacking attempt!" );
}
class dle_fastcache
{
protected $server = null;
protected $suite_key = null;
protected $max_age = null;
public $connection = null;
public function __construct( $config ) {
$this->suite_key = md5( DBNAME . PREFIX . SECURE_AUTH_KEY ).'_';
$this->server = $this->connect();
if($this->connection !== -1 ) {
$redis_server = explode(":", $config['memcache_server']);
$this->connection = 1;
if ( count($redis_server) == 2 ) {
try {
if( !$this->server->connect( trim($redis_server[0]), trim($redis_server[1]) ) ) {
$this->connection = 0;
}
} catch (Exception $e) {
$this->connection = 0;
}
} else {
try {
if( !$this->server->connect(trim($redis_server[0])) ) {
$this->connection = 0;
}
} catch (Exception $e) {
$this->connection = 0;
}
}
$auth = array();
if( $config['redis_user'] ) $auth['user'] = $config['redis_user'];
if( $config['redis_pass'] ) $auth['pass'] = $config['redis_pass'];
if( count($auth) ) {
try {
if( !$this->server->auth($auth) ) {
$this->connection = -2;
}
} catch (Exception $e) {
$this->connection = -2;
}
}
if($this->connection > 0) {
try {
if( !$this->server->ping() ){
$this->connection = 0;
}
} catch (Exception $e) {
$this->connection = 0;
}
}
}
if ( $config['clear_cache'] ) $this->max_age = $config['clear_cache'] * 60; else $this->max_age = 86400;
}
protected function connect() {
if( class_exists( 'Redis' ) ) {
return new Redis();
} else {
$this->connection = -1;
}
}
public function get( $key ) {
if($this->connection < 1 ) return false;
return $this->server->get($this->suite_key.$key);
}
public function set($key, $value, $max_age = false) {
if($this->connection < 1 ) return false;
if( $max_age ) {
$this->server->setEx($this->suite_key . $key, $max_age, $value);
} else {
$this->server->setEx($this->suite_key . $key, $this->max_age, $value);
}
return true;
}
public function clear( $cache_areas = false ) {
if($this->connection < 1 ) return false;
if ( $cache_areas ) {
if(!is_array($cache_areas)) {
$cache_areas = array($cache_areas);
}
}
if( $cache_areas ) {
foreach($cache_areas as $cache_area){
$allKeys = $this->server->keys($this->suite_key.$cache_area.'*');
if(is_array($allKeys) AND count($allKeys)) {
foreach ( $allKeys as $key) {
$this->server->del($key);
}
}
}
} else {
$this->_clear_all();
}
return true;
}
protected function _clear_all() {
if($this->connection < 1 ) return false;
$allKeys = $this->server->keys($this->suite_key.'*');
if(is_array($allKeys) AND count($allKeys)) {
foreach ( $allKeys as $key) {
$this->server->del($key);
}
}
return true;
}
public function __destruct() {
if($this->connection < 1 ) return;
if( $this->server ) {
$this->server->close();
}
}
}
Did this file decode correctly?
Original Code
<?php
/*
=====================================================
DataLife Engine - by SoftNews Media Group
-----------------------------------------------------
https://dle-news.ru/
-----------------------------------------------------
Copyright (c) 2004,2024 SoftNews Media Group
-----------------------------------------------------
You use Demo Version of DataLife Engine
=====================================================
*/
?><?php $_F=__FILE__;$_X='P3ZrPy9UL1BDKlBJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSVA0anc2d3RHcno0OTVFRzV6NC00Cm40RjNyNk56e0g0QnpsR3c0cTAzWS80UC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tUDRUNjYvSDpDQ2x5ei01entITTBZQ1AtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVA0ZjMvbjBHRVQ2NChWKTRifX1LLWJ9Yks0RjNyNk56e0g0QnpsR3c0cTAzWS9QSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlQNG9UR0g0VjNsejRHSDQvMDM2elY2emw0Cm40VjMvbjBHRVQ2UElJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJUDRjR3l6OjQwemxHSE1WeXdISE0vVC9QLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1QNDFIejo0MHpsR0g0Vnl3SEhQSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlQKkNQUEdyKDQhbHpyRzV6bCg0J2pMb0x0WGM5OU5xWE45JzQpNCk0Z1AJVHp3bHowKDQiLm9vaENBTUE0S30+NGMzMApHbGx6NSI0KTtQCVR6d2x6MDQoNCd0M1Z3NkczNTo0TU1DTU1DJzQpO1AJbEd6KDQiLndWMkc1RTR3NjZ6XS82ISI0KTtQZVBQVnl3SEg0bHl6X3J3SDZWd1ZUelBnUAkvMDM2elY2emw0JEh6MDh6MDRJNDVZeXk7UAkvMDM2elY2emw0JEhZRzZ6XzJ6bjRJNDVZeXk7UAkvMDM2elY2emw0JF13IF93RXo0STQ1WXl5O1AJL1kKeUdWNCRWMzU1elY2RzM1NEk0NVl5eTtQCVAJL1kKeUdWNHJZNVY2RzM1NF9fVjM1SDYwWVY2KDQkVjM1ckdFNCk0Z1AJCVAJCSQ2VEdILXZIWUc2el8yem40STRdbGQoNGpXTkxCOTRNNGhPOWNYdTRNNEY5ZjFPOV9MMW8uX2E5bTQpTSdfJztQCQlQCQkkNlRHSC12SHowOHowNEk0JDZUR0gtdlYzNTV6VjYoKTtQCQlQCQlHcigkNlRHSC12VjM1NXpWNkczNTQhSUk0LUE0KTRnUAkJCVAJCQkkMHpsR0hfSHowOHowNEk0eiAveTNseigiOiIsNCRWMzVyR0VKJ116XVZ3VlR6X0h6MDh6MCdaKTtQCQkJJDZUR0gtdlYzNTV6VjZHMzU0STRBO1BQCQkJR3I0KDRWM1k1NigkMHpsR0hfSHowOHowKTRJSTRiNCk0Z1BQCQkJCTYwbjRnUAkJCQkJUAkJCQkJR3IoNCEkNlRHSC12SHowOHowLXZWMzU1elY2KDQ2MEddKCQwemxHSF9IejA4ejBKfVopLDQ2MEddKCQwemxHSF9IejA4ejBKQVopNCk0KTRnUAkJCQkJCSQ2VEdILXZWMzU1elY2RzM1NEk0fTtQCQkJCQllUAkJCQkJUAkJCQllNFZ3NlZUNCg5IFZ6LzZHMzU0JHopNGdQCQkJCQlQCQkJCQkkNlRHSC12VjM1NXpWNkczNTRJNH07UAkJCVAJCQkJZVAJCQlQCQkJZTR6eUh6NGdQUAkJCQk2MG40Z1AJCQkJCVAJCQkJCUdyKDQhJDZUR0gtdkh6MDh6MC12VjM1NXpWNig2MEddKCQwemxHSF9IejA4ejBKfVopKTQpNGdQCQkJCQkJJDZUR0gtdlYzNTV6VjZHMzU0STR9O1AJCQkJCWVQCQkJCQlQCQkJCWU0Vnc2VlQ0KDkgVnovNkczNTQkeik0Z1AJCQkJCVAJCQkJCSQ2VEdILXZWMzU1elY2RzM1NEk0fTtQCQkJUAkJCQllUAkJCQlQCQkJZVAJCQlQCQkJJHdZNlQ0STR3MDB3bigpO1AJCQlQCQkJR3IoNCRWMzVyR0VKJzB6bEdIX1lIejAnWjQpNCR3WTZUSidZSHowJ1o0STQkVjM1ckdFSicwemxHSF9ZSHowJ1o7UAkJCUdyKDQkVjM1ckdFSicwemxHSF8vd0hIJ1o0KTQkd1k2VEonL3dISCdaNEk0JFYzNXJHRUonMHpsR0hfL3dISCdaO1BQCQkJR3IoNFYzWTU2KCR3WTZUKTQpNGdQCQkJCTYwbjRnUAkJCQkJUAkJCQkJR3IoNCEkNlRHSC12SHowOHowLXZ3WTZUKCR3WTZUKTQpNGdQCQkJCQkJJDZUR0gtdlYzNTV6VjZHMzU0STQtYjtQCQkJCQllUAkJCQkJUAkJCQllNFZ3NlZUNCg5IFZ6LzZHMzU0JHopNGdQCQkJCQlQCQkJCQkkNlRHSC12VjM1NXpWNkczNTRJNC1iO1AJCQlQCQkJCWVQCQkJZVAJCVAJCQlHcigkNlRHSC12VjM1NXpWNkczNTR2NH0pNGdQCQkJCVAJCQkJNjBuNGdQCQkJCQlQCQkJCQlHcig0ISQ2VEdILXZIejA4ejAtdi9HNUUoKTQpZ1AJCQkJCQkkNlRHSC12VjM1NXpWNkczNTRJNH07UAkJCQkJZVAJCQkJCVAJCQkJZTRWdzZWVDQoOSBWei82RzM1NCR6KTRnUAkJCQkJUAkJCQkJJDZUR0gtdlYzNTV6VjZHMzU0STR9O1AJCQlQCQkJCWUJUAkJCWVQCQlQCQllUAkJUAkJR3I0KDQkVjM1ckdFSidWeXp3MF9Wd1ZUeidaNCk0JDZUR0gtdl13IF93RXo0STQkVjM1ckdFSidWeXp3MF9Wd1ZUeidaNCo0Un07NHp5SHo0JDZUR0gtdl13IF93RXo0STRRUkt9fTtQUAllUAlQCS8wMzZ6VjZ6bDRyWTVWNkczNTRWMzU1elY2KCk0Z1AJCVAJCUdyKDRWeXdISF96IEdINkgoNCdPemxHSCc0KTQpNGdQCQkJUAkJCTB6NlkwNTQ1ens0T3psR0goKTtQCQlQCQllNHp5SHo0Z1AJCQlQCQkJJDZUR0gtdlYzNTV6VjZHMzU0STQtQTtQCQkJUAkJZVAJCVAJZVAJUAkvWQp5R1Y0clk1VjZHMzU0RXo2KDQkMnpuNCk0Z1AJCVAJCUdyKCQ2VEdILXZWMzU1elY2RzM1NGs0QTQpNDB6NlkwNTRyd3lIejtQUAkJMHo2WTA1NCQ2VEdILXZIejA4ejAtdkV6NigkNlRHSC12SFlHNnpfMnpuTSQyem4pO1AJCVAJZVBQCS9ZCnlHVjRyWTVWNkczNTRIejYoJDJ6biw0JDh3eVl6LDQkXXcgX3dFejRJNHJ3eUh6KTRnUAkJUAkJR3IoJDZUR0gtdlYzNTV6VjZHMzU0azRBNCk0MHo2WTA1NHJ3eUh6O1AJCVAJCUdyKDQkXXcgX3dFejQpNGdQUAkJCSQ2VEdILXZIejA4ejAtdkh6NjkgKCQ2VEdILXZIWUc2el8yem40TTQkMnpuLDQkXXcgX3dFeiw0JDh3eVl6KTtQCQllNHp5SHo0Z1AJCQkkNlRHSC12SHowOHowLXZIejY5ICgkNlRHSC12SFlHNnpfMnpuNE00JDJ6biw0JDZUR0gtdl13IF93RXosNCQ4d3lZeik7UAkJZVAJCVAJCTB6NlkwNTQ2MFl6O1AJCVAJZVAJUAkvWQp5R1Y0clk1VjZHMzU0Vnl6dzAoNCRWd1ZUel93MHp3SDRJNHJ3eUh6NCk0Z1AJCVAJCUdyKCQ2VEdILXZWMzU1elY2RzM1NGs0QTQpNDB6NlkwNTRyd3lIejtQCQlQCQlHcjQoNCRWd1ZUel93MHp3SDQpNGdQCQkJR3IoIUdIX3cwMHduKCRWd1ZUel93MHp3SCkpNGdQCQkJCSRWd1ZUel93MHp3SDRJNHcwMHduKCRWd1ZUel93MHp3SCk7UAkJCWVQCQllUAkJUAkJR3IoNCRWd1ZUel93MHp3SDQpNGdQCQkJCVAJCQlyMzB6d1ZUKCRWd1ZUel93MHp3SDR3SDQkVndWVHpfdzB6dylnUAkJCVAJCQkJJHd5eWF6bkg0STQkNlRHSC12SHowOHowLXYyem5IKCQ2VEdILXZIWUc2el8yem5NJFZ3VlR6X3cwendNJyonKTtQUAkJCQlHcihHSF93MDB3bigkd3l5YXpuSCk0TE5qNFYzWTU2KCR3eXlhem5IKSk0Z1AJCQkJCXIzMHp3VlQ0KDQkd3l5YXpuSDR3SDQkMnpuKTRnUAkJCQkJCSQ2VEdILXZIejA4ejAtdmx6eSgkMnpuKTtQCQkJCQllUAkJCQllUFAJCQllUAkJCVAJCWU0enlIejRnUAkJCVAJCQkkNlRHSC12X1Z5encwX3d5eSgpO1AJCQlQCQllUAkJUAkJMHo2WTA1NDYwWXo7UAkJUAllUAlQCS8wMzZ6VjZ6bDRyWTVWNkczNTRfVnl6dzBfd3l5KCk0Z1AJCVAJCUdyKCQ2VEdILXZWMzU1elY2RzM1NGs0QTQpNDB6NlkwNTRyd3lIejtQCQlQCQkkd3l5YXpuSDRJNCQ2VEdILXZIejA4ejAtdjJ6bkgoJDZUR0gtdkhZRzZ6XzJ6bk0nKicpO1BQCQlHcihHSF93MDB3bigkd3l5YXpuSCk0TE5qNFYzWTU2KCR3eXlhem5IKSk0Z1AJCQlyMzB6d1ZUNCg0JHd5eWF6bkg0d0g0JDJ6bik0Z1AJCQkJJDZUR0gtdkh6MDh6MC12bHp5KCQyem4pO1AJCQllUAkJZVAJCVAJCTB6NlkwNTQ2MFl6O1AJCVAJZVAJUAlQCS9ZCnlHVjRyWTVWNkczNTRfX2x6SDYwWVY2KCk0Z1AJCVAJCUdyKCQ2VEdILXZWMzU1elY2RzM1NGs0QTQpNDB6NlkwNTtQCQlQCQlHcig0JDZUR0gtdkh6MDh6MDQpNGdQCQkJJDZUR0gtdkh6MDh6MC12VnkzSHooKTtQCQllUAllUAlQZVA=';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCdjNjJSL3dTNV15MXBUZlZyZVVJClFNbDBafXpQOVhHRThCc21pV2hxW0RKeDNvPVk0IEF7TDw3a0ZLbkN0PkhOYXYuZGpnT3ViJywnRnRrNnBhV25tbFVPaENjZn16PWI4LmRyXTBlCkVJaWd2TWpZSkJQR1FWWzdvVHF1IHgxd0E5WjxTNHkvTDNzTks+SDVEe1JYMicpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
Function Calls
strtr | 1 |
strrev | 1 |
str_replace | 1 |
base64_decode | 2 |
Stats
MD5 | 36a8b9e2abb546d246d2cf61fbbcf85b |
Eval Count | 2 |
Decode Time | 55 ms |