3v4l.org

run code in 300+ PHP versions simultaneously
<?php header('Content-Type: application/json'); header('Access-Control-Allow-Origin: *'); header('allow-origin: *'); header("Access-Control-Allow-Headers: ACCEPT, CONTENT-TYPE, X-CSRF-TOKEN"); header("Access-Control-Allow-Methods: GET, POST, OPTIONS, DELETE"); //header('Access-Control-Allow-Origin: http://www.foo.com', false); $url = $_GET["https://pastebin.com/raw/t1mBJ2Yi"]; if(isset($url)) { $m3ufile = file_get_contents($url); } else { $url = "https://pastebin.com/raw/t1mBJ2Yi"; $m3ufile = file_get_contents($url); } //$re = '/#(EXTINF|EXTM3U):(.+?)[,]\s?(.+?)[\r\n]+?((?:https?|rtmp):\/\/(?:\S*?\.\S*?)(?:[\s)\[\]{};"\'<]|\.\s|$))/'; $re = '/#EXTINF:(.+?)[,]\s?(.+?)[\r\n]+?((?:https?|rtmp):\/\/(?:\S*?\.\S*?)(?:[\s)\[\]{};"\'<]|\.\s|$))/'; //$attributes = '/([a-zA-Z0-9\-]+?)="([^"]*)"/'; $attributes = '/([a-zA-Z0-9\-\_]+?)="([^"]*)"/'; $m3ufile = str_replace('tvg-logo', 'thumb_square', $m3ufile); $m3ufile = str_replace('tvg-id', 'id', $m3ufile); //$m3ufile = str_replace('tvg-name', 'group', $m3ufile); //$m3ufile = str_replace('tvg-name', 'name', $m3ufile); $m3ufile = str_replace('tvg-name', 'author', $m3ufile); $m3ufile = str_replace('group-title', 'group', $m3ufile); $m3ufile = str_replace('tvg-country', 'country', $m3ufile); $m3ufile = str_replace('tvg-language', 'language', $m3ufile); //print_r($m3ufile); //$m3ufile = str_replace(' ', '_', $m3ufile); // FOR GROUP preg_match_all($re, $m3ufile, $matches); // Print the entire match result //print_r($matches); $items = array(); foreach($matches[0] as $list) { //echo "$list <br>"; preg_match($re, $list, $matchList); //$mediaURL = str_replace("\r\n","",$matchList[4]); //$mediaURL = str_replace("\n","",$matchList[4]); //$mediaURL = str_replace("\n","",$mediaURL); $mediaURL = preg_replace("/[\n\r]/","",$matchList[3]); $mediaURL = preg_replace('/\s+/', '', $mediaURL); //$mediaURL = preg_replace( "/\r|\n/", "", $matches[4] ); $newdata = array ( //'ATTRIBUTE' => $matchList[2], 'service' => "iptv", 'title' => $matchList[2], //'playlistURL' => (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]", //'playlistURL' => str_replace("url=","",$_SERVER['QUERY_STRING']), 'playlistURL' => $url, 'media_url' => $mediaURL, 'url' => $mediaURL ); preg_match_all($attributes, $list, $matches, PREG_SET_ORDER); foreach ($matches as $match) { $newdata[$match[1]] = $match[2]; } //array_push($newdata,$attribute); //$newdata[] = $attribute; $items[] = $newdata; //$items[] = $matchList[2]; } // $globalitem = array ( // //'ATTRIBUTE' => $matchList[2], // 'item' => $items // ); //$globalitem[$items] ; //$globalitems['item'] = $items; //$globalist['list'] = $globalitems; $globalitems = array ( //'ATTRIBUTE' => $matchList[2], 'service' => "iptv", 'title' => "iptv", 'item' => $items, ); $globalist['list'] = $globalitems; //print_r($items); $callback= $_GET['callback']; if($callback) echo $callback. '(' . json_encode($globalist) . ')'; // jsonP callback else echo json_encode($globalist); ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 20, Position 2 = 25
Branch analysis from position: 20
1 jumps found. (Code = 42) Position 1 = 30
Branch analysis from position: 30
2 jumps found. (Code = 77) Position 1 = 76, Position 2 = 119
Branch analysis from position: 76
2 jumps found. (Code = 78) Position 1 = 77, Position 2 = 119
Branch analysis from position: 77
2 jumps found. (Code = 77) Position 1 = 109, Position 2 = 115
Branch analysis from position: 109
2 jumps found. (Code = 78) Position 1 = 110, Position 2 = 115
Branch analysis from position: 110
1 jumps found. (Code = 42) Position 1 = 109
Branch analysis from position: 109
Branch analysis from position: 115
1 jumps found. (Code = 42) Position 1 = 76
Branch analysis from position: 76
Branch analysis from position: 115
Branch analysis from position: 119
2 jumps found. (Code = 43) Position 1 = 130, Position 2 = 138
Branch analysis from position: 130
1 jumps found. (Code = 42) Position 1 = 142
Branch analysis from position: 142
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 138
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 119
Branch analysis from position: 25
2 jumps found. (Code = 77) Position 1 = 76, Position 2 = 119
Branch analysis from position: 76
Branch analysis from position: 119
filename:       /in/rTPlv
function name:  (null)
number of ops:  143
compiled vars:  !0 = $url, !1 = $m3ufile, !2 = $re, !3 = $attributes, !4 = $matches, !5 = $items, !6 = $list, !7 = $matchList, !8 = $mediaURL, !9 = $newdata, !10 = $match, !11 = $globalitems, !12 = $globalist, !13 = $callback
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   INIT_FCALL                                               'header'
          1        SEND_VAL                                                 'Content-Type%3A+application%2Fjson'
          2        DO_ICALL                                                 
    3     3        INIT_FCALL                                               'header'
          4        SEND_VAL                                                 'Access-Control-Allow-Origin%3A+%2A'
          5        DO_ICALL                                                 
    4     6        INIT_FCALL                                               'header'
          7        SEND_VAL                                                 'allow-origin%3A+%2A'
          8        DO_ICALL                                                 
    5     9        INIT_FCALL                                               'header'
         10        SEND_VAL                                                 'Access-Control-Allow-Headers%3A+ACCEPT%2C+CONTENT-TYPE%2C+X-CSRF-TOKEN'
         11        DO_ICALL                                                 
    6    12        INIT_FCALL                                               'header'
         13        SEND_VAL                                                 'Access-Control-Allow-Methods%3A+GET%2C+POST%2C+OPTIONS%2C+DELETE'
         14        DO_ICALL                                                 
    8    15        FETCH_R                      global              ~19     '_GET'
         16        FETCH_DIM_R                                      ~20     ~19, 'https%3A%2F%2Fpastebin.com%2Fraw%2Ft1mBJ2Yi'
         17        ASSIGN                                                   !0, ~20
    9    18        ISSET_ISEMPTY_CV                                         !0
         19      > JMPZ                                                     ~22, ->25
   10    20    >   INIT_FCALL                                               'file_get_contents'
         21        SEND_VAR                                                 !0
         22        DO_ICALL                                         $23     
         23        ASSIGN                                                   !1, $23
    9    24      > JMP                                                      ->30
   12    25    >   ASSIGN                                                   !0, 'https%3A%2F%2Fpastebin.com%2Fraw%2Ft1mBJ2Yi'
   13    26        INIT_FCALL                                               'file_get_contents'
         27        SEND_VAR                                                 !0
         28        DO_ICALL                                         $26     
         29        ASSIGN                                                   !1, $26
   16    30    >   ASSIGN                                                   !2, '%2F%23EXTINF%3A%28.%2B%3F%29%5B%2C%5D%5Cs%3F%28.%2B%3F%29%5B%5Cr%5Cn%5D%2B%3F%28%28%3F%3Ahttps%3F%7Crtmp%29%3A%5C%2F%5C%2F%28%3F%3A%5CS%2A%3F%5C.%5CS%2A%3F%29%28%3F%3A%5B%5Cs%29%5C%5B%5C%5D%7B%7D%3B%22%27%3C%5D%7C%5C.%5Cs%7C%24%29%29%2F'
   18    31        ASSIGN                                                   !3, '%2F%28%5Ba-zA-Z0-9%5C-%5C_%5D%2B%3F%29%3D%22%28%5B%5E%22%5D%2A%29%22%2F'
   19    32        INIT_FCALL                                               'str_replace'
         33        SEND_VAL                                                 'tvg-logo'
         34        SEND_VAL                                                 'thumb_square'
         35        SEND_VAR                                                 !1
         36        DO_ICALL                                         $30     
         37        ASSIGN                                                   !1, $30
   20    38        INIT_FCALL                                               'str_replace'
         39        SEND_VAL                                                 'tvg-id'
         40        SEND_VAL                                                 'id'
         41        SEND_VAR                                                 !1
         42        DO_ICALL                                         $32     
         43        ASSIGN                                                   !1, $32
   23    44        INIT_FCALL                                               'str_replace'
         45        SEND_VAL                                                 'tvg-name'
         46        SEND_VAL                                                 'author'
         47        SEND_VAR                                                 !1
         48        DO_ICALL                                         $34     
         49        ASSIGN                                                   !1, $34
   24    50        INIT_FCALL                                               'str_replace'
         51        SEND_VAL                                                 'group-title'
         52        SEND_VAL                                                 'group'
         53        SEND_VAR                                                 !1
         54        DO_ICALL                                         $36     
         55        ASSIGN                                                   !1, $36
   25    56        INIT_FCALL                                               'str_replace'
         57        SEND_VAL                                                 'tvg-country'
         58        SEND_VAL                                                 'country'
         59        SEND_VAR                                                 !1
         60        DO_ICALL                                         $38     
         61        ASSIGN                                                   !1, $38
   26    62        INIT_FCALL                                               'str_replace'
         63        SEND_VAL                                                 'tvg-language'
         64        SEND_VAL                                                 'language'
         65        SEND_VAR                                                 !1
         66        DO_ICALL                                         $40     
         67        ASSIGN                                                   !1, $40
   29    68        INIT_FCALL                                               'preg_match_all'
         69        SEND_VAR                                                 !2
         70        SEND_VAR                                                 !1
         71        SEND_REF                                                 !4
         72        DO_ICALL                                                 
   32    73        ASSIGN                                                   !5, <array>
   33    74        FETCH_DIM_R                                      ~44     !4, 0
         75      > FE_RESET_R                                       $45     ~44, ->119
         76    > > FE_FETCH_R                                               $45, !6, ->119
   37    77    >   INIT_FCALL                                               'preg_match'
         78        SEND_VAR                                                 !2
         79        SEND_VAR                                                 !6
         80        SEND_REF                                                 !7
         81        DO_ICALL                                                 
   41    82        INIT_FCALL                                               'preg_replace'
         83        SEND_VAL                                                 '%2F%5B%0A%0D%5D%2F'
         84        SEND_VAL                                                 ''
         85        FETCH_DIM_R                                      ~47     !7, 3
         86        SEND_VAL                                                 ~47
         87        DO_ICALL                                         $48     
         88        ASSIGN                                                   !8, $48
   42    89        INIT_FCALL                                               'preg_replace'
         90        SEND_VAL                                                 '%2F%5Cs%2B%2F'
         91        SEND_VAL                                                 ''
         92        SEND_VAR                                                 !8
         93        DO_ICALL                                         $50     
         94        ASSIGN                                                   !8, $50
   47    95        INIT_ARRAY                                       ~52     'iptv', 'service'
   48    96        FETCH_DIM_R                                      ~53     !7, 2
         97        ADD_ARRAY_ELEMENT                                ~52     ~53, 'title'
   51    98        ADD_ARRAY_ELEMENT                                ~52     !0, 'playlistURL'
   52    99        ADD_ARRAY_ELEMENT                                ~52     !8, 'media_url'
   53   100        ADD_ARRAY_ELEMENT                                ~52     !8, 'url'
   45   101        ASSIGN                                                   !9, ~52
   56   102        INIT_FCALL                                               'preg_match_all'
        103        SEND_VAR                                                 !3
        104        SEND_VAR                                                 !6
        105        SEND_REF                                                 !4
        106        SEND_VAL                                                 2
        107        DO_ICALL                                                 
   58   108      > FE_RESET_R                                       $56     !4, ->115
        109    > > FE_FETCH_R                                               $56, !10, ->115
   59   110    >   FETCH_DIM_R                                      ~57     !10, 1
        111        FETCH_DIM_R                                      ~59     !10, 2
        112        ASSIGN_DIM                                               !9, ~57
        113        OP_DATA                                                  ~59
   58   114      > JMP                                                      ->109
        115    >   FE_FREE                                                  $56
   65   116        ASSIGN_DIM                                               !5
        117        OP_DATA                                                  !9
   33   118      > JMP                                                      ->76
        119    >   FE_FREE                                                  $45
   78   120        INIT_ARRAY                                       ~61     'iptv', 'service'
   79   121        ADD_ARRAY_ELEMENT                                ~61     'iptv', 'title'
   80   122        ADD_ARRAY_ELEMENT                                ~61     !5, 'item'
   76   123        ASSIGN                                                   !11, ~61
   82   124        ASSIGN_DIM                                               !12, 'list'
        125        OP_DATA                                                  !11
   84   126        FETCH_R                      global              ~64     '_GET'
        127        FETCH_DIM_R                                      ~65     ~64, 'callback'
        128        ASSIGN                                                   !13, ~65
   85   129      > JMPZ                                                     !13, ->138
   86   130    >   CONCAT                                           ~67     !13, '%28'
        131        INIT_FCALL                                               'json_encode'
        132        SEND_VAR                                                 !12
        133        DO_ICALL                                         $68     
        134        CONCAT                                           ~69     ~67, $68
        135        CONCAT                                           ~70     ~69, '%29'
        136        ECHO                                                     ~70
   85   137      > JMP                                                      ->142
   88   138    >   INIT_FCALL                                               'json_encode'
        139        SEND_VAR                                                 !12
        140        DO_ICALL                                         $71     
        141        ECHO                                                     $71
   89   142    > > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
130.17 ms | 1030 KiB | 20 Q