3v4l.org

run code in 300+ PHP versions simultaneously
<?php // // Função Transformação // // Fn(Xn,Y1) => Ft(Xn,Yt) // // Função de transformação Fn em Ft, aplicada na matriz de Elementos, e a transformação do conteúdo do // Elemento (X1,Yn) pelo conteúdo do Elemento (Xn,Yt). // onde: // t é o número de idiomas disponível, neste caso igual a 3, porque estamos manipulando neste exemplo // somente 3 idiomas; // n é igual código do idioma que está sendo trabalhado, e variando de 2 até o valor de t; // // function ap_altera_url_idioma ($url_input, $acao_input, $url_output){ //Títulos das colunas (eixo X) $elemento[0][1] = 'idioma'; $elemento[0][2] = 'diretorio'; $elemento[0][3] = 'acao'; //Títulos das linhas (eixo Y) $elemento[1][0] = 'ingles'; $elemento[2][0] = 'portugues'; $elemento[3][0] = 'espanhol'; //Conteúdo da matriz // Coluna 1 $elemento[1][1] = 'en'; $elemento[1][2] = 'pt'; $elemento[1][3] = 'es'; // Coluna 2 $elemento[2][1] = 'my-listings'; $elemento[2][2] = 'meus-anuncios'; $elemento[2][3] = 'mis-anuncios'; // Coluna 3 $elemento[3][1] = 'edit'; $elemento[3][2] = 'editar'; $elemento[3][3] = 'crear'; // Coluna 4 $elemento[4][1] = 'remove'; $elemento[4][2] = 'remover'; $elemento[4][3] = 'retirar'; // $url_raiz = 'codaink.com/wordpress/'; $t = 3; $n = 0; $y = 0; $posicao = false; // // Critica dos dados informado como entrada // for ( $n = 1;$n <= $t; $n++){ // // Critica dos dados informado como entrada desta funcao // if ( $n = 1 ){ if ($acao_input <> $elemento[3][1]){ if ($acao_input <> $elemento[4][1]){ return 'ERROR 01 = Parametro errado passado para a função AP_ALTERA_URL, informar apenas edit ou remove'; break; }; }; $raiz_entrada = substr ($url_input, 0 , strlen ($url_raiz)); if ($raiz_entrada <> $url_raiz) { return 'ERROR 02 = Parametro errado passado para a função AP_ALTERA_URL, Raiz informada nao e aceita por esta funcao'; break; }; }; // // Algoritimo de transformacao // $diretorio = $elemento[2][$n]; $posicao = strpos( $url_input, $diretorio ); if ($posicao == true ){ if ($acao_input = $elemento[3][$n]){ return $url_output = $url_raiz . $elemento[3][$n]; break; } if ($acao_input = $elemento[4][$n]){ return $url_output = $url_raiz . $elemento[4][$n]; break; } }; $diretorio = $elemento[2][$n]; $posicao = strpos( $url_input , $diretorio ); if ( $posicao == true ){ if ($acao_input = $elemento[3][$n]){ return $url_output = $url_raiz . $elemento[1][$n] . $elemento[3][$n]; break; }; if ($acao_input = $elemento[4][$n]){ return $url_output = $url_raiz . $elemento[1][$n] . $elemento[4][$n]; break; }; }; }; }; ?> <?php // // Teste da Função Transformação // // Fn(Xn,Y1) => Ft(Xn,Yt) // $saida_url = ''; // $entrada_url = 'codaink.com/wordpress/pt/meus-anuncios'; // $entrada_url = 'codaink.com/wordpress/es/mis-anuncios'; // $entrada_url = 'codaink.com/wordpress/my-listings'; // // // $entrada_url = 'codaink.com/wordpress/my-listings'; $entrada_acao = 'remove'; echo ap_altera_url_idioma($entrada_url,$entrada_acao, $saida_url); $entrada_url = 'codaink.com/wordpress/my-listings'; $entrada_acao = 'edit'; echo " \n "; echo ap_altera_url_idioma($entrada_url,$entrada_acao, $saida_url); ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/8rlPr
function name:  (null)
number of ops:  19
compiled vars:  !0 = $saida_url, !1 = $entrada_url, !2 = $entrada_acao
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  104     0  E >   ASSIGN                                                   !0, ''
  111     1        ASSIGN                                                   !1, 'codaink.com%2Fwordpress%2Fmy-listings'
  112     2        ASSIGN                                                   !2, 'remove'
  113     3        INIT_FCALL                                               'ap_altera_url_idioma'
          4        SEND_VAR                                                 !1
          5        SEND_VAR                                                 !2
          6        SEND_VAR                                                 !0
          7        DO_FCALL                                      0  $6      
          8        ECHO                                                     $6
  114     9        ASSIGN                                                   !1, 'codaink.com%2Fwordpress%2Fmy-listings'
  115    10        ASSIGN                                                   !2, 'edit'
  116    11        ECHO                                                     '++++%0A++++'
  117    12        INIT_FCALL                                               'ap_altera_url_idioma'
         13        SEND_VAR                                                 !1
         14        SEND_VAR                                                 !2
         15        SEND_VAR                                                 !0
         16        DO_FCALL                                      0  $9      
         17        ECHO                                                     $9
  118    18      > RETURN                                                   1

Function ap_altera_url_idioma:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 154
Branch analysis from position: 154
2 jumps found. (Code = 44) Position 1 = 156, Position 2 = 64
Branch analysis from position: 156
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 64
2 jumps found. (Code = 43) Position 1 = 66, Position 2 = 87
Branch analysis from position: 66
2 jumps found. (Code = 43) Position 1 = 70, Position 2 = 76
Branch analysis from position: 70
2 jumps found. (Code = 43) Position 1 = 74, Position 2 = 76
Branch analysis from position: 74
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 76
2 jumps found. (Code = 43) Position 1 = 85, Position 2 = 87
Branch analysis from position: 85
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 87
2 jumps found. (Code = 43) Position 1 = 97, Position 2 = 117
Branch analysis from position: 97
2 jumps found. (Code = 43) Position 1 = 101, Position 2 = 107
Branch analysis from position: 101
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 107
2 jumps found. (Code = 43) Position 1 = 111, Position 2 = 117
Branch analysis from position: 111
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 117
2 jumps found. (Code = 43) Position 1 = 127, Position 2 = 153
Branch analysis from position: 127
2 jumps found. (Code = 43) Position 1 = 131, Position 2 = 140
Branch analysis from position: 131
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 140
2 jumps found. (Code = 43) Position 1 = 144, Position 2 = 153
Branch analysis from position: 144
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 153
2 jumps found. (Code = 44) Position 1 = 156, Position 2 = 64
Branch analysis from position: 156
Branch analysis from position: 64
Branch analysis from position: 153
Branch analysis from position: 117
Branch analysis from position: 76
Branch analysis from position: 87
filename:       /in/8rlPr
function name:  ap_altera_url_idioma
number of ops:  157
compiled vars:  !0 = $url_input, !1 = $acao_input, !2 = $url_output, !3 = $elemento, !4 = $url_raiz, !5 = $t, !6 = $n, !7 = $y, !8 = $posicao, !9 = $raiz_entrada, !10 = $diretorio
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   15     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
   17     3        FETCH_DIM_W                                      $11     !3, 0
          4        ASSIGN_DIM                                               $11, 1
          5        OP_DATA                                                  'idioma'
   18     6        FETCH_DIM_W                                      $13     !3, 0
          7        ASSIGN_DIM                                               $13, 2
          8        OP_DATA                                                  'diretorio'
   19     9        FETCH_DIM_W                                      $15     !3, 0
         10        ASSIGN_DIM                                               $15, 3
         11        OP_DATA                                                  'acao'
   21    12        FETCH_DIM_W                                      $17     !3, 1
         13        ASSIGN_DIM                                               $17, 0
         14        OP_DATA                                                  'ingles'
   22    15        FETCH_DIM_W                                      $19     !3, 2
         16        ASSIGN_DIM                                               $19, 0
         17        OP_DATA                                                  'portugues'
   23    18        FETCH_DIM_W                                      $21     !3, 3
         19        ASSIGN_DIM                                               $21, 0
         20        OP_DATA                                                  'espanhol'
   26    21        FETCH_DIM_W                                      $23     !3, 1
         22        ASSIGN_DIM                                               $23, 1
         23        OP_DATA                                                  'en'
   27    24        FETCH_DIM_W                                      $25     !3, 1
         25        ASSIGN_DIM                                               $25, 2
         26        OP_DATA                                                  'pt'
   28    27        FETCH_DIM_W                                      $27     !3, 1
         28        ASSIGN_DIM                                               $27, 3
         29        OP_DATA                                                  'es'
   30    30        FETCH_DIM_W                                      $29     !3, 2
         31        ASSIGN_DIM                                               $29, 1
         32        OP_DATA                                                  'my-listings'
   31    33        FETCH_DIM_W                                      $31     !3, 2
         34        ASSIGN_DIM                                               $31, 2
         35        OP_DATA                                                  'meus-anuncios'
   32    36        FETCH_DIM_W                                      $33     !3, 2
         37        ASSIGN_DIM                                               $33, 3
         38        OP_DATA                                                  'mis-anuncios'
   34    39        FETCH_DIM_W                                      $35     !3, 3
         40        ASSIGN_DIM                                               $35, 1
         41        OP_DATA                                                  'edit'
   35    42        FETCH_DIM_W                                      $37     !3, 3
         43        ASSIGN_DIM                                               $37, 2
         44        OP_DATA                                                  'editar'
   36    45        FETCH_DIM_W                                      $39     !3, 3
         46        ASSIGN_DIM                                               $39, 3
         47        OP_DATA                                                  'crear'
   38    48        FETCH_DIM_W                                      $41     !3, 4
         49        ASSIGN_DIM                                               $41, 1
         50        OP_DATA                                                  'remove'
   39    51        FETCH_DIM_W                                      $43     !3, 4
         52        ASSIGN_DIM                                               $43, 2
         53        OP_DATA                                                  'remover'
   40    54        FETCH_DIM_W                                      $45     !3, 4
         55        ASSIGN_DIM                                               $45, 3
         56        OP_DATA                                                  'retirar'
   42    57        ASSIGN                                                   !4, 'codaink.com%2Fwordpress%2F'
   43    58        ASSIGN                                                   !5, 3
   44    59        ASSIGN                                                   !6, 0
   45    60        ASSIGN                                                   !7, 0
   46    61        ASSIGN                                                   !8, <false>
   50    62        ASSIGN                                                   !6, 1
         63      > JMP                                                      ->154
   54    64    >   ASSIGN                                           ~53     !6, 1
         65      > JMPZ                                                     ~53, ->87
   55    66    >   FETCH_DIM_R                                      ~54     !3, 3
         67        FETCH_DIM_R                                      ~55     ~54, 1
         68        IS_NOT_EQUAL                                             !1, ~55
         69      > JMPZ                                                     ~56, ->76
   56    70    >   FETCH_DIM_R                                      ~57     !3, 4
         71        FETCH_DIM_R                                      ~58     ~57, 1
         72        IS_NOT_EQUAL                                             !1, ~58
         73      > JMPZ                                                     ~59, ->76
   57    74    > > RETURN                                                   'ERROR+01+%3D+Parametro+errado+passado+para+a+fun%C3%A7%C3%A3o+AP_ALTERA_URL%2C+informar+apenas+edit+ou+remove'
   58    75*       JMP                                                      ->156
   61    76    >   INIT_FCALL                                               'substr'
         77        SEND_VAR                                                 !0
         78        SEND_VAL                                                 0
         79        STRLEN                                           ~60     !4
         80        SEND_VAL                                                 ~60
         81        DO_ICALL                                         $61     
         82        ASSIGN                                                   !9, $61
   62    83        IS_NOT_EQUAL                                             !9, !4
         84      > JMPZ                                                     ~63, ->87
   63    85    > > RETURN                                                   'ERROR+02+%3D+Parametro+errado+passado+para+a+fun%C3%A7%C3%A3o+AP_ALTERA_URL%2C+Raiz+informada+nao+e+aceita+por+esta+funcao'
   64    86*       JMP                                                      ->156
   71    87    >   FETCH_DIM_R                                      ~64     !3, 2
         88        FETCH_DIM_R                                      ~65     ~64, !6
         89        ASSIGN                                                   !10, ~65
   72    90        INIT_FCALL                                               'strpos'
         91        SEND_VAR                                                 !0
         92        SEND_VAR                                                 !10
         93        DO_ICALL                                         $67     
         94        ASSIGN                                                   !8, $67
   73    95        BOOL                                             ~69     !8
         96      > JMPZ                                                     ~69, ->117
   74    97    >   FETCH_DIM_R                                      ~70     !3, 3
         98        FETCH_DIM_R                                      ~71     ~70, !6
         99        ASSIGN                                           ~72     !1, ~71
        100      > JMPZ                                                     ~72, ->107
   75   101    >   FETCH_DIM_R                                      ~73     !3, 3
        102        FETCH_DIM_R                                      ~74     ~73, !6
        103        CONCAT                                           ~75     !4, ~74
        104        ASSIGN                                           ~76     !2, ~75
        105      > RETURN                                                   ~76
   76   106*       JMP                                                      ->156
   78   107    >   FETCH_DIM_R                                      ~77     !3, 4
        108        FETCH_DIM_R                                      ~78     ~77, !6
        109        ASSIGN                                           ~79     !1, ~78
        110      > JMPZ                                                     ~79, ->117
   79   111    >   FETCH_DIM_R                                      ~80     !3, 4
        112        FETCH_DIM_R                                      ~81     ~80, !6
        113        CONCAT                                           ~82     !4, ~81
        114        ASSIGN                                           ~83     !2, ~82
        115      > RETURN                                                   ~83
   80   116*       JMP                                                      ->156
   83   117    >   FETCH_DIM_R                                      ~84     !3, 2
        118        FETCH_DIM_R                                      ~85     ~84, !6
        119        ASSIGN                                                   !10, ~85
   84   120        INIT_FCALL                                               'strpos'
        121        SEND_VAR                                                 !0
        122        SEND_VAR                                                 !10
        123        DO_ICALL                                         $87     
        124        ASSIGN                                                   !8, $87
   85   125        BOOL                                             ~89     !8
        126      > JMPZ                                                     ~89, ->153
   86   127    >   FETCH_DIM_R                                      ~90     !3, 3
        128        FETCH_DIM_R                                      ~91     ~90, !6
        129        ASSIGN                                           ~92     !1, ~91
        130      > JMPZ                                                     ~92, ->140
   87   131    >   FETCH_DIM_R                                      ~93     !3, 1
        132        FETCH_DIM_R                                      ~94     ~93, !6
        133        CONCAT                                           ~95     !4, ~94
        134        FETCH_DIM_R                                      ~96     !3, 3
        135        FETCH_DIM_R                                      ~97     ~96, !6
        136        CONCAT                                           ~98     ~95, ~97
        137        ASSIGN                                           ~99     !2, ~98
        138      > RETURN                                                   ~99
   88   139*       JMP                                                      ->156
   90   140    >   FETCH_DIM_R                                      ~100    !3, 4
        141        FETCH_DIM_R                                      ~101    ~100, !6
        142        ASSIGN                                           ~102    !1, ~101
        143      > JMPZ                                                     ~102, ->153
   91   144    >   FETCH_DIM_R                                      ~103    !3, 1
        145        FETCH_DIM_R                                      ~104    ~103, !6
        146        CONCAT                                           ~105    !4, ~104
        147        FETCH_DIM_R                                      ~106    !3, 4
        148        FETCH_DIM_R                                      ~107    ~106, !6
        149        CONCAT                                           ~108    ~105, ~107
        150        ASSIGN                                           ~109    !2, ~108
        151      > RETURN                                                   ~109
   92   152*       JMP                                                      ->156
   50   153    >   PRE_INC                                                  !6
        154    >   IS_SMALLER_OR_EQUAL                                      !6, !5
        155      > JMPNZ                                                    ~111, ->64
   96   156    > > RETURN                                                   null

End of function ap_altera_url_idioma

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
169.88 ms | 1415 KiB | 19 Q