3v4l.org

run code in 300+ PHP versions simultaneously
<?php function isUrl($value) { $alpha = "a-z\x80-\xFF"; $domain = "[0-9$alpha](?:[-0-9$alpha]{0,61}[0-9$alpha])?"; $topDomain = "[$alpha](?:[-0-9$alpha]{0,17}[$alpha])?"; return (bool) preg_match("(^https?://(?:(?:$domain\\.)*$topDomain|\\d{1,3}\.\\d{1,3}\.\\d{1,3}\.\\d{1,3}|\[[0-9a-f:]{3,39}\])(:\\d{1,5})?(/\\S*)?\\z)i", $value); } var_dump($isUrl("https://test.cz")); var_dump($isUrl("http://test.cz")); var_dump($isUrl("https://www.test.cz")); var_dump($isUrl("http://www.test.cz"));
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/XjoQV
function name:  (null)
number of ops:  25
compiled vars:  !0 = $isUrl
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   11     0  E >   INIT_FCALL                                               'var_dump'
          1        INIT_DYNAMIC_CALL                                        !0
          2        SEND_VAL_EX                                              'https%3A%2F%2Ftest.cz'
          3        DO_FCALL                                      0  $1      
          4        SEND_VAR                                                 $1
          5        DO_ICALL                                                 
   12     6        INIT_FCALL                                               'var_dump'
          7        INIT_DYNAMIC_CALL                                        !0
          8        SEND_VAL_EX                                              'http%3A%2F%2Ftest.cz'
          9        DO_FCALL                                      0  $3      
         10        SEND_VAR                                                 $3
         11        DO_ICALL                                                 
   13    12        INIT_FCALL                                               'var_dump'
         13        INIT_DYNAMIC_CALL                                        !0
         14        SEND_VAL_EX                                              'https%3A%2F%2Fwww.test.cz'
         15        DO_FCALL                                      0  $5      
         16        SEND_VAR                                                 $5
         17        DO_ICALL                                                 
   14    18        INIT_FCALL                                               'var_dump'
         19        INIT_DYNAMIC_CALL                                        !0
         20        SEND_VAL_EX                                              'http%3A%2F%2Fwww.test.cz'
         21        DO_FCALL                                      0  $7      
         22        SEND_VAR                                                 $7
         23        DO_ICALL                                                 
         24      > RETURN                                                   1

Function isurl:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/XjoQV
function name:  isUrl
number of ops:  30
compiled vars:  !0 = $value, !1 = $alpha, !2 = $domain, !3 = $topDomain
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   RECV                                             !0      
    5     1        ASSIGN                                                   !1, 'a-z%80-%FF'
    6     2        ROPE_INIT                                     7  ~6      '%5B0-9'
          3        ROPE_ADD                                      1  ~6      ~6, !1
          4        ROPE_ADD                                      2  ~6      ~6, '%5D%28%3F%3A%5B-0-9'
          5        ROPE_ADD                                      3  ~6      ~6, !1
          6        ROPE_ADD                                      4  ~6      ~6, '%5D%7B0%2C61%7D%5B0-9'
          7        ROPE_ADD                                      5  ~6      ~6, !1
          8        ROPE_END                                      6  ~5      ~6, '%5D%29%3F'
          9        ASSIGN                                                   !2, ~5
    7    10        ROPE_INIT                                     7  ~12     '%5B'
         11        ROPE_ADD                                      1  ~12     ~12, !1
         12        ROPE_ADD                                      2  ~12     ~12, '%5D%28%3F%3A%5B-0-9'
         13        ROPE_ADD                                      3  ~12     ~12, !1
         14        ROPE_ADD                                      4  ~12     ~12, '%5D%7B0%2C17%7D%5B'
         15        ROPE_ADD                                      5  ~12     ~12, !1
         16        ROPE_END                                      6  ~11     ~12, '%5D%29%3F'
         17        ASSIGN                                                   !3, ~11
    8    18        INIT_FCALL                                               'preg_match'
         19        ROPE_INIT                                     5  ~18     '%28%5Ehttps%3F%3A%2F%2F%28%3F%3A%28%3F%3A'
         20        ROPE_ADD                                      1  ~18     ~18, !2
         21        ROPE_ADD                                      2  ~18     ~18, '%5C.%29%2A'
         22        ROPE_ADD                                      3  ~18     ~18, !3
         23        ROPE_END                                      4  ~17     ~18, '%7C%5Cd%7B1%2C3%7D%5C.%5Cd%7B1%2C3%7D%5C.%5Cd%7B1%2C3%7D%5C.%5Cd%7B1%2C3%7D%7C%5C%5B%5B0-9a-f%3A%5D%7B3%2C39%7D%5C%5D%29%28%3A%5Cd%7B1%2C5%7D%29%3F%28%2F%5CS%2A%29%3F%5Cz%29i'
         24        SEND_VAL                                                 ~17
         25        SEND_VAR                                                 !0
         26        DO_ICALL                                         $21     
         27        BOOL                                             ~22     $21
         28      > RETURN                                                   ~22
    9    29*     > RETURN                                                   null

End of function isurl

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
152.14 ms | 1392 KiB | 17 Q