3v4l.org

run code in 300+ PHP versions simultaneously
<?php require_once 'Services/Soundcloud.php'; /* * function to get via cUrl * From lastRSS 0.9.1 by Vojtech Semecky, webmaster @ webdot . cz * See http://lastrss.webdot.cz/ */ function curlGet($URL) { $ch = curl_init(); $timeout = 3; curl_setopt( $ch , CURLOPT_URL , $URL ); curl_setopt( $ch , CURLOPT_RETURNTRANSFER , 1 ); curl_setopt( $ch , CURLOPT_CONNECTTIMEOUT , $timeout ); /* if you want to force to ipv6, uncomment the following line */ //curl_setopt( $ch , CURLOPT_IPRESOLVE , 'CURLOPT_IPRESOLVE_V6'); $tmp = curl_exec( $ch ); curl_close( $ch ); return $tmp; } /* * function to use cUrl to get the headers of the file */ function get_location($url) { $my_ch = curl_init(); curl_setopt($my_ch, CURLOPT_URL,$url); curl_setopt($my_ch, CURLOPT_HEADER, true); curl_setopt($my_ch, CURLOPT_NOBODY, true); curl_setopt($my_ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($my_ch, CURLOPT_TIMEOUT, 10); $r = curl_exec($my_ch); foreach(explode("\n", $r) as $header) { if(strpos($header, 'Location: ') === 0) { return trim(substr($header,10)); } } return ''; } function get_size($url) { $my_ch = curl_init(); curl_setopt($my_ch, CURLOPT_URL,$url); curl_setopt($my_ch, CURLOPT_HEADER, true); curl_setopt($my_ch, CURLOPT_NOBODY, true); curl_setopt($my_ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($my_ch, CURLOPT_TIMEOUT, 10); $r = curl_exec($my_ch); foreach(explode("\n", $r) as $header) { if(strpos($header, 'Content-Length:') === 0) { return trim(substr($header,16)); } } return ''; } function get_description($url) { $fullpage = curlGet($url); $dom = new DOMDocument(); @$dom->loadHTML($fullpage); $xpath = new DOMXPath($dom); $tags = $xpath->query('//div[@class="info-description-body"]'); foreach ($tags as $tag) { $my_description .= (trim($tag->nodeValue)); } return utf8_decode($my_description); } // create a client object with your app credentials $client = new Services_Soundcloud( '6813c5d125013568ef986b73e4ba265c', '2eb6f212de6f4963c3873f8afdf517e9'); // a permalink to a track $track_url = 'http://soundcloud.com/forss/voca-nomen-tuum'; if($_GET['url']){ $track_url = $_GET['url']; } $url='http://api.soundcloud.com/resolve.json?url='.$track_url.'&client_id=6813c5d125013568ef986b73e4ba265c'; $headers=get_headers($url,1); $location=$headers['Location']; // resolve track URL into track resource //$track = json_decode($client->get('resolve', array('url' => $track_url))); /* now that we have the track id, we can get a list of comments, for example foreach (json_decode($client->get('tracks/' . $track->id . 'comments')) as $c) print 'Someone said: ' . $c->body . ' at ' . $c->timestamp . "\n"; try { $track = $soundcloud->download($track->id); } catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) { exit($e->getMessage()); } file_put_contents("files/download.mp3",$track); echo "<a href='files/download.mp3'>download</a>";*/ echo $location; function modify_url($mod, $url = FALSE){ // If $url wasn't passed in, use the current url if($url == FALSE){ $scheme = $_SERVER['SERVER_PORT'] == 80 ? 'http' : 'https'; $url = $scheme.'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; } // Parse the url into pieces $url_array = parse_url($url); // The original URL had a query string, modify it. if(!empty($url_array['query'])){ parse_str($url_array['query'], $query_array); foreach ($mod as $key => $value) { if(!empty($query_array[$key])){ $query_array[$key] = $value; } } } // The original URL didn't have a query string, add it. else{ $query_array = $mod; } return $url_array['scheme'].'://'.$url_array['host'].'/'.$url_array['path'].'?'.http_build_query($query_array); } $location = modify_url(array('client_id' => '6813c5d125013568ef986b73e4ba265c'), $location); $json = file_get_contents($location); $obj = json_decode($json); echo $obj->id; ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 10, Position 2 = 13
Branch analysis from position: 10
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 13
filename:       /in/7Tugp
function name:  (null)
number of ops:  40
compiled vars:  !0 = $client, !1 = $track_url, !2 = $url, !3 = $headers, !4 = $location, !5 = $json, !6 = $obj
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   INCLUDE_OR_EVAL                                          'Services%2FSoundcloud.php', REQUIRE_ONCE
   70     1        NEW                                              $8      'Services_Soundcloud'
   71     2        SEND_VAL_EX                                              '6813c5d125013568ef986b73e4ba265c'
          3        SEND_VAL_EX                                              '2eb6f212de6f4963c3873f8afdf517e9'
          4        DO_FCALL                                      0          
   70     5        ASSIGN                                                   !0, $8
   73     6        ASSIGN                                                   !1, 'http%3A%2F%2Fsoundcloud.com%2Fforss%2Fvoca-nomen-tuum'
   75     7        FETCH_R                      global              ~12     '_GET'
          8        FETCH_DIM_R                                      ~13     ~12, 'url'
          9      > JMPZ                                                     ~13, ->13
   76    10    >   FETCH_R                      global              ~14     '_GET'
         11        FETCH_DIM_R                                      ~15     ~14, 'url'
         12        ASSIGN                                                   !1, ~15
   79    13    >   CONCAT                                           ~17     'http%3A%2F%2Fapi.soundcloud.com%2Fresolve.json%3Furl%3D', !1
         14        CONCAT                                           ~18     ~17, '%26client_id%3D6813c5d125013568ef986b73e4ba265c'
         15        ASSIGN                                                   !2, ~18
   80    16        INIT_FCALL                                               'get_headers'
         17        SEND_VAR                                                 !2
         18        SEND_VAL                                                 1
         19        DO_ICALL                                         $20     
         20        ASSIGN                                                   !3, $20
   81    21        FETCH_DIM_R                                      ~22     !3, 'Location'
         22        ASSIGN                                                   !4, ~22
   97    23        ECHO                                                     !4
  121    24        INIT_FCALL                                               'modify_url'
         25        SEND_VAL                                                 <array>
         26        SEND_VAR                                                 !4
         27        DO_FCALL                                      0  $24     
         28        ASSIGN                                                   !4, $24
  123    29        INIT_FCALL                                               'file_get_contents'
         30        SEND_VAR                                                 !4
         31        DO_ICALL                                         $26     
         32        ASSIGN                                                   !5, $26
  124    33        INIT_FCALL                                               'json_decode'
         34        SEND_VAR                                                 !5
         35        DO_ICALL                                         $28     
         36        ASSIGN                                                   !6, $28
  125    37        FETCH_OBJ_R                                      ~30     !6, 'id'
         38        ECHO                                                     ~30
  126    39      > RETURN                                                   1

Function curlget:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/7Tugp
function name:  curlGet
number of ops:  32
compiled vars:  !0 = $URL, !1 = $ch, !2 = $timeout, !3 = $tmp
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    9     0  E >   RECV                                             !0      
   10     1        INIT_FCALL_BY_NAME                                       'curl_init'
          2        DO_FCALL                                      0  $4      
          3        ASSIGN                                                   !1, $4
   11     4        ASSIGN                                                   !2, 3
   12     5        INIT_FCALL_BY_NAME                                       'curl_setopt'
          6        SEND_VAR_EX                                              !1
          7        FETCH_CONSTANT                                   ~7      'CURLOPT_URL'
          8        SEND_VAL_EX                                              ~7
          9        SEND_VAR_EX                                              !0
         10        DO_FCALL                                      0          
   13    11        INIT_FCALL_BY_NAME                                       'curl_setopt'
         12        SEND_VAR_EX                                              !1
         13        FETCH_CONSTANT                                   ~9      'CURLOPT_RETURNTRANSFER'
         14        SEND_VAL_EX                                              ~9
         15        SEND_VAL_EX                                              1
         16        DO_FCALL                                      0          
   14    17        INIT_FCALL_BY_NAME                                       'curl_setopt'
         18        SEND_VAR_EX                                              !1
         19        FETCH_CONSTANT                                   ~11     'CURLOPT_CONNECTTIMEOUT'
         20        SEND_VAL_EX                                              ~11
         21        SEND_VAR_EX                                              !2
         22        DO_FCALL                                      0          
   17    23        INIT_FCALL_BY_NAME                                       'curl_exec'
         24        SEND_VAR_EX                                              !1
         25        DO_FCALL                                      0  $13     
         26        ASSIGN                                                   !3, $13
   18    27        INIT_FCALL_BY_NAME                                       'curl_close'
         28        SEND_VAR_EX                                              !1
         29        DO_FCALL                                      0          
   19    30      > RETURN                                                   !3
   20    31*     > RETURN                                                   null

End of function curlget

Function get_location:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 43, Position 2 = 60
Branch analysis from position: 43
2 jumps found. (Code = 78) Position 1 = 44, Position 2 = 60
Branch analysis from position: 44
2 jumps found. (Code = 43) Position 1 = 50, Position 2 = 59
Branch analysis from position: 50
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 59
1 jumps found. (Code = 42) Position 1 = 43
Branch analysis from position: 43
Branch analysis from position: 60
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 60
filename:       /in/7Tugp
function name:  get_location
number of ops:  63
compiled vars:  !0 = $url, !1 = $my_ch, !2 = $r, !3 = $header
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   25     0  E >   RECV                                             !0      
   26     1        INIT_FCALL_BY_NAME                                       'curl_init'
          2        DO_FCALL                                      0  $4      
          3        ASSIGN                                                   !1, $4
   27     4        INIT_FCALL_BY_NAME                                       'curl_setopt'
          5        SEND_VAR_EX                                              !1
          6        FETCH_CONSTANT                                   ~6      'CURLOPT_URL'
          7        SEND_VAL_EX                                              ~6
          8        SEND_VAR_EX                                              !0
          9        DO_FCALL                                      0          
   28    10        INIT_FCALL_BY_NAME                                       'curl_setopt'
         11        SEND_VAR_EX                                              !1
         12        FETCH_CONSTANT                                   ~8      'CURLOPT_HEADER'
         13        SEND_VAL_EX                                              ~8
         14        SEND_VAL_EX                                              <true>
         15        DO_FCALL                                      0          
   29    16        INIT_FCALL_BY_NAME                                       'curl_setopt'
         17        SEND_VAR_EX                                              !1
         18        FETCH_CONSTANT                                   ~10     'CURLOPT_NOBODY'
         19        SEND_VAL_EX                                              ~10
         20        SEND_VAL_EX                                              <true>
         21        DO_FCALL                                      0          
   30    22        INIT_FCALL_BY_NAME                                       'curl_setopt'
         23        SEND_VAR_EX                                              !1
         24        FETCH_CONSTANT                                   ~12     'CURLOPT_RETURNTRANSFER'
         25        SEND_VAL_EX                                              ~12
         26        SEND_VAL_EX                                              <true>
         27        DO_FCALL                                      0          
   31    28        INIT_FCALL_BY_NAME                                       'curl_setopt'
         29        SEND_VAR_EX                                              !1
         30        FETCH_CONSTANT                                   ~14     'CURLOPT_TIMEOUT'
         31        SEND_VAL_EX                                              ~14
         32        SEND_VAL_EX                                              10
         33        DO_FCALL                                      0          
   32    34        INIT_FCALL_BY_NAME                                       'curl_exec'
         35        SEND_VAR_EX                                              !1
         36        DO_FCALL                                      0  $16     
         37        ASSIGN                                                   !2, $16
   33    38        INIT_FCALL                                               'explode'
         39        SEND_VAL                                                 '%0A'
         40        SEND_VAR                                                 !2
         41        DO_ICALL                                         $18     
         42      > FE_RESET_R                                       $19     $18, ->60
         43    > > FE_FETCH_R                                               $19, !3, ->60
   34    44    >   INIT_FCALL                                               'strpos'
         45        SEND_VAR                                                 !3
         46        SEND_VAL                                                 'Location%3A+'
         47        DO_ICALL                                         $20     
         48        IS_IDENTICAL                                             $20, 0
         49      > JMPZ                                                     ~21, ->59
   35    50    >   INIT_FCALL                                               'trim'
         51        INIT_FCALL                                               'substr'
         52        SEND_VAR                                                 !3
         53        SEND_VAL                                                 10
         54        DO_ICALL                                         $22     
         55        SEND_VAR                                                 $22
         56        DO_ICALL                                         $23     
         57        FE_FREE                                                  $19
         58      > RETURN                                                   $23
   33    59    > > JMP                                                      ->43
         60    >   FE_FREE                                                  $19
   38    61      > RETURN                                                   ''
   39    62*     > RETURN                                                   null

End of function get_location

Function get_size:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 43, Position 2 = 60
Branch analysis from position: 43
2 jumps found. (Code = 78) Position 1 = 44, Position 2 = 60
Branch analysis from position: 44
2 jumps found. (Code = 43) Position 1 = 50, Position 2 = 59
Branch analysis from position: 50
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 59
1 jumps found. (Code = 42) Position 1 = 43
Branch analysis from position: 43
Branch analysis from position: 60
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 60
filename:       /in/7Tugp
function name:  get_size
number of ops:  63
compiled vars:  !0 = $url, !1 = $my_ch, !2 = $r, !3 = $header
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   41     0  E >   RECV                                             !0      
   42     1        INIT_FCALL_BY_NAME                                       'curl_init'
          2        DO_FCALL                                      0  $4      
          3        ASSIGN                                                   !1, $4
   43     4        INIT_FCALL_BY_NAME                                       'curl_setopt'
          5        SEND_VAR_EX                                              !1
          6        FETCH_CONSTANT                                   ~6      'CURLOPT_URL'
          7        SEND_VAL_EX                                              ~6
          8        SEND_VAR_EX                                              !0
          9        DO_FCALL                                      0          
   44    10        INIT_FCALL_BY_NAME                                       'curl_setopt'
         11        SEND_VAR_EX                                              !1
         12        FETCH_CONSTANT                                   ~8      'CURLOPT_HEADER'
         13        SEND_VAL_EX                                              ~8
         14        SEND_VAL_EX                                              <true>
         15        DO_FCALL                                      0          
   45    16        INIT_FCALL_BY_NAME                                       'curl_setopt'
         17        SEND_VAR_EX                                              !1
         18        FETCH_CONSTANT                                   ~10     'CURLOPT_NOBODY'
         19        SEND_VAL_EX                                              ~10
         20        SEND_VAL_EX                                              <true>
         21        DO_FCALL                                      0          
   46    22        INIT_FCALL_BY_NAME                                       'curl_setopt'
         23        SEND_VAR_EX                                              !1
         24        FETCH_CONSTANT                                   ~12     'CURLOPT_RETURNTRANSFER'
         25        SEND_VAL_EX                                              ~12
         26        SEND_VAL_EX                                              <true>
         27        DO_FCALL                                      0          
   47    28        INIT_FCALL_BY_NAME                                       'curl_setopt'
         29        SEND_VAR_EX                                              !1
         30        FETCH_CONSTANT                                   ~14     'CURLOPT_TIMEOUT'
         31        SEND_VAL_EX                                              ~14
         32        SEND_VAL_EX                                              10
         33        DO_FCALL                                      0          
   48    34        INIT_FCALL_BY_NAME                                       'curl_exec'
         35        SEND_VAR_EX                                              !1
         36        DO_FCALL                                      0  $16     
         37        ASSIGN                                                   !2, $16
   49    38        INIT_FCALL                                               'explode'
         39        SEND_VAL                                                 '%0A'
         40        SEND_VAR                                                 !2
         41        DO_ICALL                                         $18     
         42      > FE_RESET_R                                       $19     $18, ->60
         43    > > FE_FETCH_R                                               $19, !3, ->60
   50    44    >   INIT_FCALL                                               'strpos'
         45        SEND_VAR                                                 !3
         46        SEND_VAL                                                 'Content-Length%3A'
         47        DO_ICALL                                         $20     
         48        IS_IDENTICAL                                             $20, 0
         49      > JMPZ                                                     ~21, ->59
   51    50    >   INIT_FCALL                                               'trim'
         51        INIT_FCALL                                               'substr'
         52        SEND_VAR                                                 !3
         53        SEND_VAL                                                 16
         54        DO_ICALL                                         $22     
         55        SEND_VAR                                                 $22
         56        DO_ICALL                                         $23     
         57        FE_FREE                                                  $19
         58      > RETURN                                                   $23
   49    59    > > JMP                                                      ->43
         60    >   FE_FREE                                                  $19
   54    61      > RETURN                                                   ''
   55    62*     > RETURN                                                   null

End of function get_size

Function get_description:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 22, Position 2 = 29
Branch analysis from position: 22
2 jumps found. (Code = 78) Position 1 = 23, Position 2 = 29
Branch analysis from position: 23
1 jumps found. (Code = 42) Position 1 = 22
Branch analysis from position: 22
Branch analysis from position: 29
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 29
filename:       /in/7Tugp
function name:  get_description
number of ops:  35
compiled vars:  !0 = $url, !1 = $fullpage, !2 = $dom, !3 = $xpath, !4 = $tags, !5 = $tag, !6 = $my_description
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   57     0  E >   RECV                                             !0      
   58     1        INIT_FCALL                                               'curlget'
          2        SEND_VAR                                                 !0
          3        DO_FCALL                                      0  $7      
          4        ASSIGN                                                   !1, $7
   59     5        NEW                                              $9      'DOMDocument'
          6        DO_FCALL                                      0          
          7        ASSIGN                                                   !2, $9
   60     8        BEGIN_SILENCE                                    ~12     
          9        INIT_METHOD_CALL                                         !2, 'loadHTML'
         10        SEND_VAR_EX                                              !1
         11        DO_FCALL                                      0          
         12        END_SILENCE                                              ~12
   61    13        NEW                                              $14     'DOMXPath'
         14        SEND_VAR_EX                                              !2
         15        DO_FCALL                                      0          
         16        ASSIGN                                                   !3, $14
   62    17        INIT_METHOD_CALL                                         !3, 'query'
         18        SEND_VAL_EX                                              '%2F%2Fdiv%5B%40class%3D%22info-description-body%22%5D'
         19        DO_FCALL                                      0  $17     
         20        ASSIGN                                                   !4, $17
   63    21      > FE_RESET_R                                       $19     !4, ->29
         22    > > FE_FETCH_R                                               $19, !5, ->29
   64    23    >   INIT_FCALL                                               'trim'
         24        FETCH_OBJ_R                                      ~20     !5, 'nodeValue'
         25        SEND_VAL                                                 ~20
         26        DO_ICALL                                         $21     
         27        ASSIGN_OP                                     8          !6, $21
   63    28      > JMP                                                      ->22
         29    >   FE_FREE                                                  $19
   67    30        INIT_FCALL                                               'utf8_decode'
         31        SEND_VAR                                                 !6
         32        DO_ICALL                                         $23     
         33      > RETURN                                                   $23
   68    34*     > RETURN                                                   null

End of function get_description

Function modify_url:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 20
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 10
Branch analysis from position: 8
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 43
Branch analysis from position: 27
2 jumps found. (Code = 77) Position 1 = 33, Position 2 = 41
Branch analysis from position: 33
2 jumps found. (Code = 78) Position 1 = 34, Position 2 = 41
Branch analysis from position: 34
2 jumps found. (Code = 43) Position 1 = 38, Position 2 = 40
Branch analysis from position: 38
1 jumps found. (Code = 42) Position 1 = 33
Branch analysis from position: 33
Branch analysis from position: 40
Branch analysis from position: 41
1 jumps found. (Code = 42) Position 1 = 44
Branch analysis from position: 44
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 41
Branch analysis from position: 43
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 43
Branch analysis from position: 27
Branch analysis from position: 43
Branch analysis from position: 20
filename:       /in/7Tugp
function name:  modify_url
number of ops:  58
compiled vars:  !0 = $mod, !1 = $url, !2 = $scheme, !3 = $url_array, !4 = $query_array, !5 = $value, !6 = $key
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   98     0  E >   RECV                                             !0      
          1        RECV_INIT                                        !1      <false>
  100     2        BOOL_NOT                                         ~7      !1
          3      > JMPZ                                                     ~7, ->20
  101     4    >   FETCH_R                      global              ~8      '_SERVER'
          5        FETCH_DIM_R                                      ~9      ~8, 'SERVER_PORT'
          6        IS_EQUAL                                                 ~9, 80
          7      > JMPZ                                                     ~10, ->10
          8    >   QM_ASSIGN                                        ~11     'http'
          9      > JMP                                                      ->11
         10    >   QM_ASSIGN                                        ~11     'https'
         11    >   ASSIGN                                                   !2, ~11
  102    12        CONCAT                                           ~13     !2, '%3A%2F%2F'
         13        FETCH_R                      global              ~14     '_SERVER'
         14        FETCH_DIM_R                                      ~15     ~14, 'HTTP_HOST'
         15        CONCAT                                           ~16     ~13, ~15
         16        FETCH_R                      global              ~17     '_SERVER'
         17        FETCH_DIM_R                                      ~18     ~17, 'REQUEST_URI'
         18        CONCAT                                           ~19     ~16, ~18
         19        ASSIGN                                                   !1, ~19
  105    20    >   INIT_FCALL                                               'parse_url'
         21        SEND_VAR                                                 !1
         22        DO_ICALL                                         $21     
         23        ASSIGN                                                   !3, $21
  107    24        ISSET_ISEMPTY_DIM_OBJ                         1  ~23     !3, 'query'
         25        BOOL_NOT                                         ~24     ~23
         26      > JMPZ                                                     ~24, ->43
  108    27    >   INIT_FCALL                                               'parse_str'
         28        FETCH_DIM_R                                      ~25     !3, 'query'
         29        SEND_VAL                                                 ~25
         30        SEND_REF                                                 !4
         31        DO_ICALL                                                 
  109    32      > FE_RESET_R                                       $27     !0, ->41
         33    > > FE_FETCH_R                                       ~28     $27, !5, ->41
         34    >   ASSIGN                                                   !6, ~28
  110    35        ISSET_ISEMPTY_DIM_OBJ                         1  ~30     !4, !6
         36        BOOL_NOT                                         ~31     ~30
         37      > JMPZ                                                     ~31, ->40
  111    38    >   ASSIGN_DIM                                               !4, !6
         39        OP_DATA                                                  !5
  109    40    > > JMP                                                      ->33
         41    >   FE_FREE                                                  $27
         42      > JMP                                                      ->44
  117    43    >   ASSIGN                                                   !4, !0
  119    44    >   FETCH_DIM_R                                      ~34     !3, 'scheme'
         45        CONCAT                                           ~35     ~34, '%3A%2F%2F'
         46        FETCH_DIM_R                                      ~36     !3, 'host'
         47        CONCAT                                           ~37     ~35, ~36
         48        CONCAT                                           ~38     ~37, '%2F'
         49        FETCH_DIM_R                                      ~39     !3, 'path'
         50        CONCAT                                           ~40     ~38, ~39
         51        CONCAT                                           ~41     ~40, '%3F'
         52        INIT_FCALL                                               'http_build_query'
         53        SEND_VAR                                                 !4
         54        DO_ICALL                                         $42     
         55        CONCAT                                           ~43     ~41, $42
         56      > RETURN                                                   ~43
  120    57*     > RETURN                                                   null

End of function modify_url

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
158.15 ms | 1431 KiB | 37 Q