3v4l.org

run code in 300+ PHP versions simultaneously
<?php $code = '<?php function extractURL($url) { if (preg_match(\'#http://www.google.com/?$#i\', $url, $match)) { return $match[1]; } return null; } '; $tokens = token_get_all($code); print_r($tokens); foreach ($tokens as $token) { if (is_string($token)) { print "[(string token)] " . $token . "\r\n"; } elseif ($token[0] === T_WHITESPACE) { print "[T_WHITESPACE]\r\n"; } else { print "[" . token_name($token[0]) . "] " . trim($token[1]) . "\r\n"; } }
Output for git.master, git.master_jit
Array ( [0] => Array ( [0] => 394 [1] => <?php [2] => 1 ) [1] => Array ( [0] => 347 [1] => function [2] => 2 ) [2] => Array ( [0] => 397 [1] => [2] => 2 ) [3] => Array ( [0] => 313 [1] => extractURL [2] => 2 ) [4] => ( [5] => Array ( [0] => 317 [1] => $url [2] => 2 ) [6] => ) [7] => Array ( [0] => 397 [1] => [2] => 2 ) [8] => { [9] => Array ( [0] => 397 [1] => [2] => 3 ) [10] => Array ( [0] => 326 [1] => if [2] => 4 ) [11] => Array ( [0] => 397 [1] => [2] => 4 ) [12] => ( [13] => Array ( [0] => 313 [1] => preg_match [2] => 4 ) [14] => ( [15] => Array ( [0] => 320 [1] => '#http://www.google.com/?$#i' [2] => 4 ) [16] => , [17] => Array ( [0] => 397 [1] => [2] => 4 ) [18] => Array ( [0] => 317 [1] => $url [2] => 4 ) [19] => , [20] => Array ( [0] => 397 [1] => [2] => 4 ) [21] => Array ( [0] => 317 [1] => $match [2] => 4 ) [22] => ) [23] => ) [24] => Array ( [0] => 397 [1] => [2] => 4 ) [25] => { [26] => Array ( [0] => 397 [1] => [2] => 4 ) [27] => Array ( [0] => 350 [1] => return [2] => 5 ) [28] => Array ( [0] => 397 [1] => [2] => 5 ) [29] => Array ( [0] => 317 [1] => $match [2] => 5 ) [30] => [ [31] => Array ( [0] => 311 [1] => 1 [2] => 5 ) [32] => ] [33] => ; [34] => Array ( [0] => 397 [1] => [2] => 5 ) [35] => } [36] => Array ( [0] => 397 [1] => [2] => 6 ) [37] => Array ( [0] => 350 [1] => return [2] => 7 ) [38] => Array ( [0] => 397 [1] => [2] => 7 ) [39] => Array ( [0] => 313 [1] => null [2] => 7 ) [40] => ; [41] => Array ( [0] => 397 [1] => [2] => 7 ) [42] => } [43] => Array ( [0] => 397 [1] => [2] => 8 ) ) [T_OPEN_TAG] <?php [T_FUNCTION] function [T_WHITESPACE] [T_STRING] extractURL [(string token)] ( [T_VARIABLE] $url [(string token)] ) [T_WHITESPACE] [(string token)] { [T_WHITESPACE] [T_IF] if [T_WHITESPACE] [(string token)] ( [T_STRING] preg_match [(string token)] ( [T_CONSTANT_ENCAPSED_STRING] '#http://www.google.com/?$#i' [(string token)] , [T_WHITESPACE] [T_VARIABLE] $url [(string token)] , [T_WHITESPACE] [T_VARIABLE] $match [(string token)] ) [(string token)] ) [T_WHITESPACE] [(string token)] { [T_WHITESPACE] [T_RETURN] return [T_WHITESPACE] [T_VARIABLE] $match [(string token)] [ [T_LNUMBER] 1 [(string token)] ] [(string token)] ; [T_WHITESPACE] [(string token)] } [T_WHITESPACE] [T_RETURN] return [T_WHITESPACE] [T_STRING] null [(string token)] ; [T_WHITESPACE] [(string token)] } [T_WHITESPACE]
Output for rfc.property-hooks
Array ( [0] => Array ( [0] => 396 [1] => <?php [2] => 1 ) [1] => Array ( [0] => 348 [1] => function [2] => 2 ) [2] => Array ( [0] => 399 [1] => [2] => 2 ) [3] => Array ( [0] => 313 [1] => extractURL [2] => 2 ) [4] => ( [5] => Array ( [0] => 317 [1] => $url [2] => 2 ) [6] => ) [7] => Array ( [0] => 399 [1] => [2] => 2 ) [8] => { [9] => Array ( [0] => 399 [1] => [2] => 3 ) [10] => Array ( [0] => 327 [1] => if [2] => 4 ) [11] => Array ( [0] => 399 [1] => [2] => 4 ) [12] => ( [13] => Array ( [0] => 313 [1] => preg_match [2] => 4 ) [14] => ( [15] => Array ( [0] => 320 [1] => '#http://www.google.com/?$#i' [2] => 4 ) [16] => , [17] => Array ( [0] => 399 [1] => [2] => 4 ) [18] => Array ( [0] => 317 [1] => $url [2] => 4 ) [19] => , [20] => Array ( [0] => 399 [1] => [2] => 4 ) [21] => Array ( [0] => 317 [1] => $match [2] => 4 ) [22] => ) [23] => ) [24] => Array ( [0] => 399 [1] => [2] => 4 ) [25] => { [26] => Array ( [0] => 399 [1] => [2] => 4 ) [27] => Array ( [0] => 351 [1] => return [2] => 5 ) [28] => Array ( [0] => 399 [1] => [2] => 5 ) [29] => Array ( [0] => 317 [1] => $match [2] => 5 ) [30] => [ [31] => Array ( [0] => 311 [1] => 1 [2] => 5 ) [32] => ] [33] => ; [34] => Array ( [0] => 399 [1] => [2] => 5 ) [35] => } [36] => Array ( [0] => 399 [1] => [2] => 6 ) [37] => Array ( [0] => 351 [1] => return [2] => 7 ) [38] => Array ( [0] => 399 [1] => [2] => 7 ) [39] => Array ( [0] => 313 [1] => null [2] => 7 ) [40] => ; [41] => Array ( [0] => 399 [1] => [2] => 7 ) [42] => } [43] => Array ( [0] => 399 [1] => [2] => 8 ) ) [T_OPEN_TAG] <?php [T_FUNCTION] function [T_WHITESPACE] [T_STRING] extractURL [(string token)] ( [T_VARIABLE] $url [(string token)] ) [T_WHITESPACE] [(string token)] { [T_WHITESPACE] [T_IF] if [T_WHITESPACE] [(string token)] ( [T_STRING] preg_match [(string token)] ( [T_CONSTANT_ENCAPSED_STRING] '#http://www.google.com/?$#i' [(string token)] , [T_WHITESPACE] [T_VARIABLE] $url [(string token)] , [T_WHITESPACE] [T_VARIABLE] $match [(string token)] ) [(string token)] ) [T_WHITESPACE] [(string token)] { [T_WHITESPACE] [T_RETURN] return [T_WHITESPACE] [T_VARIABLE] $match [(string token)] [ [T_LNUMBER] 1 [(string token)] ] [(string token)] ; [T_WHITESPACE] [(string token)] } [T_WHITESPACE] [T_RETURN] return [T_WHITESPACE] [T_STRING] null [(string token)] ; [T_WHITESPACE] [(string token)] } [T_WHITESPACE]

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
44.55 ms | 412 KiB | 8 Q