3v4l.org

run code in 300+ PHP versions simultaneously
<?php ini_set("error_reporting", -1 & ~E_DEPRECATED); set_error_handler(function($s, $m, $f, $l, $c = null) { print "PHP Warning: $m in " . basename($f) . " on line $l"; }, E_WARNING); $xml = base64_decode("PGRpdj48cD7M4OzgIOz76+Ag8ODs8y48L3A+PC9kaXY+"); $options = LIBXML_HTML_NOIMPLIED | LIBXML_NOENT | LIBXML_NONET | LIBXML_NOWARNING | LIBXML_NOXMLDECL | LIBXML_HTML_NODEFDTD ; print "<pre>"; foreach([ 'default_charset', 'input_encoding', 'internal_encoding', 'output_encoding', 'iconv.input_encoding', 'iconv.internal_encoding', 'iconv.output_encoding', 'mbstring.http_input', 'mbstring.http_output', 'mbstring.internal_encoding', ] as $set) { ini_set($set, "UTF-8"); printf("%-12s: %s\n", $set, ini_get($set)); } print "</pre>"; ob_start(function($str, $phase) { return iconv("Windows-1251", "UTF-8", $str); }); print "--- CP1251 ---\n$xml\n"; print "Direct:"; $doc = new DOMDocument; $doc->loadHTML("$xml", $options); $doc->encoding = "Windows-1251"; print $doc->saveXML(null, LIBXML_NOENT); print "With encoding:"; $doc = new DOMDocument("1.0", "Windows-1251"); $doc->loadHTML("$xml", $options); $doc->encoding = "Windows-1251"; print $doc->saveXML(null, LIBXML_NOENT); print "With inline encoding:"; $doc = new DOMDocument; $doc->loadHTML("<?xml version=\"1.0\" encoding=\"Windows-1251\" standalone=\"yes\"?>$xml", $options); $doc->encoding = "Windows-1251"; print $doc->saveXML(null, LIBXML_NOENT); print "With both:"; $doc = new DOMDocument("1.0", "Windows-1251"); $doc->loadHTML("<?xml version=\"1.0\" encoding=\"Windows-1251\" standalone=\"yes\"?>$xml", $options); $doc->encoding = "Windows-1251"; print $doc->saveXML(null, LIBXML_NOENT); ob_end_flush(); $xml = iconv("Windows-1251", "UTF-8", $xml); print "--- UTF-8 ---\n$xml\n"; print "Direct:\n"; $doc = new DOMDocument; $doc->loadHTML("$xml", $options); $doc->encoding = "UTF-8"; print $doc->saveXML(null, LIBXML_NOENT); print "With encoding:\n"; $doc = new DOMDocument("1.0", "UTF-8"); $doc->loadHTML("$xml", $options); $doc->encoding = "UTF-8"; print $doc->saveXML(null, LIBXML_NOENT); print "With inline encoding:"; $doc = new DOMDocument; $doc->loadHTML("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>$xml", $options); $doc->encoding = "UTF-8"; print $doc->saveXML(null, LIBXML_NOENT); print "With both:"; $doc = new DOMDocument("1.0", "UTF-8"); $doc->loadHTML("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>$xml", $options); $doc->encoding = "UTF-8"; print $doc->saveXML(null, LIBXML_NOENT);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 16, Position 2 = 30
Branch analysis from position: 16
2 jumps found. (Code = 78) Position 1 = 17, Position 2 = 30
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
Branch analysis from position: 30
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 30
filename:       /in/HL5It
function name:  (null)
number of ops:  193
compiled vars:  !0 = $xml, !1 = $options, !2 = $set, !3 = $doc
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   INIT_FCALL                                               'ini_set'
          1        SEND_VAL                                                 'error_reporting'
          2        SEND_VAL                                                 -8193
          3        DO_ICALL                                                 
    4     4        INIT_FCALL                                               'set_error_handler'
          5        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FHL5It%3A4%240'
          6        SEND_VAL                                                 ~5
          7        SEND_VAL                                                 2
          8        DO_ICALL                                                 
    6     9        INIT_FCALL                                               'base64_decode'
         10        SEND_VAL                                                 'PGRpdj48cD7M4OzgIOz76%2BAg8ODs8y48L3A%2BPC9kaXY%2B'
         11        DO_ICALL                                         $7      
         12        ASSIGN                                                   !0, $7
    8    13        ASSIGN                                                   !1, 10310
   16    14        ECHO                                                     '%3Cpre%3E'
   18    15      > FE_RESET_R                                       $10     <array>, ->30
         16    > > FE_FETCH_R                                               $10, !2, ->30
   30    17    >   INIT_FCALL                                               'ini_set'
         18        SEND_VAR                                                 !2
         19        SEND_VAL                                                 'UTF-8'
         20        DO_ICALL                                                 
   31    21        INIT_FCALL                                               'printf'
         22        SEND_VAL                                                 '%25-12s%3A+%25s%0A'
         23        SEND_VAR                                                 !2
         24        INIT_FCALL                                               'ini_get'
         25        SEND_VAR                                                 !2
         26        DO_ICALL                                         $12     
         27        SEND_VAR                                                 $12
         28        DO_ICALL                                                 
   18    29      > JMP                                                      ->16
         30    >   FE_FREE                                                  $10
   33    31        ECHO                                                     '%3C%2Fpre%3E'
   35    32        INIT_FCALL                                               'ob_start'
         33        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FHL5It%3A35%241'
   38    34        SEND_VAL                                                 ~14
         35        DO_ICALL                                                 
   40    36        ROPE_INIT                                     3  ~17     '---+CP1251+---%0A'
         37        ROPE_ADD                                      1  ~17     ~17, !0
         38        ROPE_END                                      2  ~16     ~17, '%0A'
         39        ECHO                                                     ~16
   42    40        ECHO                                                     'Direct%3A'
   43    41        NEW                                              $19     'DOMDocument'
         42        DO_FCALL                                      0          
         43        ASSIGN                                                   !3, $19
   44    44        INIT_METHOD_CALL                                         !3, 'loadHTML'
         45        CAST                                          6  ~22     !0
         46        SEND_VAL_EX                                              ~22
         47        SEND_VAR_EX                                              !1
         48        DO_FCALL                                      0          
   45    49        ASSIGN_OBJ                                               !3, 'encoding'
         50        OP_DATA                                                  'Windows-1251'
   46    51        INIT_METHOD_CALL                                         !3, 'saveXML'
         52        SEND_VAL_EX                                              null
         53        SEND_VAL_EX                                              2
         54        DO_FCALL                                      0  $25     
         55        ECHO                                                     $25
   48    56        ECHO                                                     'With+encoding%3A'
   49    57        NEW                                              $26     'DOMDocument'
         58        SEND_VAL_EX                                              '1.0'
         59        SEND_VAL_EX                                              'Windows-1251'
         60        DO_FCALL                                      0          
         61        ASSIGN                                                   !3, $26
   50    62        INIT_METHOD_CALL                                         !3, 'loadHTML'
         63        CAST                                          6  ~29     !0
         64        SEND_VAL_EX                                              ~29
         65        SEND_VAR_EX                                              !1
         66        DO_FCALL                                      0          
   51    67        ASSIGN_OBJ                                               !3, 'encoding'
         68        OP_DATA                                                  'Windows-1251'
   52    69        INIT_METHOD_CALL                                         !3, 'saveXML'
         70        SEND_VAL_EX                                              null
         71        SEND_VAL_EX                                              2
         72        DO_FCALL                                      0  $32     
         73        ECHO                                                     $32
   54    74        ECHO                                                     'With+inline+encoding%3A'
   55    75        NEW                                              $33     'DOMDocument'
         76        DO_FCALL                                      0          
         77        ASSIGN                                                   !3, $33
   56    78        INIT_METHOD_CALL                                         !3, 'loadHTML'
         79        NOP                                                      
         80        FAST_CONCAT                                      ~36     '%3C%3Fxml+version%3D%221.0%22+encoding%3D%22Windows-1251%22+standalone%3D%22yes%22%3F%3E', !0
         81        SEND_VAL_EX                                              ~36
         82        SEND_VAR_EX                                              !1
         83        DO_FCALL                                      0          
   57    84        ASSIGN_OBJ                                               !3, 'encoding'
         85        OP_DATA                                                  'Windows-1251'
   58    86        INIT_METHOD_CALL                                         !3, 'saveXML'
         87        SEND_VAL_EX                                              null
         88        SEND_VAL_EX                                              2
         89        DO_FCALL                                      0  $39     
         90        ECHO                                                     $39
   60    91        ECHO                                                     'With+both%3A'
   61    92        NEW                                              $40     'DOMDocument'
         93        SEND_VAL_EX                                              '1.0'
         94        SEND_VAL_EX                                              'Windows-1251'
         95        DO_FCALL                                      0          
         96        ASSIGN                                                   !3, $40
   62    97        INIT_METHOD_CALL                                         !3, 'loadHTML'
         98        NOP                                                      
         99        FAST_CONCAT                                      ~43     '%3C%3Fxml+version%3D%221.0%22+encoding%3D%22Windows-1251%22+standalone%3D%22yes%22%3F%3E', !0
        100        SEND_VAL_EX                                              ~43
        101        SEND_VAR_EX                                              !1
        102        DO_FCALL                                      0          
   63   103        ASSIGN_OBJ                                               !3, 'encoding'
        104        OP_DATA                                                  'Windows-1251'
   64   105        INIT_METHOD_CALL                                         !3, 'saveXML'
        106        SEND_VAL_EX                                              null
        107        SEND_VAL_EX                                              2
        108        DO_FCALL                                      0  $46     
        109        ECHO                                                     $46
   66   110        INIT_FCALL                                               'ob_end_flush'
        111        DO_ICALL                                                 
   68   112        INIT_FCALL_BY_NAME                                       'iconv'
        113        SEND_VAL_EX                                              'Windows-1251'
        114        SEND_VAL_EX                                              'UTF-8'
        115        SEND_VAR_EX                                              !0
        116        DO_FCALL                                      0  $48     
        117        ASSIGN                                                   !0, $48
   69   118        ROPE_INIT                                     3  ~51     '---+UTF-8+---%0A'
        119        ROPE_ADD                                      1  ~51     ~51, !0
        120        ROPE_END                                      2  ~50     ~51, '%0A'
        121        ECHO                                                     ~50
   71   122        ECHO                                                     'Direct%3A%0A'
   72   123        NEW                                              $53     'DOMDocument'
        124        DO_FCALL                                      0          
        125        ASSIGN                                                   !3, $53
   73   126        INIT_METHOD_CALL                                         !3, 'loadHTML'
        127        CAST                                          6  ~56     !0
        128        SEND_VAL_EX                                              ~56
        129        SEND_VAR_EX                                              !1
        130        DO_FCALL                                      0          
   74   131        ASSIGN_OBJ                                               !3, 'encoding'
        132        OP_DATA                                                  'UTF-8'
   75   133        INIT_METHOD_CALL                                         !3, 'saveXML'
        134        SEND_VAL_EX                                              null
        135        SEND_VAL_EX                                              2
        136        DO_FCALL                                      0  $59     
        137        ECHO                                                     $59
   77   138        ECHO                                                     'With+encoding%3A%0A'
   78   139        NEW                                              $60     'DOMDocument'
        140        SEND_VAL_EX                                              '1.0'
        141        SEND_VAL_EX                                              'UTF-8'
        142        DO_FCALL                                      0          
        143        ASSIGN                                                   !3, $60
   79   144        INIT_METHOD_CALL                                         !3, 'loadHTML'
        145        CAST                                          6  ~63     !0
        146        SEND_VAL_EX                                              ~63
        147        SEND_VAR_EX                                              !1
        148        DO_FCALL                                      0          
   80   149        ASSIGN_OBJ                                               !3, 'encoding'
        150        OP_DATA                                                  'UTF-8'
   81   151        INIT_METHOD_CALL                                         !3, 'saveXML'
        152        SEND_VAL_EX                                              null
        153        SEND_VAL_EX                                              2
        154        DO_FCALL                                      0  $66     
        155        ECHO                                                     $66
   83   156        ECHO                                                     'With+inline+encoding%3A'
   84   157        NEW                                              $67     'DOMDocument'
        158        DO_FCALL                                      0          
        159        ASSIGN                                                   !3, $67
   85   160        INIT_METHOD_CALL                                         !3, 'loadHTML'
        161        NOP                                                      
        162        FAST_CONCAT                                      ~70     '%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22+standalone%3D%22yes%22%3F%3E', !0
        163        SEND_VAL_EX                                              ~70
        164        SEND_VAR_EX                                              !1
        165        DO_FCALL                                      0          
   86   166        ASSIGN_OBJ                                               !3, 'encoding'
        167        OP_DATA                                                  'UTF-8'
   87   168        INIT_METHOD_CALL                                         !3, 'saveXML'
        169        SEND_VAL_EX                                              null
        170        SEND_VAL_EX                                              2
        171        DO_FCALL                                      0  $73     
        172        ECHO                                                     $73
   89   173        ECHO                                                     'With+both%3A'
   90   174        NEW                                              $74     'DOMDocument'
        175        SEND_VAL_EX                                              '1.0'
        176        SEND_VAL_EX                                              'UTF-8'
        177        DO_FCALL                                      0          
        178        ASSIGN                                                   !3, $74
   91   179        INIT_METHOD_CALL                                         !3, 'loadHTML'
        180        NOP                                                      
        181        FAST_CONCAT                                      ~77     '%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22+standalone%3D%22yes%22%3F%3E', !0
        182        SEND_VAL_EX                                              ~77
        183        SEND_VAR_EX                                              !1
        184        DO_FCALL                                      0          
   92   185        ASSIGN_OBJ                                               !3, 'encoding'
        186        OP_DATA                                                  'UTF-8'
   93   187        INIT_METHOD_CALL                                         !3, 'saveXML'
        188        SEND_VAL_EX                                              null
        189        SEND_VAL_EX                                              2
        190        DO_FCALL                                      0  $80     
        191        ECHO                                                     $80
        192      > RETURN                                                   1

Function %00%7Bclosure%7D%2Fin%2FHL5It%3A4%240:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/HL5It
function name:  {closure}
number of ops:  17
compiled vars:  !0 = $s, !1 = $m, !2 = $f, !3 = $l, !4 = $c
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
          3        RECV                                             !3      
          4        RECV_INIT                                        !4      null
          5        ROPE_INIT                                     3  ~6      'PHP+Warning%3A++'
          6        ROPE_ADD                                      1  ~6      ~6, !1
          7        ROPE_END                                      2  ~5      ~6, '+in+'
          8        INIT_FCALL                                               'basename'
          9        SEND_VAR                                                 !2
         10        DO_ICALL                                         $8      
         11        CONCAT                                           ~9      ~5, $8
         12        NOP                                                      
         13        FAST_CONCAT                                      ~10     '+on+line+', !3
         14        CONCAT                                           ~11     ~9, ~10
         15        ECHO                                                     ~11
         16      > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FHL5It%3A4%240

Function %00%7Bclosure%7D%2Fin%2FHL5It%3A35%241:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/HL5It
function name:  {closure}
number of ops:  9
compiled vars:  !0 = $str, !1 = $phase
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   35     0  E >   RECV                                             !0      
          1        RECV                                             !1      
   37     2        INIT_FCALL_BY_NAME                                       'iconv'
          3        SEND_VAL_EX                                              'Windows-1251'
          4        SEND_VAL_EX                                              'UTF-8'
          5        SEND_VAR_EX                                              !0
          6        DO_FCALL                                      0  $2      
          7      > RETURN                                                   $2
   38     8*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FHL5It%3A35%241

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
193.96 ms | 1412 KiB | 29 Q