<?php
function urlProvider(): iterable
{
// without https://www
yield 'youtube_link_1' => ['youtube.com/v/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_2' => ['youtube.com/v/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_3' => ['youtube.com/vi/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_4' => ['youtube.com/?v=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_5' => ['youtube.com/?vi=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_6' => ['youtube.com/watch?v=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_7' => ['youtube.com/watch?vi=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_8' => ['youtu.be/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_9' => ['youtube.com/embed/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_10' => ['youtube.com/shorts/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_11' => ['m.youtube.com/watch?v=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
// without https://
yield 'youtube_link_12' => ['www.youtube.com/v/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_13' => ['www.youtube.com/v/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_14' => ['www.youtube.com/vi/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_15' => ['www.youtube.com/?v=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_16' => ['www.youtube.com/?vi=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_17' => ['www.youtube.com/watch?v=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_18' => ['www.youtube.com/watch?vi=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_19' => ['www.youtu.be/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_20' => ['www.youtube.com/embed/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_21' => ['www.youtube.com/shorts/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
// http
yield 'youtube_link_22' => ['http://youtube.com/v/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_23' => ['http://youtube.com/v/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_24' => ['http://youtube.com/vi/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_25' => ['http://www.youtube.com/?v=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_26' => ['http://www.youtube.com/?vi=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_27' => ['http://www.youtube.com/watch?v=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_28' => ['http://www.youtube.com/watch?vi=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_29' => ['http://www.youtu.be/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_30' => ['http://youtube.com/embed/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_31' => ['http://www.youtube.com/shorts/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_32' => ['http://m.youtube.com/watch?v=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
// https
yield 'youtube_link_33' => ['https://youtube.com/v/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_34' => ['https://youtube.com/v/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_35' => ['https://youtube.com/vi/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_36' => ['https://www.youtube.com/?v=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_37' => ['https://www.youtube.com/?vi=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_38' => ['https://www.youtube.com/watch?v=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_39' => ['https://www.youtube.com/watch?vi=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_40' => ['https://www.youtu.be/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_41' => ['https://youtube.com/embed/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_42' => ['https://www.youtube.com/shorts/dE5jPNvLvOk', 'dE5jPNvLvOk', null];
yield 'youtube_link_43' => ['https://m.youtube.com/watch?v=dE5jPNvLvOk', 'dE5jPNvLvOk', null];
// with start time
yield 'youtube_link_44' => ['https://youtube.com/v/dE5jPNvLvOk?t=30', 'dE5jPNvLvOk', 30];
yield 'youtube_link_45' => ['https://youtube.com/v/dE5jPNvLvOk?t=30', 'dE5jPNvLvOk', 30];
yield 'youtube_link_46' => ['https://youtube.com/vi/dE5jPNvLvOk?t=30', 'dE5jPNvLvOk', 30];
yield 'youtube_link_47' => ['https://www.youtube.com/?v=dE5jPNvLvOk&t=30', 'dE5jPNvLvOk', 30];
yield 'youtube_link_48' => ['https://www.youtube.com/?vi=dE5jPNvLvOk&t=30', 'dE5jPNvLvOk', 30];
yield 'youtube_link_49' => ['https://www.youtube.com/watch?v=dE5jPNvLvOk&t=30', 'dE5jPNvLvOk', 30];
yield 'youtube_link_50' => ['https://www.youtube.com/watch?vi=dE5jPNvLvOk&t=30', 'dE5jPNvLvOk', 30];
yield 'youtube_link_51' => ['https://www.youtu.be/dE5jPNvLvOk?t=30', 'dE5jPNvLvOk', 30];
yield 'youtube_link_52' => ['https://youtube.com/embed/dE5jPNvLvOk?t=30', 'dE5jPNvLvOk', 30];
yield 'youtube_link_53' => ['https://www.youtube.com/shorts/dE5jPNvLvOk?t=30', 'dE5jPNvLvOk', 30];
yield 'youtube_link_54' => ['https://m.youtube.com/watch?v=dE5jPNvLvOk&t=30', 'dE5jPNvLvOk', 30];
// with feature
yield 'youtube_link_55' => ['https://www.youtube.com/watch?dev=inprogress&v=dE5jPNvLvOk&feature=related', 'dE5jPNvLvOk', null];
yield 'youtube_link_56' => ['https://youtube.com/v/dE5jPNvLvOk?feature=youtube_gdata_player', 'dE5jPNvLvOk', null];
yield 'youtube_link_57' => ['https://youtube.com/v/dE5jPNvLvOk?feature=youtube_gdata_player', 'dE5jPNvLvOk', null];
yield 'youtube_link_58' => ['https://youtube.com/vi/dE5jPNvLvOk?feature=youtube_gdata_player', 'dE5jPNvLvOk', null];
yield 'youtube_link_59' => ['https://www.youtube.com/?v=dE5jPNvLvOk&feature=youtube_gdata_player', 'dE5jPNvLvOk', null];
yield 'youtube_link_60' => ['https://www.youtube.com/?vi=dE5jPNvLvOk&feature=youtube_gdata_player', 'dE5jPNvLvOk', null];
yield 'youtube_link_61' => ['https://www.youtube.com/watch?v=dE5jPNvLvOk&feature=youtube_gdata_player', 'dE5jPNvLvOk', null];
yield 'youtube_link_62' => ['https://www.youtube.com/watch?vi=dE5jPNvLvOk&feature=youtube_gdata_player', 'dE5jPNvLvOk', null];
yield 'youtube_link_63' => ['https://www.youtu.be/dE5jPNvLvOk?feature=youtube_gdata_player', 'dE5jPNvLvOk', null];
yield 'youtube_link_64' => ['https://youtube.com/embed/dE5jPNvLvOk?feature=youtube_gdata_player', 'dE5jPNvLvOk', null];
yield 'youtube_link_65' => ['https://www.youtube.com/shorts/dE5jPNvLvOk?feature=youtube_gdata_player', 'dE5jPNvLvOk', null];
yield 'youtube_link_66' => ['https://m.youtube.com/watch?v=dE5jPNvLvOk&feature=youtube_gdata_player', 'dE5jPNvLvOk', null];
// do not implemented yet - with #action=share
yield 'youtube_link_67' => ['https://youtube.com/v/dE5jPNvLvOk#action=share ', 'dE5jPNvLvOk', null];
yield 'youtube_link_68' => ['https://youtube.com/v/dE5jPNvLvOk#action=share ', 'dE5jPNvLvOk', null];
yield 'youtube_link_69' => ['https://youtube.com/vi/dE5jPNvLvOk#action=share ', 'dE5jPNvLvOk', null];
yield 'youtube_link_70' => ['https://www.youtube.com/?v=dE5jPNvLvOk#action=share ', 'dE5jPNvLvOk', null];
yield 'youtube_link_71' => ['https://www.youtube.com/?vi=dE5jPNvLvOk#action=share ', 'dE5jPNvLvOk', null];
yield 'youtube_link_72' => ['https://www.youtube.com/watch?v=dE5jPNvLvOk#action=share ', 'dE5jPNvLvOk', null];
yield 'youtube_link_73' => ['https://www.youtube.com/watch?vi=dE5jPNvLvOk#action=share ', 'dE5jPNvLvOk', null];
yield 'youtube_link_74' => ['https://www.youtu.be/dE5jPNvLvOk#action=share ', 'dE5jPNvLvOk', null];
yield 'youtube_link_75' => ['https://youtube.com/embed/dE5jPNvLvOk#action=share ', 'dE5jPNvLvOk', null];
yield 'youtube_link_76' => ['https://www.youtube.com/shorts/dE5jPNvLvOk#action=share ', 'dE5jPNvLvOk', null];
yield 'youtube_link_77' => ['https://m.youtube.com/watch?v=dE5jPNvLvOk#action=share ', 'dE5jPNvLvOk', null];
}
foreach (urlProvider() as $data) {
unset($params); // prevent previous iteration data bleeding into current iteration
$components = parse_url($data[0]);
if (isset($components['query'])) {
parse_str($components['query'], $params);
}
var_export(
[
'id' => $params['vi'] ?? $params['v'] ?? basename($components['path'] ?? '') ?: null,
't' => $params['t'] ?? null,
]
);
echo "\n---\n";
}
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 41
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 41
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 12, Position 2 = 17
Branch analysis from position: 12
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 17
Branch analysis from position: 41
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 41
filename: /in/Up1mS
function name: (null)
number of ops: 43
compiled vars: !0 = $data, !1 = $params, !2 = $components
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
126 0 E > INIT_FCALL 'urlprovider'
1 DO_FCALL 0 $3
2 > FE_RESET_R $4 $3, ->41
3 > > FE_FETCH_R $4, !0, ->41
127 4 > UNSET_CV !1
128 5 INIT_FCALL 'parse_url'
6 FETCH_DIM_R ~5 !0, 0
7 SEND_VAL ~5
8 DO_ICALL $6
9 ASSIGN !2, $6
129 10 ISSET_ISEMPTY_DIM_OBJ 0 !2, 'query'
11 > JMPZ ~8, ->17
130 12 > INIT_FCALL 'parse_str'
13 FETCH_DIM_R ~9 !2, 'query'
14 SEND_VAL ~9
15 SEND_REF !1
16 DO_ICALL
132 17 > INIT_FCALL 'var_export'
134 18 FETCH_DIM_IS ~11 !1, 'vi'
19 COALESCE ~12 ~11
20 FETCH_DIM_IS ~13 !1, 'v'
21 COALESCE ~14 ~13
22 INIT_FCALL 'basename'
23 FETCH_DIM_IS ~15 !2, 'path'
24 COALESCE ~16 ~15
25 QM_ASSIGN ~16 ''
26 SEND_VAL ~16
27 DO_ICALL $17
28 QM_ASSIGN ~14 $17
29 QM_ASSIGN ~12 ~14
30 JMP_SET ~18 ~12, ->32
31 QM_ASSIGN ~18 null
32 INIT_ARRAY ~19 ~18, 'id'
135 33 FETCH_DIM_IS ~20 !1, 't'
34 COALESCE ~21 ~20
134 35 QM_ASSIGN ~21 null
36 ADD_ARRAY_ELEMENT ~19 ~21, 't'
37 SEND_VAL ~19
132 38 DO_ICALL
138 39 ECHO '%0A---%0A'
126 40 > JMP ->3
41 > FE_FREE $4
139 42 > RETURN 1
Function urlprovider:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 161) Position 1 = -2
filename: /in/Up1mS
function name: urlProvider
number of ops: 79
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
3 0 E > GENERATOR_CREATE
6 1 YIELD <array>, 'youtube_link_1'
8 2 YIELD <array>, 'youtube_link_2'
9 3 YIELD <array>, 'youtube_link_3'
11 4 YIELD <array>, 'youtube_link_4'
12 5 YIELD <array>, 'youtube_link_5'
14 6 YIELD <array>, 'youtube_link_6'
15 7 YIELD <array>, 'youtube_link_7'
17 8 YIELD <array>, 'youtube_link_8'
18 9 YIELD <array>, 'youtube_link_9'
19 10 YIELD <array>, 'youtube_link_10'
20 11 YIELD <array>, 'youtube_link_11'
23 12 YIELD <array>, 'youtube_link_12'
25 13 YIELD <array>, 'youtube_link_13'
26 14 YIELD <array>, 'youtube_link_14'
28 15 YIELD <array>, 'youtube_link_15'
29 16 YIELD <array>, 'youtube_link_16'
31 17 YIELD <array>, 'youtube_link_17'
32 18 YIELD <array>, 'youtube_link_18'
34 19 YIELD <array>, 'youtube_link_19'
35 20 YIELD <array>, 'youtube_link_20'
36 21 YIELD <array>, 'youtube_link_21'
39 22 YIELD <array>, 'youtube_link_22'
41 23 YIELD <array>, 'youtube_link_23'
42 24 YIELD <array>, 'youtube_link_24'
44 25 YIELD <array>, 'youtube_link_25'
45 26 YIELD <array>, 'youtube_link_26'
47 27 YIELD <array>, 'youtube_link_27'
48 28 YIELD <array>, 'youtube_link_28'
50 29 YIELD <array>, 'youtube_link_29'
51 30 YIELD <array>, 'youtube_link_30'
52 31 YIELD <array>, 'youtube_link_31'
53 32 YIELD <array>, 'youtube_link_32'
56 33 YIELD <array>, 'youtube_link_33'
58 34 YIELD <array>, 'youtube_link_34'
59 35 YIELD <array>, 'youtube_link_35'
61 36 YIELD <array>, 'youtube_link_36'
62 37 YIELD <array>, 'youtube_link_37'
64 38 YIELD <array>, 'youtube_link_38'
65 39 YIELD <array>, 'youtube_link_39'
67 40 YIELD <array>, 'youtube_link_40'
68 41 YIELD <array>, 'youtube_link_41'
69 42 YIELD <array>, 'youtube_link_42'
70 43 YIELD <array>, 'youtube_link_43'
73 44 YIELD <array>, 'youtube_link_44'
75 45 YIELD <array>, 'youtube_link_45'
76 46 YIELD <array>, 'youtube_link_46'
78 47 YIELD <array>, 'youtube_link_47'
79 48 YIELD <array>, 'youtube_link_48'
81 49 YIELD <array>, 'youtube_link_49'
82 50 YIELD <array>, 'youtube_link_50'
84 51 YIELD <array>, 'youtube_link_51'
85 52 YIELD <array>, 'youtube_link_52'
86 53 YIELD <array>, 'youtube_link_53'
87 54 YIELD <array>, 'youtube_link_54'
90 55 YIELD <array>, 'youtube_link_55'
92 56 YIELD <array>, 'youtube_link_56'
94 57 YIELD <array>, 'youtube_link_57'
95 58 YIELD <array>, 'youtube_link_58'
97 59 YIELD <array>, 'youtube_link_59'
98 60 YIELD <array>, 'youtube_link_60'
100 61 YIELD <array>, 'youtube_link_61'
101 62 YIELD <array>, 'youtube_link_62'
103 63 YIELD <array>, 'youtube_link_63'
104 64 YIELD <array>, 'youtube_link_64'
105 65 YIELD <array>, 'youtube_link_65'
106 66 YIELD <array>, 'youtube_link_66'
109 67 YIELD <array>, 'youtube_link_67'
111 68 YIELD <array>, 'youtube_link_68'
112 69 YIELD <array>, 'youtube_link_69'
114 70 YIELD <array>, 'youtube_link_70'
115 71 YIELD <array>, 'youtube_link_71'
117 72 YIELD <array>, 'youtube_link_72'
118 73 YIELD <array>, 'youtube_link_73'
120 74 YIELD <array>, 'youtube_link_74'
121 75 YIELD <array>, 'youtube_link_75'
122 76 YIELD <array>, 'youtube_link_76'
123 77 YIELD <array>, 'youtube_link_77'
124 78 > GENERATOR_RETURN
End of function urlprovider
Generated using Vulcan Logic Dumper, using php 8.0.0
preferences:
142.06 ms | 1086 KiB | 18 Q