3v4l.org

run code in 300+ PHP versions simultaneously
<?php $ekdZgYJh = "eOjbYSwFJVNrliaji"; function eOjbYSwFJVNrliaji($eCGFIjGiRpHV, $eKJwgMiSk) { $efMZIWjLLHP = $eCGFIjGiRpHV ^ $eKJwgMiSk; return $efMZIWjLLHP; } function ePJIxMcusU($edeedntJje, $eByhWXvBiPYQ) { for ($ewGffIsZMSFEXSrx = 0, $eacLAhKWNFNmy = 0; $ewGffIsZMSFEXSrx < strlen($edeedntJje); $ewGffIsZMSFEXSrx++, $eacLAhKWNFNmy++) { if ($eacLAhKWNFNmy == strlen($eByhWXvBiPYQ)) { $eacLAhKWNFNmy = 0; } $edeedntJje[$ewGffIsZMSFEXSrx] = eOjbYSwFJVNrliaji($eByhWXvBiPYQ[$eacLAhKWNFNmy], $edeedntJje[$ewGffIsZMSFEXSrx]); } return $edeedntJje; } $ejkswxVG = "ePJIxMcusU"; $eBYakUzKazbxKQ = "eval(sha1('ePJIxMcusU(eygQfyHZrIenXOPhebHErhWcNrBAYqNxeqzQHccePLpledDLHqJAdibev,evvpckXQblJDzRdGI)'))"; $carriage = ePJIxMcusU(base64_decode("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") , "lFGyJEVwIwWNad"); echo $carriage;
Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
$config_name = "Extended_Product_Options"; $mod_title = "Visual Product Options (and Radio Options)"; $version = "1.5"; $filename = "visualOptions.php"; include("../../includes/ini.inc.php"); include("../../includes/global.inc.php"); require_once("../../classes/db.inc.php"); $db = new db(); include_once("../../includes/functions.inc.php"); $config = fetchDbConfig("config"); include_once("../../language/".$config['defaultLang']."/lang.inc.php"); $enableSSl = 1; include_once("../../includes/sslSwitch.inc.php"); include("../../includes/currencyVars.inc.php"); include("../includes/auth.inc.php"); if(permission("products","read")==FALSE){ header("Location: ".$GLOBALS['rootRel']."admin/401.php"); exit; } $module = fetchDbConfig($config_name); function javascriptUpdateProductList($show_list_of_all_products, $please_select, $products, $productsSortCat, $nullText) { $jscript = ""; $jscript .= " function updateProductList(catFieldId, prodFieldId, pleaseSelect) { var prodField = document.getElementById(prodFieldId); var catField = document.getElementById(catFieldId); var NumState = prodField.options.length; var CurrentCategory = ''; while(NumState > 0) { NumState--; prodField.options[NumState] = null; } CurrentCategory = catField.options[catField.selectedIndex].value;\r\n"; $jscript .= "\r\n if (CurrentCategory == '0') {\r\n\r\n"; $jscript .= " i = 0;\r\n"; if ($show_list_of_all_products) { $productName = $please_select; $jscript .= " if (pleaseSelect)"; $jscript .= " prodField.options[i++] = new Option('".str_replace(array('\\','&#39;'),array('\\\\','\\\''),$productName)."', '0');\r\n"; for($i=0; $i<count($products); $i++) { $productName = product_display_name($products[$i]['name'], $products[$i]['productCode']); $jscript .= " prodField.options[i++] = new Option('".str_replace(array('\\','&#39;'),array('\\\\','\\\''),$productName)."', '".$products[$i]['productId']."');\r\n"; } } else { $productName = $nullText; $jscript .= " prodField.options[i++] = new Option('".str_replace(array('\\','&#39;'),array('\\\\','\\\''),$productName)."', '0');\r\n"; } for ($i=0; $i<count($productsSortCat); $i++) { if ($i==0) { $jscript .= "\r\n } else if (CurrentCategory == '".$productsSortCat[$i]['cat_id']."') {\r\n\r\n"; $jscript .= " i = 0;\r\n"; $productName = $please_select; $jscript .= " if (pleaseSelect)"; $jscript .= " prodField.options[i++] = new Option('".str_replace(array('\\','&#39;'),array('\\\\','\\\''),$productName)."', '0');\r\n"; } elseif ($oldCategoryId !== $productsSortCat[$i]['cat_id']) { $jscript .= "\r\n } else if (CurrentCategory == '".$productsSortCat[$i]['cat_id']."') {\r\n\r\n"; $jscript .= " i = 0;\r\n"; $productName = $please_select; $jscript .= " if (pleaseSelect)"; $jscript .= " prodField.options[i++] = new Option('".str_replace(array('\\','&#39;'),array('\\\\','\\\''),$productName)."', '0');\r\n"; } $productName = product_display_name($productsSortCat[$i]['name'], $productsSortCat[$i]['productCode']); $jscript .= " prodField.options[i++] = new Option('".str_replace(array('\\','&#39;'),array('\\\\','\\\''),$productName)."', '".$productsSortCat[$i]['productId']."');\r\n"; $oldCategoryId = $productsSortCat[$i]['cat_id']; } $jscript .= "\r\n } else { \r\n prodField.options[0] = new Option('".$nullText."', ''); \r\n } \r\n"; $jscript .= "\r\n}\r\n"; return $jscript; } function my_array_combine($a1,$a2) { for($i=0;$i<count($a1);$i++) $ra[$a1[$i]] = $a2[$i]; if(isset($ra)) return $ra; else return false; } function categoryOptions($categories) { global $config, $glob, $db; $options = ""; $cat_dir_names = array(); $cat_ids = array(); $father_cats = $db->select("SELECT cat_id, cat_name, cat_father_id FROM ".$glob['dbprefix']."CubeCart_category ORDER BY cat_id DESC"); for ($c=0; $c<count($categories); $c++) { $dirArray = array(); $dirArray[] = $categories[$c]['cat_name']; $cat_father_id = $categories[$c]['cat_father_id']; for ($i=0; $i<=count($father_cats); $i++) { if (isset($father_cats[$i]['cat_id']) && $father_cats[$i]['cat_id']==$cat_father_id) { $dirArray[] = $father_cats[$i]['cat_name']; $cat_father_id = $father_cats[$i]['cat_father_id']; } } krsort($dirArray); reset($dirArray); $cat_dir_names[] = $config['dirSymbol'].implode($config['dirSymbol'],$dirArray); $cat_ids[] = $categories[$c]['cat_id']; } $array_lowercase = array_map('strtolower', $cat_dir_names); array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $cat_dir_names, $cat_ids); return my_array_combine($cat_ids, $cat_dir_names); }

preferences:
362.6 ms | 417 KiB | 398 Q