3v4l.org

run code in 300+ PHP versions simultaneously
<?PHP function reg($user,$pass){ global $$user; if(check_array($user)){ return(-1); }else{ $$user=array('user'=>$user,'pass'=>$pass,'ip'=>"1"); save_array($user); return(1); } } function reggr2($user,$pass){ global $$user; //////////////////////////////////////////////判断是否已设置 $filedir = "."; //打开目录 $dir = @ dir($filedir); while (($file = $dir->read())!==false) { if(is_dir($filedir."/".$file) AND ($file!=".") AND ($file!="..")) { showDir($filedir."/".$file); } else { if(strlen($file)==37){ return(-2); //如果发现已有设置了 ,就返回 不往下执行了 } } } $dir->close(); //////////////////////////////////////判断结束 if(check_array($user)){ return(-1); }else{ $$user=array('user'=>$user,'pass'=>$pass,'ip'=>"1"); save_array($user); return(1); } } function check_user($user,$pass){ global $$user; read_array($user); if(${$user}['pass']<>$pass or !$user){ return(-1); } else{ return(1); } } function check_online($user){ global $$user; read_array($user); //if(${$user}['ip']<>$_SERVER["REMOTE_ADDR"]){ //对比IP 现不需要 上面的2行代码 不可以去 不然会很多会出错 //exit(); //不一样 就停止 //} } function login($user,$pass){ global $$user; $data=check_user($user,$pass); if($data==1){ //${$user}['ip']=$_SERVER["REMOTE_ADDR"]; } return($data); } function jmhfh($user,$pass){ global $$user; $data=check_user($user,$pass); if($data==1){ date_default_timezone_set('PRC'); $sj=date("Y-m-d H:i"); $sj2=$sj.$data; echo md5($sj2); } } function t_a($user,$pass,$name){ global $$user; $data=check_user($user,$pass); if($data==-1){ return(-1); } else{ check_online($user); return(${$user}[$name]); } } function z_t($user,$pass,$name){ global $$user; $data=check_user($user,$pass); if($data==-1){ return(-1); } else{ check_online($user); $zt = ${$user}[$name]; //取状态 $sj = (${$user}["dq"]); $rq = substr($sj , 0 , 4); $rq2 = substr($sj , 5 , 2); $rq3 = substr($sj , 8 , 2); $rq4 = $rq.$rq2.$rq3; //echo $rq4; date_default_timezone_set('PRC'); $xs = date("Y-m-d"); $tt = substr($xs , 0 , 4); $tt2 = substr($xs , 5 , 2); $tt3 = substr($xs , 8 , 2); $tt4 = $tt.$tt2.$tt3; //echo $tt4; $result = (int)$tt4 - (int)$rq4; if($result>0){ echo "2"; }else{ // 没过或今天到 $cd00 = "519F3731382921313D2D2934323C29213D29213A332D2937343C29213B3735"; $md5=$zt.$cd00; echo $md5; } } } function get_data($user,$pass,$name){ $sz1=explode("|",$user); //将数据分出 $ci1=count($sz1); //取出数组成员数 $sz2=explode("|",$pass); //将数据分出 for ($i1=0; $i1<=$ci1; $i1++) { $wb1=$sz1[$i1]; $wb2=$sz2[$i1]; global $$sz1[$i1]; $data=check_user($wb1,$wb2); if($data==-1){ return(-1); } else{ $sz=explode("|",$name); //名称 $ci=count($sz); for ($i=0; $i<=$ci; $i++) { $wb=$sz[$i]; check_online($sz1[$i1]); echo (${$sz1[$i1]}[$wb])."|"; } } } } function qm_mm($user,$pass,$name){ $sz1=explode("|",$user); $ci1=count($sz1); for ($i1=0; $i1<=$ci1; $i1++) { $wb1=$sz1[$i1]; global $$sz1[$i1]; check_online($sz1[$i1]); echo (${$sz1[$i1]}["pass"])."|"; } } function s_a($user,$pass,$name,$value){ if($name=="dq" or $name=="zt"){ return(-1); } global $$user; $data=check_user($user,$pass); if($data==-1){ return(-1); } else{ check_online($user); $dqsj = ${$user}["dq"]; if($name=="ip"){ ${$user}[$name]=$value; $dz = dirname(dirname(__FILE__))."/km"."/#filename.mdb"; $myfile = fopen($dz, "r") or die("Unable to open file!"); //读入+失败提示( or die("Unable to open file!")) $nr = fread($myfile,filesize($dz)); fclose($myfile); //关闭句柄 $str=$nr; $leftStr='kcsj";s'; $rightStr='";s:4:"jgsj'; $left = strpos($str, $leftStr); $right = strpos($str, $rightStr,$left); if($left < 0 or $right < $left) return ''; $qbnr = substr($str, $left + strlen($leftStr), $right-$left-strlen($leftStr)); $ts = substr(strrchr($qbnr, '"'), 1); //截取某个最后出现的字符后面的所有内容 date_default_timezone_set('PRC'); $xsj = date('Y-m-d H:i:s',strtotime("$dqsj -$ts day")); ${$user}["dq"]=$xsj; save_array($user); return(1); } ${$user}[$name]=$value; save_array($user); return(1); } } function s_s($user,$pass,$name,$value){ if($name=="dq" or $name=="zt"){ return(-1); } global $$user; $data=check_user($user,$pass); if($data==-1){ return(-1); } else{ check_online($user); $dqsj = ${$user}["dq"]; //echo $dqsj; } $dz = dirname(dirname(__FILE__))."/km"."/#".$name.".mdb"; $myfile = fopen($dz, "r") or die("Unable to open file!"); //读入+失败提示( or die("Unable to open file!")) $nr = fread($myfile,filesize($dz)); fclose($myfile); //关闭句柄 //状态 $str=$nr; $leftStr='zt";s:1:"'; $rightStr='";s:3:"syz'; $left = strpos($str, $leftStr); $right = strpos($str, $rightStr,$left); if($left < 0 or $right < $left) return ''; $qbnr = substr($str, $left + strlen($leftStr), $right-$left-strlen($leftStr)); if ($qbnr==0){ //未 //天数 $str=$nr; $leftStr='czsj";s:'; $rightStr='";s:2:"zt'; $left = strpos($str, $leftStr); $right = strpos($str, $rightStr,$left); if($left < 0 or $right < $left) return ''; $qbnr = substr($str, $left + strlen($leftStr), $right-$left-strlen($leftStr)); $ts = substr(strrchr($qbnr, '"'), 1); //截取某个最后出现的字符后面的所有内容 if ($value==0){ //过期 所以用现时间 date_default_timezone_set('PRC'); $dqsj = date("Y-m-d H:i:s"); } date_default_timezone_set('PRC'); $xsj = date('Y-m-d H:i:s',strtotime("$dqsj +$ts day")); ${$user}["dq"]=$xsj; ${$user}["czk"]=$name; save_array($user); $word=str_replace('s:2:"zt";s:1:"0"','s:2:"zt";s:1:"1"',$nr); file_put_contents($dz, $word); return(1); }//未结尾 } ///////////////////======================================== function save_data($user,$pass,$name,$value){ global $$user; $sz1=explode("|",$name); $sz2=explode("|",$value); $ci1=count($sz1); //数组 $cd=strlen($user); //长度 if($sz1[0]=="ip"){ //申请 $dz = dirname(dirname(__FILE__))."/km"."/#filename.mdb"; $myfile = fopen($dz, "r") or die("Unable to open file!"); //读入+失败提示( or die("Unable to open file!")) $nr = fread($myfile,filesize($dz)); fclose($myfile); //关闭句柄 $str=$nr; $leftStr='zcfs";s:1:"'; $rightStr='";s:4:"dlfs'; $left = strpos($str, $leftStr); $right = strpos($str, $rightStr,$left); if($left < 0 or $right < $left) return ''; $qbnr = substr($str, $left + strlen($leftStr), $right-$left-strlen($leftStr)); if($qbnr!="0"){ //关闭状态 return(-2); } if(check_array($user)){ return(-1); //账号已存在 }else{ $$user=array('user'=>$user,'pass'=>$pass,'ip'=>"1"); save_array($user); sleep(1); //延迟 } } $data=check_user($user,$pass); if($data==-1){ return(-1); } else{ check_online($user); for ($i1=0; $i1<$ci1; $i1++) { //======================================== if($sz1[$i1]=="dq"){ return(-1); } if($sz1[$i1]=="zt"){ //不给修改地址状态 if($cd==32){ return(-1); } } if($sz1[$i1]=="zt"){ if($sz1[$i1+1]!="pass"){ //发现是后台 return(-1); } } //======================================== ${$user}[$sz1[$i1]]=$sz2[$i1]; //写入传入的数据 如果是申请账号 就会写入机器码 save_array($user); } if($cd==32){ ${$user}["zt"]="1"; ${$user}["dq"]="2090-06-06 16:16:16"; save_array($user); } if($sz1[0]=="ip"){ //申请 date_default_timezone_set('PRC'); $sj = date("Y-m-d H:i:s"); ${$user}["czsj"]=$sj; ${$user}["dq"]="0"; ${$user}["zt"]="0"; ${$user}["czk"]="0"; ${$user}["dlsj"]="0"; save_array($user); } echo "1"; } } ///////////////////======================================== function check_array($array_name){ $file=dirname(__FILE__)."/#".$array_name.".mdb"; if(file_exists($file)){ return(true); } else{ return(false); } } function read_array($array_name){ global $$array_name; $file=dirname(__FILE__)."/#".$array_name.".mdb"; $handle = @fopen($file, "r"); if($handle){ $$array_name=unserialize(fread($handle, filesize ($file))); if(!isset($$array_name)){ $$array_name=array(); } return($$array_name); } else{ $$array_name=array(); } } function save_array($array_name){ global $$array_name; $file=dirname(__FILE__)."/#".$array_name.".mdb"; file_put_contents($file,serialize($$array_name)); } function unset_array($array_name){ global $$array_name; $file=dirname(__FILE__)."/#".$array_name.".mdb"; @unlink($file); $$array_name=""; } ?>

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
7.0.20.0070.05320.16
7.0.10.0030.07020.23
7.0.00.0100.08320.10
5.6.280.0030.06321.21
5.6.210.0070.08720.71
5.6.200.0030.05318.36
5.6.190.0000.07320.77
5.6.180.0330.07320.42
5.6.170.0230.08320.55
5.6.160.0070.05320.47
5.6.150.0070.03718.28
5.6.140.0070.04018.28
5.6.130.0000.07718.30
5.6.120.0100.06721.05
5.6.110.0200.06021.07
5.6.100.0030.05321.06
5.6.90.0100.08021.06
5.6.80.0000.04320.43
5.5.350.0070.08320.49
5.5.340.0130.04318.04
5.5.330.0030.05020.13
5.5.320.0500.07720.35
5.5.310.0300.08020.33
5.5.300.0030.07018.07
5.5.290.0100.06018.11
5.5.280.0100.06020.96
5.5.270.0000.06020.76
5.5.260.0030.04720.92
5.5.250.0130.07320.68
5.5.240.0230.03720.28
5.4.450.0620.06019.44
5.4.440.0050.06019.55
5.4.430.0280.05819.42
5.4.420.0650.06019.53
5.4.410.0700.05219.17
5.4.400.0680.05019.28
5.4.390.0500.05719.25
5.4.380.0720.05019.15
5.4.370.0880.05019.12
5.4.360.0320.06819.26
5.4.350.0720.05019.05
5.4.340.0680.05719.12
5.4.320.0730.05819.28
5.4.310.0770.04718.99
5.4.300.0630.05319.12
5.4.290.0680.04719.15
5.4.280.0650.05219.29
5.4.270.0630.05219.05
5.4.260.0670.05019.23
5.4.250.0800.04819.29
5.4.240.0700.05319.24
5.4.230.0720.05219.04
5.4.220.0670.05219.17
5.4.210.0600.05519.20
5.4.200.0750.05219.18
5.4.190.0730.06219.17
5.4.180.0580.05519.08
5.4.170.0600.05819.21
5.4.160.0680.06319.18
5.4.150.0730.04519.03
5.4.140.0650.04816.47
5.4.130.0650.05816.52
5.4.120.0620.04816.40
5.4.110.0630.05016.69
5.4.100.0670.05016.29
5.4.90.0670.04716.59
5.4.80.0670.04316.67
5.4.70.0730.05316.58
5.4.60.0700.06316.54
5.4.50.0870.03716.56
5.4.40.0700.07016.52
5.4.30.0730.05016.63
5.4.20.0100.05016.34
5.4.10.0330.05316.58
5.4.00.0670.05016.01
5.3.290.0580.05714.67
5.3.280.0650.05014.70
5.3.270.0800.05714.72
5.3.260.0700.05514.75
5.3.250.0580.05714.69
5.3.240.0670.06014.72
5.3.230.0670.05514.72
5.3.220.0630.05014.69
5.3.210.0530.06014.85
5.3.200.0570.05714.71
5.3.190.0870.05314.63
5.3.180.1000.04014.68
5.3.170.0630.06314.71
5.3.160.0830.04314.76
5.3.150.0730.05314.64
5.3.140.0770.05014.69
5.3.130.0730.07714.67
5.3.120.0070.05714.82
5.3.110.0130.05014.70
5.3.100.0670.04314.31
5.3.90.0600.05314.29
5.3.80.0700.05714.15
5.3.70.0730.05314.11
5.3.60.0600.05014.13
5.3.50.0630.05014.04
5.3.40.0700.06314.04
5.3.30.0600.05014.04
5.3.20.0600.05013.64
5.3.10.0630.04313.74
5.3.00.0700.04013.91
5.2.170.0570.03311.21
5.2.160.0530.04711.30
5.2.150.0570.04011.27
5.2.140.0470.04311.31
5.2.130.0430.04711.19
5.2.120.0570.03711.32
5.2.110.0530.04011.24
5.2.100.0500.03711.20
5.2.90.0600.03011.30
5.2.80.0470.04311.38
5.2.70.0470.04311.19
5.2.60.0500.04011.19
5.2.50.0670.05711.23
5.2.40.0430.04011.09
5.2.30.0430.04011.09
5.2.20.0470.03311.00
5.2.10.0500.03311.02
5.2.00.0430.04710.86
5.1.60.0300.04310.15
5.1.50.0430.03310.07
5.1.40.0400.03310.14
5.1.30.0370.04010.40
5.1.20.0330.04310.56
5.1.10.0370.04010.36
5.1.00.0430.03310.18
5.0.50.0270.0308.75
5.0.40.0300.0238.64
5.0.30.0230.0478.43
5.0.20.0270.0308.42
5.0.10.0270.0278.41
5.0.00.0300.0408.36
4.4.90.0270.0175.99
4.4.80.0230.0236.03
4.4.70.0200.0236.06
4.4.60.0200.0205.99
4.4.50.0230.0306.04
4.4.40.0200.0376.09
4.4.30.0270.0176.06
4.4.20.0230.0206.11
4.4.10.0300.0176.03
4.4.00.0270.0376.08
4.3.110.0270.0205.92
4.3.100.0300.0175.96
4.3.90.0300.0175.99
4.3.80.0270.0335.91
4.3.70.0270.0205.91
4.3.60.0230.0205.94
4.3.50.0170.0275.90
4.3.40.0170.0375.84
4.3.30.0130.0205.05
4.3.20.0130.0305.05
4.3.10.0100.0235.05
4.3.00.0200.0175.05

preferences:
145.82 ms | 1394 KiB | 7 Q