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+1]; $posicao = strpos( $url_input , $diretorio ); if ( $posicao == true ){ if ($acao_input = $elemento[3][$n]){ return $url_output = $url_raiz . $elemento[1][$n+1] . $elemento[3][$n+1]; break; }; if ($acao_input = $elemento[4][$n]){ return $url_output = $url_raiz . $elemento[1][$n+1] . $elemento[4][$n+1]; 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/8X7ID
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
-------------------------------------------------------------------------------------
  108     0  E >   ASSIGN                                                   !0, ''
  115     1        ASSIGN                                                   !1, 'codaink.com%2Fwordpress%2Fmy-listings'
  116     2        ASSIGN                                                   !2, 'remove'
  117     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
  118     9        ASSIGN                                                   !1, 'codaink.com%2Fwordpress%2Fmy-listings'
  119    10        ASSIGN                                                   !2, 'edit'
  120    11        ECHO                                                     '++++%0A++++'
  121    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
  122    18      > RETURN                                                   1

Function ap_altera_url_idioma:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 159
Branch analysis from position: 159
2 jumps found. (Code = 44) Position 1 = 161, Position 2 = 64
Branch analysis from position: 161
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 = 128, Position 2 = 158
Branch analysis from position: 128
2 jumps found. (Code = 43) Position 1 = 132, Position 2 = 143
Branch analysis from position: 132
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 143
2 jumps found. (Code = 43) Position 1 = 147, Position 2 = 158
Branch analysis from position: 147
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 158
2 jumps found. (Code = 44) Position 1 = 161, Position 2 = 64
Branch analysis from position: 161
Branch analysis from position: 64
Branch analysis from position: 158
Branch analysis from position: 117
Branch analysis from position: 76
Branch analysis from position: 87
filename:       /in/8X7ID
function name:  ap_altera_url_idioma
number of ops:  162
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>
   54    62        ASSIGN                                                   !6, 1
         63      > JMP                                                      ->159
   58    64    >   ASSIGN                                           ~53     !6, 1
         65      > JMPZ                                                     ~53, ->87
   59    66    >   FETCH_DIM_R                                      ~54     !3, 3
         67        FETCH_DIM_R                                      ~55     ~54, 1
         68        IS_NOT_EQUAL                                             !1, ~55
         69      > JMPZ                                                     ~56, ->76
   60    70    >   FETCH_DIM_R                                      ~57     !3, 4
         71        FETCH_DIM_R                                      ~58     ~57, 1
         72        IS_NOT_EQUAL                                             !1, ~58
         73      > JMPZ                                                     ~59, ->76
   61    74    > > RETURN                                                   'ERROR+01+%3D+Parametro+errado+passado+para+a+fun%C3%A7%C3%A3o+AP_ALTERA_URL%2C+informar+apenas+edit+ou+remove'
   62    75*       JMP                                                      ->161
   65    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
   66    83        IS_NOT_EQUAL                                             !9, !4
         84      > JMPZ                                                     ~63, ->87
   67    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'
   68    86*       JMP                                                      ->161
   75    87    >   FETCH_DIM_R                                      ~64     !3, 2
         88        FETCH_DIM_R                                      ~65     ~64, !6
         89        ASSIGN                                                   !10, ~65
   76    90        INIT_FCALL                                               'strpos'
         91        SEND_VAR                                                 !0
         92        SEND_VAR                                                 !10
         93        DO_ICALL                                         $67     
         94        ASSIGN                                                   !8, $67
   77    95        BOOL                                             ~69     !8
         96      > JMPZ                                                     ~69, ->117
   78    97    >   FETCH_DIM_R                                      ~70     !3, 3
         98        FETCH_DIM_R                                      ~71     ~70, !6
         99        ASSIGN                                           ~72     !1, ~71
        100      > JMPZ                                                     ~72, ->107
   79   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
   80   106*       JMP                                                      ->161
   82   107    >   FETCH_DIM_R                                      ~77     !3, 4
        108        FETCH_DIM_R                                      ~78     ~77, !6
        109        ASSIGN                                           ~79     !1, ~78
        110      > JMPZ                                                     ~79, ->117
   83   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
   84   116*       JMP                                                      ->161
   87   117    >   ADD                                              ~85     !6, 1
        118        FETCH_DIM_R                                      ~84     !3, 2
        119        FETCH_DIM_R                                      ~86     ~84, ~85
        120        ASSIGN                                                   !10, ~86
   88   121        INIT_FCALL                                               'strpos'
        122        SEND_VAR                                                 !0
        123        SEND_VAR                                                 !10
        124        DO_ICALL                                         $88     
        125        ASSIGN                                                   !8, $88
   89   126        BOOL                                             ~90     !8
        127      > JMPZ                                                     ~90, ->158
   90   128    >   FETCH_DIM_R                                      ~91     !3, 3
        129        FETCH_DIM_R                                      ~92     ~91, !6
        130        ASSIGN                                           ~93     !1, ~92
        131      > JMPZ                                                     ~93, ->143
   91   132    >   ADD                                              ~95     !6, 1
        133        FETCH_DIM_R                                      ~94     !3, 1
        134        FETCH_DIM_R                                      ~96     ~94, ~95
        135        CONCAT                                           ~97     !4, ~96
        136        ADD                                              ~99     !6, 1
        137        FETCH_DIM_R                                      ~98     !3, 3
        138        FETCH_DIM_R                                      ~100    ~98, ~99
        139        CONCAT                                           ~101    ~97, ~100
        140        ASSIGN                                           ~102    !2, ~101
        141      > RETURN                                                   ~102
   92   142*       JMP                                                      ->161
   94   143    >   FETCH_DIM_R                                      ~103    !3, 4
        144        FETCH_DIM_R                                      ~104    ~103, !6
        145        ASSIGN                                           ~105    !1, ~104
        146      > JMPZ                                                     ~105, ->158
   95   147    >   ADD                                              ~107    !6, 1
        148        FETCH_DIM_R                                      ~106    !3, 1
        149        FETCH_DIM_R                                      ~108    ~106, ~107
        150        CONCAT                                           ~109    !4, ~108
        151        ADD                                              ~111    !6, 1
        152        FETCH_DIM_R                                      ~110    !3, 4
        153        FETCH_DIM_R                                      ~112    ~110, ~111
        154        CONCAT                                           ~113    ~109, ~112
        155        ASSIGN                                           ~114    !2, ~113
        156      > RETURN                                                   ~114
   96   157*       JMP                                                      ->161
   54   158    >   PRE_INC                                                  !6
        159    >   IS_SMALLER_OR_EQUAL                                      !6, !5
        160      > JMPNZ                                                    ~116, ->64
  100   161    > > RETURN                                                   null

End of function ap_altera_url_idioma

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
190.74 ms | 1415 KiB | 19 Q