3v4l.org

run code in 300+ PHP versions simultaneously
<?php $allowed_symbols = '[a-z0-9:;,!\'\s*.?()"-]'; echo (int)!preg_match("/$allowed_symbols/im", '@3'); //0 проверка отсуствия разрешенных символов echo (int)!preg_match("/^$allowed_symbols+$/i", "aaa\nb@bb\nccc"); //1 присуствуют недопустимые символы во всем тексте echo (int)!preg_match("/^$allowed_symbols+$/i", "a@aa\nbbb\nccc"); //1 присуствуют недопустимые символы во всем тексте echo (int)!preg_match("/^$allowed_symbols+$/im", "aaa\nb@bb\nccc"); //0 есть строка полностью из допустимых символов (aaa) echo (int)!preg_match("/^$allowed_symbols+$/im", "a@aa\nbbb\nccc"); //0 есть строка полностью из допустимых символов (bbb) echo (int)!preg_match_all("/^$allowed_symbols+$/i", "aaa\nb@bb\nccc", $match); //1 во всем тексте есть недопусимые символы echo (int)!preg_match_all("/^$allowed_symbols+$/im", "aaa\nb@bb\nccc", $match); //0 есть строки полностью из допустимых символов (aaa,ccc) echo preg_replace("/^$allowed_symbols+$/i", '<$0>' , "aaa\nb@bb\nccc", 1); //покажет что находит 2 пункт (1) echo preg_replace("/^$allowed_symbols+$/im", '<$0>' , "aaa\nb@bb\nccc", 1); //покажет что находит 4 пункт (0) echo '---лучше так проверять присуствие недопустимых символов--'; $not_allowed_symbols = '[^a-z0-9:;,!\'\s*.?()"-]'; echo (int)preg_match("/$not_allowed_symbols/i", "aaa\nb@bb\nccc"); //1 echo (int)preg_match("/$not_allowed_symbols/i", "aaa\nbbb\nccc"); //0
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/qfRXk
function name:  (null)
number of ops:  114
compiled vars:  !0 = $allowed_symbols, !1 = $match, !2 = $not_allowed_symbols
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, '%5Ba-z0-9%3A%3B%2C%21%27%5Cs%2A.%3F%28%29%22-%5D'
    3     1        INIT_FCALL                                               'preg_match'
          2        ROPE_INIT                                     3  ~5      '%2F'
          3        ROPE_ADD                                      1  ~5      ~5, !0
          4        ROPE_END                                      2  ~4      ~5, '%2Fim'
          5        SEND_VAL                                                 ~4
          6        SEND_VAL                                                 '%403'
          7        DO_ICALL                                         $7      
          8        BOOL_NOT                                         ~8      $7
          9        CAST                                          4  ~9      ~8
         10        ECHO                                                     ~9
    4    11        INIT_FCALL                                               'preg_match'
         12        ROPE_INIT                                     3  ~11     '%2F%5E'
         13        ROPE_ADD                                      1  ~11     ~11, !0
         14        ROPE_END                                      2  ~10     ~11, '%2B%24%2Fi'
         15        SEND_VAL                                                 ~10
         16        SEND_VAL                                                 'aaa%0Ab%40bb%0Accc'
         17        DO_ICALL                                         $13     
         18        BOOL_NOT                                         ~14     $13
         19        CAST                                          4  ~15     ~14
         20        ECHO                                                     ~15
    5    21        INIT_FCALL                                               'preg_match'
         22        ROPE_INIT                                     3  ~17     '%2F%5E'
         23        ROPE_ADD                                      1  ~17     ~17, !0
         24        ROPE_END                                      2  ~16     ~17, '%2B%24%2Fi'
         25        SEND_VAL                                                 ~16
         26        SEND_VAL                                                 'a%40aa%0Abbb%0Accc'
         27        DO_ICALL                                         $19     
         28        BOOL_NOT                                         ~20     $19
         29        CAST                                          4  ~21     ~20
         30        ECHO                                                     ~21
    6    31        INIT_FCALL                                               'preg_match'
         32        ROPE_INIT                                     3  ~23     '%2F%5E'
         33        ROPE_ADD                                      1  ~23     ~23, !0
         34        ROPE_END                                      2  ~22     ~23, '%2B%24%2Fim'
         35        SEND_VAL                                                 ~22
         36        SEND_VAL                                                 'aaa%0Ab%40bb%0Accc'
         37        DO_ICALL                                         $25     
         38        BOOL_NOT                                         ~26     $25
         39        CAST                                          4  ~27     ~26
         40        ECHO                                                     ~27
    7    41        INIT_FCALL                                               'preg_match'
         42        ROPE_INIT                                     3  ~29     '%2F%5E'
         43        ROPE_ADD                                      1  ~29     ~29, !0
         44        ROPE_END                                      2  ~28     ~29, '%2B%24%2Fim'
         45        SEND_VAL                                                 ~28
         46        SEND_VAL                                                 'a%40aa%0Abbb%0Accc'
         47        DO_ICALL                                         $31     
         48        BOOL_NOT                                         ~32     $31
         49        CAST                                          4  ~33     ~32
         50        ECHO                                                     ~33
    8    51        INIT_FCALL                                               'preg_match_all'
         52        ROPE_INIT                                     3  ~35     '%2F%5E'
         53        ROPE_ADD                                      1  ~35     ~35, !0
         54        ROPE_END                                      2  ~34     ~35, '%2B%24%2Fi'
         55        SEND_VAL                                                 ~34
         56        SEND_VAL                                                 'aaa%0Ab%40bb%0Accc'
         57        SEND_REF                                                 !1
         58        DO_ICALL                                         $37     
         59        BOOL_NOT                                         ~38     $37
         60        CAST                                          4  ~39     ~38
         61        ECHO                                                     ~39
    9    62        INIT_FCALL                                               'preg_match_all'
         63        ROPE_INIT                                     3  ~41     '%2F%5E'
         64        ROPE_ADD                                      1  ~41     ~41, !0
         65        ROPE_END                                      2  ~40     ~41, '%2B%24%2Fim'
         66        SEND_VAL                                                 ~40
         67        SEND_VAL                                                 'aaa%0Ab%40bb%0Accc'
         68        SEND_REF                                                 !1
         69        DO_ICALL                                         $43     
         70        BOOL_NOT                                         ~44     $43
         71        CAST                                          4  ~45     ~44
         72        ECHO                                                     ~45
   10    73        INIT_FCALL                                               'preg_replace'
         74        ROPE_INIT                                     3  ~47     '%2F%5E'
         75        ROPE_ADD                                      1  ~47     ~47, !0
         76        ROPE_END                                      2  ~46     ~47, '%2B%24%2Fi'
         77        SEND_VAL                                                 ~46
         78        SEND_VAL                                                 '%3C%240%3E'
         79        SEND_VAL                                                 'aaa%0Ab%40bb%0Accc'
         80        SEND_VAL                                                 1
         81        DO_ICALL                                         $49     
         82        ECHO                                                     $49
   11    83        INIT_FCALL                                               'preg_replace'
         84        ROPE_INIT                                     3  ~51     '%2F%5E'
         85        ROPE_ADD                                      1  ~51     ~51, !0
         86        ROPE_END                                      2  ~50     ~51, '%2B%24%2Fim'
         87        SEND_VAL                                                 ~50
         88        SEND_VAL                                                 '%3C%240%3E'
         89        SEND_VAL                                                 'aaa%0Ab%40bb%0Accc'
         90        SEND_VAL                                                 1
         91        DO_ICALL                                         $53     
         92        ECHO                                                     $53
   12    93        ECHO                                                     '---%D0%BB%D1%83%D1%87%D1%88%D0%B5+%D1%82%D0%B0%D0%BA+%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D1%82%D1%8C+%D0%BF%D1%80%D0%B8%D1%81%D1%83%D1%81%D1%82%D0%B2%D0%B8%D0%B5+%D0%BD%D0%B5%D0%B4%D0%BE%D0%BF%D1%83%D1%81%D1%82%D0%B8%D0%BC%D1%8B%D1%85+%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2--'
   13    94        ASSIGN                                                   !2, '%5B%5Ea-z0-9%3A%3B%2C%21%27%5Cs%2A.%3F%28%29%22-%5D'
   14    95        INIT_FCALL                                               'preg_match'
         96        ROPE_INIT                                     3  ~56     '%2F'
         97        ROPE_ADD                                      1  ~56     ~56, !2
         98        ROPE_END                                      2  ~55     ~56, '%2Fi'
         99        SEND_VAL                                                 ~55
        100        SEND_VAL                                                 'aaa%0Ab%40bb%0Accc'
        101        DO_ICALL                                         $58     
        102        CAST                                          4  ~59     $58
        103        ECHO                                                     ~59
   15   104        INIT_FCALL                                               'preg_match'
        105        ROPE_INIT                                     3  ~61     '%2F'
        106        ROPE_ADD                                      1  ~61     ~61, !2
        107        ROPE_END                                      2  ~60     ~61, '%2Fi'
        108        SEND_VAL                                                 ~60
        109        SEND_VAL                                                 'aaa%0Abbb%0Accc'
        110        DO_ICALL                                         $63     
        111        CAST                                          4  ~64     $63
        112        ECHO                                                     ~64
        113      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
163.13 ms | 1404 KiB | 19 Q