3v4l.org

run code in 300+ PHP versions simultaneously
<?php function lzw_compress($string) { // compression $dictionary = array_flip(range("\0", "\xFF")); $word = ""; $codes = array(); for ($i=0; $i <= strlen($string); $i++) { $x = substr($string, $i, 1); if (strlen($x) && isset($dictionary[$word . $x])) { $word .= $x; } elseif ($i) { $codes[] = $dictionary[$word]; $dictionary[$word . $x] = count($dictionary); $word = $x; } } // convert codes to binary string $dictionary_count = 256; $bits = 8; // ceil(log($dictionary_count, 2)) $return = ""; $rest = 0; $rest_length = 0; foreach ($codes as $code) { $rest = ($rest << $bits) + $code; $rest_length += $bits; $dictionary_count++; if ($dictionary_count >> $bits) { $bits++; } while ($rest_length > 7) { $rest_length -= 8; $return .= chr($rest >> $rest_length); $rest &= (1 << $rest_length) - 1; } } return $return . ($rest_length ? chr($rest << (8 - $rest_length)) : ""); } /** LZW decompression * @param string compressed binary data * @return string original data */ function lzw_decompress($binary) { $dictionary_count = 256; $bits = 8; $codes = array(); $rest = 0; $rest_length = 0; mb_internal_encoding("UTF-8"); for ($i = 0; $i < mb_strlen($binary); $i++ ) {$codes[] = mb_ord(mb_substr($binary, $i, 1)); } // decompression $dictionary = range("\0", "\xFF"); $return = ""; foreach ($codes as $i => $code) { $element = $dictionary[$code]; if (!isset($element)) $element = $word . $word[0]; $return .= $element; if ($i) $dictionary[] = $word . $element[0]; $word = $element; } return $return; } function mb_ord($string) { if (extension_loaded('mbstring') === true) { mb_language('Neutral'); mb_internal_encoding('UTF-8'); mb_detect_order(array('UTF-8', 'ISO-8859-15', 'ISO-8859-1', 'ASCII')); $result = unpack('N', mb_convert_encoding($string, 'UCS-4BE', 'UTF-8')); if (is_array($result) === true) return $result[1]; } return ord($string); } echo lzw_decompress("\n1̇“ÙŒÞl7œ‡B1„4vb0˜Ífs‘¼ên2BÌѱ٘Þn:‡#(¼b.\rDc)ÈÈa7E„‘¤Âl ¦Ã±”èi1ÌŽs˜´ç-4™‡fÓ ÈÎi7†³é† „ŽŒFé”vt2ž‚Ó!– r0Ïãã£t~½U'3M€ÉW„B¦'cÍPÂ:6T\rc£A¾zr_îWK¶\r-¼VNFS%~Ãc²Ùí&›\\^ÊrÀ›­æu‚ŎÞôÙ‹4'7k¶è¯ÂãQÔæhš'g\rFB\ryT7SS¥PÐ1=ǤcIèÊ:d”ºm>£S8L†Jœt.M¢Š Ï‹`'C¡¼ÛÐ889¤È ŽQØýŒî2#8А­£’˜6mú²†ðjˆ¢h«<…Œ°«Œ9/ë˜ç:Jê)Ê‚¤\0d>!\0Z‡ˆvì»në¾ð¼o(Úó¥ÉkÔ7½sàù>Œ î†!ÐR\"*nSý\0@P\"Áè’(‹#[¶¥£@g ¹oü­’znþ9k¤8†nš™ª1´I*ˆô =Ín²¤ª¸è0«c(ö;¾Ã Ðè!°üë*cì÷>ÎŽ¬E7DñLJ© 1ÊJ=ÓÚÞ1L‚û?Ðs=#`Ê3\$4ì€úÈuȱÌÎzGÑC YAt«?;×QÒk&ÇïYP¿uèåǯ}UaHV%G;ƒs¼”<A\0\\¼ÔPÑ\\Âœ&ªóV¦ð\n£SUÃtíÅÇrŒêˆÆ2¤ l^íZ6˜ej…Á­³A ·dó[ÝsÕ¶ˆJP”ªÊóˆÒŒŠ8è=»ƒ˜à6 #Ë‚74*óŸ¨#eÈÀÞ!Õ7{Æ6“¿<oÍCª9v[–MôÅ-`Óõkö>ŽlÙÚ´‹åIªƒHÚ3xú€›äw0t6¾Ã%MR%³½jhÚB˜<´\0ÉAQ<P<:šãu/¤;\\> Ë-¹„ʈÍÁ QH\nv¡L+vÖæì<ï\rèåvàöî¹\\* àÉçÓ´Ý¢gŒnË©¸ ¹TЩ2P•\r¨øß‹\"+z 8£ ¶:#€ÊèÃÎ2‹ºJ[i—‚£¨;z˜ûÑô¡rÊ3 #¨Ù‰ :ãní\r㽃eÙpdÝÝ è2cˆê4²k¿Š£\rG•æE6_³¢ú=î·SZUǷ㌞O—ðÅ?¡éþ27£cÝАÅhnÆ‹Üùu3…E>\$J[Áq[\räIŠ6.ÆJÑ\"EPrèGÌŠGA ÝW¡³ž\rº´6Ík†¢½`.-¡ªB2>#ìhØÀˆXµøu\r¡¸=‡Z  b€Å(¡╃!JZÈ”uªyO’×Z¥M˜Õ6lM[0©ä–€àß!ImñyÂ+pÉ#ag¡ÞŒvW˜:qp\"4ÅôòŸãheî…0 dÆAq-\"¡Ê ƒ§ÆÂ\"2ß ÍÒ@‡)o‘,,”¤”×Rb`@©B@ÐÊʯ¤Q\n†èŠ·˜Z§„™=(r~‰l©~¯ÄhˆsAllÖ\n7»!1 ! Ü#é\0KË…A“LH(½!ÔʘagH\0ÄT\ni˜/È\$ôöœ4GaÎIÉ!¸.—Ř5§ÅM\rÑ2‘‚Ï Ù;ƒ,öžLIJ†äÃd?“ÒºÅí%Õˆ:çN@b.âª2í5’«ôt: FAw²B£EŽ,Ç-\$ù£'ê:Ó©u©?¨tK;ḱàžÐ¸¨ä\0ouMD)k_Phž˜Ó5MC}7‚…È2‡w.QB¦8)ìÀ†8(DIù=©éy`Øed\0s,`É•jŒHÄ\"(b³¢Ä\\ÙÖnl’\"Ù‚^Ë쀭eE½\nèáë±X!SqXÔÀ\r©Œ€7A±ž†0ꏣy7pPìºðçaüA˜4‡ƒ(yÖJwm…2…òª.¯ó‰†¬fp°ÏË;Æ„5ÂJÍcÜqŒQz\\\0[H ÿ 3‘f'b¼µFðøÆY¨\nAà9_§IÞà(›fÎӝq‘VÑŨäõ³4µÜò¹‚„RIÂYå&J’ºFñ}£{FTëh9[7‚h\0à ‹TÖ^ö´jËÔq×j‹õžÕ”§­€cÂWIð@`_ÑsVDçÃ[¾\"{1áÈ3‡• ŽÚô»÷¨<…l¼l.±éÐ[¨»Þ#įº¤b°Þu­¶/Ÿ\0ä3ævaå«‘Dp>‚2 ½IDWÕš¢kKAŒ»hHš]¨FÆ•ã€W–!]‰ʝ÷ltÜÉ•RÌ­4L[äÐÅYC cTj<c;s‡q¸p€’ Ä5ÅtóJ§m6—%J”-\\õÍeB=i ß-ð*%´·¦÷¢TV‹[&M8ó*\r™bÄY\rihˆ „ÙPŒ9T×-VÉ°ZÔúüÛ³ù49β™”ƒp-´`ÙÿÜÌÇGÉÙ›' ì¹Ðô M²:§Å™')0ƒYuÚcí:!« x#צè¦-l*®TÉ\nYläù†š ³‹*D ÉXë V\\îËØÚ®ó]y¯ƒ\nÖ2r,Ɇåç,ÎdÐ×~ųÝ÷s³-ç+Ö»uÛ]£\\BÀ¶¥²Iw€Ô!ƒOsØÔ¯lò YCÁЂÈ:À@ÆœEUË._)Ë9uÿzœµvψSδ¬1ï—é_(Sõéq齡r¾yuî+¥Z*ê6€uy¿<ÉÇõz\\|ØZK; áe›×–úoYåÀ;°óžÃl‘´xöà-7×ô÷4rkYY?ÔÕGWt¡¼÷[KÚšÃåzoØ<¿€Íà têÏô†¶¾ù—É€gçýjð‡_!ào…êÊ\$ Iã¹ÀI¿.&Ü5½P\\—›]¥Àè†Æ\nCØ.ïÖ_¹ø;¿çs«iíS/gÖ:ÞPëɳauNͨ|Æaáå¯á™º¬±¢µÓâ«6ØÓŽÙž3Ö|÷¾‡Ä{©ceîXòù<°e«p>Ní}´í~âÿO¾¡÷Ò™Bl¿ÂjÊ/¢óKø¼Hdch-˾ýŽºØšð/ûîÜþÎäùȶ·hÔž0ŽÀÐŒÈЋÌúÎH©8j6é\n+d l7\r ¾ ÀÚ…0N7eZ°0`m Ën¢ÝÃp\0Ð\0¾} Ç@[ãi0˜ ðƒ ð~…¤4P•\nА”bЯ0©p‹ P¢4@ï PŠ ꇉ‚I\0``f”ë\r```˜°Yð¢zÀß Põ€ê\r𯰿 pÎ ¤y HÕq¬@Ø ñ QÆq‡Ñ ¬`¿±Ñ bi‚”ŒUС ñš@`)™ðÁÐô àì)°ÍÑZèpj(Ñ--lÕâêÖ1Q%­póñYÑ\n1}°ÏÍ\\*¤“hÿŒ{§†C0°#€ÆHˆ˜0T‚qAäö ðb”=‘Â…±f- éðÿqÒ iAðs'QÏ‘ÝÑã‘Z\rRc'°å`Œ«­q¾ èY’Q1±Ò2!r\"Qó1÷ Qï!qûr\0°B˜²DÑwð”\0Û±¾ªñqÑ\$òSÃÙ\"¬]qåò@`è±²@,Ÿ\"r\"ò)&Ñô&é\nt€äbèm0˜2‘)Qw\nÀÖ  ó æ ò¦p(0«*ò³‡ÒŽ±ò¡£q\nÃ&i\nî \"ùp£’Á1Õ‘CÒá‡Ï\"Á.1y.q^ òøŸ2ñòð\0Ï.òõQ×0ó¬rýÑ)/\0Ú”!/¹.S+1Rë/3:5ÀƝó11³\nBÑ43 4±G#〜`ŒSa °ra6‘Îâes7Óq£,搩¹j3q4)\$ˆ˜‰« à@*Ò×-²Í9ñá¢\n±ë\"0‹',ÑhõS}\"Ÿ3ss9ðÅ1ó½7S-=1g4 ß<pr.€Û)LA9ê¶Í´ êÁ/9ÏSÍ?“/5H}>É.«‰4LD;‘¿@2!AÑã@³áôBråÔ-/ô+016Sì˜#„)Š˜\"ÂŽi@€`P;.\n€<)Ô±ôV\nl8K#gkød|¶ƒ8ãlÁÂâ.lf.ô?œA@\rÆ.¤\$J2tN#ôRr¢AE¢ËEéë´e€ËF‚óFÓ¦g­8*€");

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)
8.3.60.0140.00416.75
8.3.50.0000.01516.23
8.3.40.0090.00618.64
8.3.30.0090.00618.46
8.3.20.0040.00420.16
8.3.10.0060.00323.53
8.3.00.0050.00317.38
8.2.180.0110.00718.22
8.2.170.0110.00422.96
8.2.160.0070.00720.35
8.2.150.0050.00324.18
8.2.140.0000.00824.66
8.2.130.0070.00026.16
8.2.120.0050.00319.71
8.2.110.0030.00721.04
8.2.100.0060.00617.57
8.2.90.0000.00818.92
8.2.80.0000.00917.97
8.2.70.0000.00817.50
8.2.60.0040.00417.68
8.2.50.0060.00318.10
8.2.40.0000.00920.42
8.2.30.0040.00420.91
8.2.20.0040.00418.07
8.2.10.0000.00717.84
8.2.00.0080.00017.94
8.1.280.0070.01425.92
8.1.270.0040.01223.86
8.1.260.0080.00026.35
8.1.250.0080.00028.09
8.1.240.0110.00019.09
8.1.230.0070.00419.01
8.1.220.0030.00617.74
8.1.210.0050.00318.77
8.1.200.0060.00317.10
8.1.190.0060.00317.10
8.1.180.0060.00318.10
8.1.170.0040.00420.75
8.1.160.0070.00018.86
8.1.150.0070.00020.55
8.1.140.0050.00519.53
8.1.130.0070.00018.70
8.1.120.0000.00817.30
8.1.110.0070.00017.23
8.1.100.0030.00617.30
8.1.90.0040.00417.41
8.1.80.0050.00217.30
8.1.70.0080.00017.35
8.1.60.0030.00517.53
8.1.50.0000.00817.44
8.1.40.0080.00017.38
8.1.30.0030.00517.62
8.1.20.0020.00517.60
8.1.10.0060.00317.32
8.1.00.0000.00817.20
8.0.300.0000.00720.04
8.0.290.0040.00416.63
8.0.280.0000.00818.21
8.0.270.0000.00717.05
8.0.260.0040.00416.70
8.0.250.0000.00716.82
8.0.240.0030.00516.84
8.0.230.0050.00316.95
8.0.220.0070.00016.90
8.0.210.0070.00016.85
8.0.200.0000.00616.91
8.0.190.0060.00316.82
8.0.180.0000.00716.88
8.0.170.0040.00416.86
8.0.160.0000.00716.88
8.0.150.0050.00316.84
8.0.140.0000.00716.80
8.0.130.0030.00313.25
8.0.120.0040.00416.74
8.0.110.0040.00416.87
8.0.100.0030.00516.70
8.0.90.0000.00716.83
8.0.80.0090.01316.83
8.0.70.0000.00716.89
8.0.60.0050.00216.88
8.0.50.0040.00416.84
8.0.30.0100.01016.74
8.0.20.0100.00917.40
8.0.10.0000.00717.10
8.0.00.0060.01316.78
7.4.330.0070.00015.55
7.4.320.0000.00616.43
7.4.300.0030.00316.43
7.4.290.0000.00716.42
7.4.280.0050.00316.51
7.4.270.0040.00416.45
7.4.260.0000.00716.31
7.4.250.0060.00316.31
7.4.240.0080.00016.42
7.4.230.0030.00316.54
7.4.220.0200.00716.47
7.4.210.0090.00616.51
7.4.200.0040.00416.34
7.4.160.0080.00716.30
7.4.150.0100.00717.40
7.4.140.0070.01117.86
7.4.130.0170.00316.33
7.4.120.0060.01116.38
7.4.110.0080.00816.34
7.4.100.0070.01116.43
7.4.90.0060.01016.55
7.4.80.0160.00019.39
7.4.70.0090.01216.27
7.4.60.0070.01016.41
7.4.50.0040.01116.25
7.4.40.0060.01216.40
7.4.30.0100.00716.30
7.4.10.0120.00314.46
7.4.00.0100.00814.84
7.3.330.0000.00513.34
7.3.320.0000.00513.30
7.3.310.0070.00016.31
7.3.300.0030.00316.29
7.3.290.0080.00716.29
7.3.280.0090.00916.24
7.3.270.0070.01017.40
7.3.260.0090.01016.30
7.3.250.0140.00616.25
7.3.240.0100.01216.27
7.3.230.0080.01316.18
7.3.210.0030.01316.56
7.3.200.0160.00616.34
7.3.190.0060.01616.50
7.3.180.0080.00816.44
7.3.170.0140.00316.55
7.3.160.0130.00316.13
7.3.130.0090.00914.79
7.3.120.0040.01414.73
7.3.110.0070.01014.74
7.3.100.0080.00814.72
7.3.90.0050.01214.67
7.3.80.0050.00614.59
7.3.70.0070.00514.71
7.3.60.0030.01114.54
7.3.50.0060.00514.77
7.3.40.0030.00914.68
7.3.30.0050.00914.78
7.3.20.0070.00316.50
7.3.10.0020.01016.57
7.3.00.0050.00916.47
7.2.330.0090.00916.36
7.2.320.0090.01216.40
7.2.310.0080.00816.46
7.2.300.0060.01116.46
7.2.290.0120.01216.55
7.2.260.0120.00914.74
7.2.250.0040.01115.03
7.2.240.0050.01315.07
7.2.230.0100.00514.92
7.2.220.0060.01014.84
7.2.210.0060.00814.72
7.2.200.0050.00814.89
7.2.190.0030.00815.04
7.2.180.0070.00714.92
7.2.170.0050.00814.82
7.2.160.0070.00715.06
7.2.150.0070.00416.57
7.2.140.0000.01116.86
7.2.130.0050.00816.72
7.2.120.0140.00416.64
7.2.110.0040.01116.62
7.2.100.0050.01116.74
7.2.90.0050.00616.66
7.2.80.0050.00816.76
7.2.70.0070.00716.70
7.2.60.0050.01016.67
7.2.50.0050.00816.74
7.2.40.0010.01016.47
7.2.30.0050.00916.52
7.2.20.0050.00816.67
7.2.10.0040.00916.60
7.2.00.0070.00517.33
7.1.330.0080.08715.83
7.1.320.0030.08715.87
7.1.310.0080.08015.99
7.1.300.0070.08116.02
7.1.290.0060.08315.77
7.1.280.0080.09015.80
7.1.270.0080.08115.82
7.1.260.0100.07915.94
7.1.250.0040.08816.02
7.1.240.0030.09916.00
7.1.230.0030.09615.82
7.1.220.0030.08915.98
7.1.210.0000.09115.88
7.1.200.0030.07915.95
7.1.190.0030.08815.91
7.1.180.0030.08415.79
7.1.170.0030.08516.09
7.1.160.0100.07415.95
7.1.150.0030.09116.08
7.1.140.0030.08415.68
7.1.130.0030.08716.00
7.1.120.0070.09415.80
7.1.110.0130.08016.09
7.1.100.0020.08316.88
7.1.90.0030.09016.13
7.1.80.0030.09316.10
7.1.70.0070.10016.64
7.1.60.0160.10425.44
7.1.50.0110.10525.50
7.1.40.0090.10525.41
7.1.30.0100.10825.23
7.1.20.0200.10425.32
7.1.10.0080.10016.40
7.1.00.0080.09516.36
7.0.330.0030.09315.39
7.0.320.0100.07715.44
7.0.310.0070.08215.16
7.0.300.0070.09715.32
7.0.290.0070.09615.48
7.0.280.0070.07815.72
7.0.270.0000.10415.59
7.0.260.0070.07615.39
7.0.250.0000.09715.52
7.0.240.0000.08615.62
7.0.230.0060.08315.61
7.0.220.0030.09115.59
7.0.210.0030.09515.52
7.0.200.0090.10616.26
7.0.190.0050.09816.15
7.0.180.0050.10715.95
7.0.170.0100.10315.91
7.0.160.0080.10615.97
7.0.150.0050.10915.72
7.0.140.0030.10216.04
7.0.130.0050.09716.03
7.0.120.0100.10016.07
7.0.110.0020.10916.16
7.0.100.0090.10115.99
7.0.90.0060.10416.05
7.0.80.0030.09616.06
7.0.70.0080.09916.07
7.0.60.0050.10615.90
7.0.50.0060.10116.12
7.0.40.0020.10715.16
7.0.30.0020.10815.02
7.0.20.0120.10615.05
7.0.10.0050.11515.20
7.0.00.0020.11015.08
5.6.400.0000.10015.64
5.6.390.0030.10015.47
5.6.380.0000.09415.55
5.6.370.0070.08815.86
5.6.360.0070.09515.60
5.6.350.0030.08515.81
5.6.340.0130.09015.70
5.6.330.0070.09815.58
5.6.320.0070.10215.73
5.6.310.0070.10015.58
5.6.300.0030.09015.70
5.6.290.0100.08815.88
5.6.280.0100.08815.54
5.6.270.0030.09915.84
5.6.260.0000.10715.53
5.6.250.0130.08715.43
5.6.240.0030.10015.62
5.6.230.0070.09015.45
5.6.220.0030.09315.71
5.6.210.0030.09215.41
5.6.200.0000.09715.58
5.6.190.0030.09815.46
5.6.180.0070.09615.61
5.6.170.0070.09215.40
5.6.160.0030.09315.81
5.6.150.0070.09315.66
5.6.140.0000.09715.36
5.6.130.0000.09115.76
5.6.120.0130.08115.71
5.6.110.0030.08615.80
5.6.100.0070.10215.56
5.6.90.0030.11215.30
5.6.80.0130.09715.55
5.6.70.0130.09015.25
5.6.60.0030.09615.48
5.6.50.0100.09215.68
5.6.40.0130.09515.70
5.6.30.0130.09115.53
5.6.20.0030.10115.34
5.6.10.0000.09115.50
5.6.00.0100.07915.62

preferences:
49.53 ms | 400 KiB | 5 Q