3v4l.org

run code in 300+ PHP versions simultaneously
<?php $code=' array( "SB" => [ "rules" => [ 0 => [ "key" => "SBmis", "desc" => "produktový záznam účtu nenalezen", "def" =>' AND $Account.SourceSystemName == "SB" $SB.TotalBalance == "" ' ], 1 => [ "key" => "SBmis", "desc" => "produktový záznam úvěru nenalezen", "def" =>' AND $Account.SourceSystemName == "SB LOANS" explode("/",$Account.Status)[1] != $SB.Status ' ] ] ] ) '; $token = token_get_all("<?php ".$code); $newcode = ""; $i = 0; while (++$i < count($token)) { // enter into array; then start. if (is_array($token[$i])) $newcode .= $token[$i][1]; else $newcode .= $token[$i]; if ($token[$i] == "(") { $ending = ")"; break; } if ($token[$i] == "[") { $ending = "]"; break; } } // init variables $escape = 0; $wait_for_non_whitespace = 0; $parenthesis_count = 0; $entry = ""; // main loop while (++$i < count($token)) { // don't match commas in func($a, $b) if ($token[$i] == "(" || $token[$i] == "{") // ( -> normal parenthesis; { -> closures $parenthesis_count++; if ($token[$i] == ")" || $token[$i] == "}") $parenthesis_count--; // begin new string after T_DOUBLE_ARROW if (!$escape && $wait_for_non_whitespace && (!is_array($token[$i]) || $token[$i][0] != T_WHITESPACE)) { $escape = 1; $wait_for_non_whitespace = 0; $entry .= "'"; } // here is a T_DOUBLE_ARROW, there will be a string after this if (is_array($token[$i]) && $token[$i][0] == T_DOUBLE_ARROW && !$escape) { $wait_for_non_whitespace = 1; } // entry ended: comma reached if (!$parenthesis_count && $token[$i] == "," || ($parenthesis_count == -1 && $token[$i] == ")" && $ending == ")") || ($ending == "]" && $token[$i] == "]")) { // go back to the first non-whitespace $whitespaces = ""; if ($parenthesis_count == -1 || ($ending == "]" && $token[$i] == "]")) { $cut_at = strlen($entry); while ($cut_at && ord($entry[--$cut_at]) <= 0x20); // 0x20 == " " $whitespaces = substr($entry, $cut_at + 1, strlen($entry)); $entry = substr($entry, 0, $cut_at + 1); } // $escape == true means: there was somewhere a T_DOUBLE_ARROW if ($escape) { $escape = 0; $newcode .= $entry."'"; } else { $newcode .= "'".addcslashes($entry, "'\\")."'"; } $newcode .= $whitespaces.($parenthesis_count?")":(($ending == "]" && $token[$i] == "]")?"]":",")); // reset $entry = ""; } else { // add actual token to $entry if (is_array($token[$i])) { $addChar = $token[$i][1]; } else { $addChar = $token[$i]; } if ($entry == "" && $token[$i][0] == T_WHITESPACE) { $newcode .= $addChar; } else { $entry .= $escape?str_replace(array("'", "\\"), array("\\'", "\\\\"), $addChar):$addChar; } } } //append remaining chars like whitespaces or ; $newcode .= $entry; print $newcode;

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)
5.4.320.0060.03612.49
5.4.310.0080.03512.49
5.4.300.0050.03612.50
5.4.290.0040.04012.50
5.4.280.0040.03712.39
5.4.270.0070.03512.39
5.4.260.0060.03612.39
5.4.250.0040.03812.39
5.4.240.0080.03212.39
5.4.230.0060.03612.38
5.4.220.0050.03712.38
5.4.210.0050.03512.38
5.4.200.0050.03812.38
5.4.190.0040.03812.38
5.4.180.0050.03712.38
5.4.170.0070.03612.39
5.4.160.0050.03612.38
5.4.150.0050.03712.38
5.4.140.0050.03812.07
5.4.130.0020.04112.05
5.4.120.0060.03512.01
5.4.110.0070.03312.01
5.4.100.0050.03612.01
5.4.90.0080.03512.01
5.4.80.0050.03812.01
5.4.70.0090.04012.00
5.4.60.0030.03712.01
5.4.50.0100.03412.01
5.4.40.0050.03411.99
5.4.30.0060.03411.99
5.4.20.0030.03711.99
5.4.10.0060.03411.99
5.4.00.0100.03111.48
5.3.290.0090.04012.80
5.3.280.0050.03812.71
5.3.270.0060.03812.72
5.3.260.0030.04212.72
5.3.250.0050.03812.72
5.3.240.0070.03612.72
5.3.230.0070.03712.71
5.3.220.0060.03812.68
5.3.210.0070.04412.68
5.3.200.0060.03812.68
5.3.190.0070.04512.68
5.3.180.0070.03712.68
5.3.170.0030.04912.67
5.3.160.0060.05112.68
5.3.150.0070.03612.68
5.3.140.0070.03512.66
5.3.130.0040.04112.66
5.3.120.0050.03912.66
5.3.110.0080.03812.66
5.3.100.0120.03312.12
5.3.90.0110.03212.09
5.3.80.0070.03412.07
5.3.70.0070.04012.07
5.3.60.0120.03212.06
5.3.50.0090.03412.00
5.3.40.0060.03512.00
5.3.30.0030.03611.95
5.3.20.0090.03111.72
5.3.10.0050.03511.70
5.3.00.0050.03611.69
5.2.170.0040.0319.19
5.2.160.0080.0299.18
5.2.150.0040.0329.19
5.2.140.0050.0309.18
5.2.130.0060.0279.14
5.2.120.0060.0369.14
5.2.110.0030.0329.15
5.2.100.0020.0309.14
5.2.90.0040.0289.14
5.2.80.0040.0309.14
5.2.70.0020.0319.14
5.2.60.0050.0299.09
5.2.50.0060.0289.06
5.2.40.0060.0279.04
5.2.30.0050.0299.02
5.2.20.0040.0339.00
5.2.10.0070.0308.93
5.2.00.0040.0288.79
5.1.60.0040.0238.07
5.1.50.0050.0248.07
5.1.40.0030.0268.05
5.1.30.0030.0278.40
5.1.20.0040.0278.43
5.1.10.0040.0278.14
5.1.00.0050.0258.15
5.0.50.0030.0216.63
5.0.40.0060.0166.48
5.0.30.0010.0336.29
5.0.20.0050.0176.27
5.0.10.0030.0206.25
5.0.00.0040.0306.23
4.4.90.0030.0224.78
4.4.80.0050.0164.75
4.4.70.0020.0164.76
4.4.60.0040.0144.76
4.4.50.0040.0144.77
4.4.40.0060.0224.71
4.4.30.0030.0154.76
4.4.20.0030.0144.85
4.4.10.0030.0154.85
4.4.00.0020.0254.76
4.3.110.0050.0204.67
4.3.100.0020.0154.66
4.3.90.0020.0154.63
4.3.80.0030.0244.58
4.3.70.0020.0164.63
4.3.60.0020.0154.63
4.3.50.0020.0164.63
4.3.40.0030.0234.54
4.3.30.0020.0163.29
4.3.20.0020.0163.26
4.3.10.0020.0163.22
4.3.00.0000.0307.01

preferences:
134.36 ms | 1394 KiB | 7 Q