3v4l.org

run code in 300+ PHP versions simultaneously
<?php /* https://core.trac.wordpress.org/ticket/22952 gzencode() == gzip gzcompress() == zlib (aka. HTTP deflate) gzdeflate() == *raw* deflate encoding */ function _run_function($compress_f, $uncompress_f, $s_orig, $encoding_name) { global $compression_level; $compressed = $compress_f($s_orig, $compression_level, constant($encoding_name)); if ($compressed === false) { echo "FAIL $compress_f with encoding=$encoding_name". PHP_EOL; return false; } if ($s_orig !== $uncompress_f($compressed)) { echo "FAIL $uncompress_f after $compress_f with encoding=$encoding_name". PHP_EOL; return false; } echo "PASS $compress_f/$uncompress_f with encoding=$encoding_name". PHP_EOL; return true; } $compression_level = 6; // default level is 6 echo '=========== LATIN STRING ===========' . PHP_EOL; $str = '!@#$%^&*()QWERTYUIOPSDFGHJKL!@#$%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNMa!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$%^&*()RTYUIOPD:ZXCVBNM#!@#!@#$%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNM-!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$%^&*()RTYUIOPD$%^&*()ERTYUIODFGHJ!@#$%^&*()QWERTYUIOPSDFGHJKL:ZXCVBNM]!@#$%^&*()ERTYUIODFGHJKLXCVBNM@#$%^&*()RTYUIOPDKLXCVBNM@#$%^&*()RTYUIOPDFGHJKLCVBNMFGHJTYU%^&RFGHJ4d56g7h8ui7h8ujirqwerqh8'; _run_function('gzencode', 'gzdecode', $str, 'FORCE_GZIP'); _run_function('gzencode', 'gzdecode', $str, 'FORCE_DEFLATE'); _run_function('gzcompress', 'gzuncompress', $str, 'ZLIB_ENCODING_DEFLATE'); _run_function('gzcompress', 'gzuncompress', $str, 'ZLIB_ENCODING_GZIP'); _run_function('gzcompress', 'gzuncompress', $str, 'ZLIB_ENCODING_RAW'); _run_function('gzdeflate', 'gzinflate', $str, 'ZLIB_ENCODING_DEFLATE'); _run_function('gzdeflate', 'gzinflate', $str, 'ZLIB_ENCODING_GZIP'); _run_function('gzdeflate', 'gzinflate', $str, 'ZLIB_ENCODING_RAW'); echo '=========== NON-LATIN STRING ===========' . PHP_EOL; $str = '布局 1 介绍 布局,简单来说就是设置元素的大小和位置。 Ext 的布局系统包括组件,布局,容器,容器是一种特殊的组件,可以管理组件的大小和位置。 容器是通过 doLayout 来重新计算布局,并更新 DOM. 2 手工布局是不必要的,框架会为你自动处理。'; _run_function('gzencode', 'gzdecode', $str, 'FORCE_GZIP'); _run_function('gzencode', 'gzdecode', $str, 'FORCE_DEFLATE'); _run_function('gzcompress', 'gzuncompress', $str, 'ZLIB_ENCODING_DEFLATE'); _run_function('gzcompress', 'gzuncompress', $str, 'ZLIB_ENCODING_GZIP'); _run_function('gzcompress', 'gzuncompress', $str, 'ZLIB_ENCODING_RAW'); _run_function('gzdeflate', 'gzinflate', $str, 'ZLIB_ENCODING_DEFLATE'); _run_function('gzdeflate', 'gzinflate', $str, 'ZLIB_ENCODING_GZIP'); _run_function('gzdeflate', 'gzinflate', $str, 'ZLIB_ENCODING_RAW');
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/0Y4Un
function name:  (null)
number of ops:  102
compiled vars:  !0 = $compression_level, !1 = $str
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   29     0  E >   ASSIGN                                                   !0, 6
   31     1        ECHO                                                     '%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D+LATIN+STRING+%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A'
   32     2        ASSIGN                                                   !1, '%21%40%23%24%25%5E%26%2A%28%29QWERTYUIOPSDFGHJKL%21%40%23%24%25%5E%26%2A%28%29QWERTYUIOPSDFGHJKL%3AZXCVBNMa%21%40%23%24%25%5E%26%2A%28%29ERTYUIODFGHJKLXCVBNM%40%23%24%25%5E%26%2A%28%29RTYUIOPD%3AZXCVBNM%23%21%40%23%21%40%23%24%25%5E%26%2A%28%29QWERTYUIOPSDFGHJKL%3AZXCVBNM-%21%40%23%24%25%5E%26%2A%28%29ERTYUIODFGHJKLXCVBNM%40%23%24%25%5E%26%2A%28%29RTYUIOPD%24%25%5E%26%2A%28%29ERTYUIODFGHJ%21%40%23%24%25%5E%26%2A%28%29QWERTYUIOPSDFGHJKL%3AZXCVBNM%5D%21%40%23%24%25%5E%26%2A%28%29ERTYUIODFGHJKLXCVBNM%40%23%24%25%5E%26%2A%28%29RTYUIOPDKLXCVBNM%40%23%24%25%5E%26%2A%28%29RTYUIOPDFGHJKLCVBNMFGHJTYU%25%5E%26RFGHJ4d56g7h8ui7h8ujirqwerqh8'
   34     3        INIT_FCALL                                               '_run_function'
          4        SEND_VAL                                                 'gzencode'
          5        SEND_VAL                                                 'gzdecode'
          6        SEND_VAR                                                 !1
          7        SEND_VAL                                                 'FORCE_GZIP'
          8        DO_FCALL                                      0          
   35     9        INIT_FCALL                                               '_run_function'
         10        SEND_VAL                                                 'gzencode'
         11        SEND_VAL                                                 'gzdecode'
         12        SEND_VAR                                                 !1
         13        SEND_VAL                                                 'FORCE_DEFLATE'
         14        DO_FCALL                                      0          
   37    15        INIT_FCALL                                               '_run_function'
         16        SEND_VAL                                                 'gzcompress'
         17        SEND_VAL                                                 'gzuncompress'
         18        SEND_VAR                                                 !1
         19        SEND_VAL                                                 'ZLIB_ENCODING_DEFLATE'
         20        DO_FCALL                                      0          
   38    21        INIT_FCALL                                               '_run_function'
         22        SEND_VAL                                                 'gzcompress'
         23        SEND_VAL                                                 'gzuncompress'
         24        SEND_VAR                                                 !1
         25        SEND_VAL                                                 'ZLIB_ENCODING_GZIP'
         26        DO_FCALL                                      0          
   39    27        INIT_FCALL                                               '_run_function'
         28        SEND_VAL                                                 'gzcompress'
         29        SEND_VAL                                                 'gzuncompress'
         30        SEND_VAR                                                 !1
         31        SEND_VAL                                                 'ZLIB_ENCODING_RAW'
         32        DO_FCALL                                      0          
   41    33        INIT_FCALL                                               '_run_function'
         34        SEND_VAL                                                 'gzdeflate'
         35        SEND_VAL                                                 'gzinflate'
         36        SEND_VAR                                                 !1
         37        SEND_VAL                                                 'ZLIB_ENCODING_DEFLATE'
         38        DO_FCALL                                      0          
   42    39        INIT_FCALL                                               '_run_function'
         40        SEND_VAL                                                 'gzdeflate'
         41        SEND_VAL                                                 'gzinflate'
         42        SEND_VAR                                                 !1
         43        SEND_VAL                                                 'ZLIB_ENCODING_GZIP'
         44        DO_FCALL                                      0          
   43    45        INIT_FCALL                                               '_run_function'
         46        SEND_VAL                                                 'gzdeflate'
         47        SEND_VAL                                                 'gzinflate'
         48        SEND_VAR                                                 !1
         49        SEND_VAL                                                 'ZLIB_ENCODING_RAW'
         50        DO_FCALL                                      0          
   47    51        ECHO                                                     '%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D+NON-LATIN+STRING+%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A'
   48    52        ASSIGN                                                   !1, '%E5%B8%83%E5%B1%80+1+%E4%BB%8B%E7%BB%8D+%E5%B8%83%E5%B1%80%EF%BC%8C%E7%AE%80%E5%8D%95%E6%9D%A5%E8%AF%B4%E5%B0%B1%E6%98%AF%E8%AE%BE%E7%BD%AE%E5%85%83%E7%B4%A0%E7%9A%84%E5%A4%A7%E5%B0%8F%E5%92%8C%E4%BD%8D%E7%BD%AE%E3%80%82+Ext+%E7%9A%84%E5%B8%83%E5%B1%80%E7%B3%BB%E7%BB%9F%E5%8C%85%E6%8B%AC%E7%BB%84%E4%BB%B6%EF%BC%8C%E5%B8%83%E5%B1%80%EF%BC%8C%E5%AE%B9%E5%99%A8%EF%BC%8C%E5%AE%B9%E5%99%A8%E6%98%AF%E4%B8%80%E7%A7%8D%E7%89%B9%E6%AE%8A%E7%9A%84%E7%BB%84%E4%BB%B6%EF%BC%8C%E5%8F%AF%E4%BB%A5%E7%AE%A1%E7%90%86%E7%BB%84%E4%BB%B6%E7%9A%84%E5%A4%A7%E5%B0%8F%E5%92%8C%E4%BD%8D%E7%BD%AE%E3%80%82+%E5%AE%B9%E5%99%A8%E6%98%AF%E9%80%9A%E8%BF%87+doLayout+%E6%9D%A5%E9%87%8D%E6%96%B0%E8%AE%A1%E7%AE%97%E5%B8%83%E5%B1%80%EF%BC%8C%E5%B9%B6%E6%9B%B4%E6%96%B0+DOM.+2+%E6%89%8B%E5%B7%A5%E5%B8%83%E5%B1%80%E6%98%AF%E4%B8%8D%E5%BF%85%E8%A6%81%E7%9A%84%EF%BC%8C%E6%A1%86%E6%9E%B6%E4%BC%9A%E4%B8%BA%E4%BD%A0%E8%87%AA%E5%8A%A8%E5%A4%84%E7%90%86%E3%80%82'
   50    53        INIT_FCALL                                               '_run_function'
         54        SEND_VAL                                                 'gzencode'
         55        SEND_VAL                                                 'gzdecode'
         56        SEND_VAR                                                 !1
         57        SEND_VAL                                                 'FORCE_GZIP'
         58        DO_FCALL                                      0          
   51    59        INIT_FCALL                                               '_run_function'
         60        SEND_VAL                                                 'gzencode'
         61        SEND_VAL                                                 'gzdecode'
         62        SEND_VAR                                                 !1
         63        SEND_VAL                                                 'FORCE_DEFLATE'
         64        DO_FCALL                                      0          
   53    65        INIT_FCALL                                               '_run_function'
         66        SEND_VAL                                                 'gzcompress'
         67        SEND_VAL                                                 'gzuncompress'
         68        SEND_VAR                                                 !1
         69        SEND_VAL                                                 'ZLIB_ENCODING_DEFLATE'
         70        DO_FCALL                                      0          
   54    71        INIT_FCALL                                               '_run_function'
         72        SEND_VAL                                                 'gzcompress'
         73        SEND_VAL                                                 'gzuncompress'
         74        SEND_VAR                                                 !1
         75        SEND_VAL                                                 'ZLIB_ENCODING_GZIP'
         76        DO_FCALL                                      0          
   55    77        INIT_FCALL                                               '_run_function'
         78        SEND_VAL                                                 'gzcompress'
         79        SEND_VAL                                                 'gzuncompress'
         80        SEND_VAR                                                 !1
         81        SEND_VAL                                                 'ZLIB_ENCODING_RAW'
         82        DO_FCALL                                      0          
   57    83        INIT_FCALL                                               '_run_function'
         84        SEND_VAL                                                 'gzdeflate'
         85        SEND_VAL                                                 'gzinflate'
         86        SEND_VAR                                                 !1
         87        SEND_VAL                                                 'ZLIB_ENCODING_DEFLATE'
         88        DO_FCALL                                      0          
   58    89        INIT_FCALL                                               '_run_function'
         90        SEND_VAL                                                 'gzdeflate'
         91        SEND_VAL                                                 'gzinflate'
         92        SEND_VAR                                                 !1
         93        SEND_VAL                                                 'ZLIB_ENCODING_GZIP'
         94        DO_FCALL                                      0          
   59    95        INIT_FCALL                                               '_run_function'
         96        SEND_VAL                                                 'gzdeflate'
         97        SEND_VAL                                                 'gzinflate'
         98        SEND_VAR                                                 !1
         99        SEND_VAL                                                 'ZLIB_ENCODING_RAW'
        100        DO_FCALL                                      0          
        101      > RETURN                                                   1

Function _run_function:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 16, Position 2 = 23
Branch analysis from position: 16
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 23
2 jumps found. (Code = 43) Position 1 = 28, Position 2 = 37
Branch analysis from position: 28
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 37
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/0Y4Un
function name:  _run_function
number of ops:  47
compiled vars:  !0 = $compress_f, !1 = $uncompress_f, !2 = $s_orig, !3 = $encoding_name, !4 = $compression_level, !5 = $compressed
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    9     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
          3        RECV                                             !3      
   11     4        BIND_GLOBAL                                              !4, 'compression_level'
   13     5        INIT_DYNAMIC_CALL                                        !0
          6        SEND_VAR_EX                                              !2
          7        SEND_VAR_EX                                              !4
          8        INIT_FCALL                                               'constant'
          9        SEND_VAR                                                 !3
         10        DO_ICALL                                         $6      
         11        SEND_VAR_NO_REF_EX                                       $6
         12        DO_FCALL                                      0  $7      
         13        ASSIGN                                                   !5, $7
   14    14        TYPE_CHECK                                    4          !5
         15      > JMPZ                                                     ~9, ->23
   15    16    >   ROPE_INIT                                     4  ~11     'FAIL+'
         17        ROPE_ADD                                      1  ~11     ~11, !0
         18        ROPE_ADD                                      2  ~11     ~11, '+with+encoding%3D'
         19        ROPE_END                                      3  ~10     ~11, !3
         20        CONCAT                                           ~13     ~10, '%0A'
         21        ECHO                                                     ~13
   16    22      > RETURN                                                   <false>
   19    23    >   INIT_DYNAMIC_CALL                                        !1
         24        SEND_VAR_EX                                              !5
         25        DO_FCALL                                      0  $14     
         26        IS_NOT_IDENTICAL                                         !2, $14
         27      > JMPZ                                                     ~15, ->37
   20    28    >   ROPE_INIT                                     6  ~17     'FAIL+'
         29        ROPE_ADD                                      1  ~17     ~17, !1
         30        ROPE_ADD                                      2  ~17     ~17, '+after+'
         31        ROPE_ADD                                      3  ~17     ~17, !0
         32        ROPE_ADD                                      4  ~17     ~17, '+with+encoding%3D'
         33        ROPE_END                                      5  ~16     ~17, !3
         34        CONCAT                                           ~20     ~16, '%0A'
         35        ECHO                                                     ~20
   21    36      > RETURN                                                   <false>
   24    37    >   ROPE_INIT                                     6  ~22     'PASS+'
         38        ROPE_ADD                                      1  ~22     ~22, !0
         39        ROPE_ADD                                      2  ~22     ~22, '%2F'
         40        ROPE_ADD                                      3  ~22     ~22, !1
         41        ROPE_ADD                                      4  ~22     ~22, '+with+encoding%3D'
         42        ROPE_END                                      5  ~21     ~22, !3
         43        CONCAT                                           ~25     ~21, '%0A'
         44        ECHO                                                     ~25
   25    45      > RETURN                                                   <true>
   26    46*     > RETURN                                                   null

End of function _run_function

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
174.74 ms | 956 KiB | 32 Q