3v4l.org

run code in 300+ PHP versions simultaneously
<?php function _getYoutubeVideoId($url) { $parts = parse_url($url); //For seriously malformed urls if ($parts === false) { return false; } switch ($parts['host']) { case 'youtu.be': return substr($parts['path'], 1); break; case 'youtube.com': case 'www.youtube.com': parse_str($parts['query'], $params); return $params['v']; break; default: return false; break; } } var_dump(_getYoutubeVideoId("htt://www.youtube.com/watch?v=WQq0RAbj4i8"));
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/7qUg6
function name:  (null)
number of ops:  7
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   27     0  E >   INIT_FCALL                                               'var_dump'
          1        INIT_FCALL                                               '_getyoutubevideoid'
          2        SEND_VAL                                                 'htt%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DWQq0RAbj4i8'
          3        DO_FCALL                                      0  $0      
          4        SEND_VAR                                                 $0
          5        DO_ICALL                                                 
          6      > RETURN                                                   1

Function _getyoutubevideoid:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 8
Branch analysis from position: 7
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
5 jumps found. (Code = 188) Position 1 = 17, Position 2 = 25, Position 3 = 25, Position 4 = 34, Position 5 = 10
Branch analysis from position: 17
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 25
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 25
Branch analysis from position: 34
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 10
2 jumps found. (Code = 44) Position 1 = 12, Position 2 = 17
Branch analysis from position: 12
2 jumps found. (Code = 44) Position 1 = 14, Position 2 = 25
Branch analysis from position: 14
2 jumps found. (Code = 44) Position 1 = 16, Position 2 = 25
Branch analysis from position: 16
1 jumps found. (Code = 42) Position 1 = 34
Branch analysis from position: 34
Branch analysis from position: 25
Branch analysis from position: 25
Branch analysis from position: 17
filename:       /in/7qUg6
function name:  _getYoutubeVideoId
number of ops:  39
compiled vars:  !0 = $url, !1 = $parts, !2 = $params
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   RECV                                             !0      
    5     1        INIT_FCALL                                               'parse_url'
          2        SEND_VAR                                                 !0
          3        DO_ICALL                                         $3      
          4        ASSIGN                                                   !1, $3
    8     5        TYPE_CHECK                                    4          !1
          6      > JMPZ                                                     ~5, ->8
    9     7    > > RETURN                                                   <false>
   12     8    >   FETCH_DIM_R                                      ~6      !1, 'host'
          9      > SWITCH_STRING                                            ~6, [ 'youtu.be':->17, 'youtube.com':->25, 'www.youtube.com':->25, ], ->34
   13    10    >   CASE                                                     ~6, 'youtu.be'
         11      > JMPNZ                                                    ~7, ->17
   16    12    >   CASE                                                     ~6, 'youtube.com'
         13      > JMPNZ                                                    ~7, ->25
   17    14    >   CASE                                                     ~6, 'www.youtube.com'
         15      > JMPNZ                                                    ~7, ->25
         16    > > JMP                                                      ->34
   14    17    >   INIT_FCALL                                               'substr'
         18        FETCH_DIM_R                                      ~8      !1, 'path'
         19        SEND_VAL                                                 ~8
         20        SEND_VAL                                                 1
         21        DO_ICALL                                         $9      
         22        FREE                                                     ~6
         23      > RETURN                                                   $9
   15    24*       JMP                                                      ->37
   18    25    >   INIT_FCALL                                               'parse_str'
         26        FETCH_DIM_R                                      ~10     !1, 'query'
         27        SEND_VAL                                                 ~10
         28        SEND_REF                                                 !2
         29        DO_ICALL                                                 
   19    30        FETCH_DIM_R                                      ~12     !2, 'v'
         31        FREE                                                     ~6
         32      > RETURN                                                   ~12
   20    33*       JMP                                                      ->37
   22    34    >   FREE                                                     ~6
         35      > RETURN                                                   <false>
   23    36*       JMP                                                      ->37
         37*       FREE                                                     ~6
   25    38*     > RETURN                                                   null

End of function _getyoutubevideoid

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
146.45 ms | 1403 KiB | 22 Q