3v4l.org

run code in 500+ PHP versions simultaneously
<?php function parsePrintR(string $printRString): array { $printRString = trim($printRString); // Remove o texto inicial 'Array' e o parêntese de abertura if (stripos($printRString, 'Array') === 0) { $printRString = substr($printRString, strpos($printRString, '(') + 1); // Remove o último parêntese de fechamento correspondente $printRString = substr($printRString, 0, strrpos($printRString, ')')); } $result = []; $len = strlen($printRString); $i = 0; while ($i < $len) { // Ignora espaços e quebras de linha while ($i < $len && (ctype_space($printRString[$i]) || $printRString[$i] === "\n")) { $i++; } if ($i >= $len) break; // Busca chave entre colchetes if ($printRString[$i] === '[') { $i++; $key = ''; while ($i < $len && $printRString[$i] !== ']') { $key .= $printRString[$i++]; } $i++; // pula o ']' // pula espaços while ($i < $len && ctype_space($printRString[$i])) $i++; // espera '=>' if (substr($printRString, $i, 2) === '=>') { $i += 2; while ($i < $len && ctype_space($printRString[$i])) $i++; // Verifica se é um array if (stripos(substr($printRString, $i, 5), 'Array') === 0) { $i += 5; while ($i < $len && ctype_space($printRString[$i])) $i++; if ($printRString[$i] === '(') { $i++; $start = $i; $depth = 1; while ($i < $len && $depth > 0) { if ($printRString[$i] === '(') $depth++; if ($printRString[$i] === ')') $depth--; $i++; } $subArrayStr = substr($printRString, $start, $i - $start - 1); $result[$key] = parsePrintR('Array(' . $subArrayStr . ')'); } } else { // Valor simples $value = ''; // Lê até o fim da linha ou até encontrar um novo [key] while ($i < $len && $printRString[$i] !== "\n") { $value .= $printRString[$i++]; } $result[$key] = trim($value); } } } else { // ignora linhas que não começam com chave while ($i < $len && $printRString[$i] !== "\n") $i++; $i++; } } return $result; } $input = "Erro ao enviar o ipn: \nParams: Array\n(\n [0] => Array\n (\n [order] => abcde\n [payment_method] => C\n [payment_status] => A\n [xppmaster] => 123\n [hmac] => qwee123\n [payment_email] => 0\n [amount_paid] => 152.34\n [authorization_code] => 1234\n [apply_discount_into_checkout] => 0\n [only_update_order] => 1\n [cc_auth] => 2\n )\n\n [1] => Array\n (\n [id] => 213215421521\n [por_hora] => 2025-08-25 22:42:28\n [x_reference] => abcde\n [merchants_id] => 571\n [checkout_id] => 312341214\n [payment_method] => C\n [payment_status] => W\n [authorization_code] => 1234\n [utf8] => \n [authenticity_token] => \n [x_account_id] => avwdegfeeg\n [x_amount] => 152.34\n [x_pag_fee_applied] => 0\n [x_currency] => BRL\n [x_discount_type] => \n [x_discount] => \n [x_subtotal_discount] => \n [x_url_callback] => url.site.com\n [x_url_complete] => url.site.com\n [x_checkout_token] => aveofwjifw\n [x_order_id_shopify] => 1234\n [x_is_recurring] => 0\n [x_original_order] => \n [x_recurring_created_at] => \n [x_recurring_integrated_at] => \n [x_shop_country] => BR\n [x_shop_name] => \n [x_transaction_type] => \n [x_test] => false\n [x_customer_first_name] => João\n [x_customer_last_name] => doe\n [x_customer_email] => mail@mail.com\n [x_customer_phone] => 123421325421\n [x_customer_billing_country] => BR\n [x_customer_billing_first_name] => João\n [x_customer_billing_last_name] => doe\n [x_customer_billing_city] => Belo Horizonte\n [x_customer_billing_company] => 02991215690\n [x_customer_billing_address1] => Av. dadwwd, WJ1964\n [x_customer_billing_address2] => 7° andar, WJFuncionários\n [x_customer_billing_state] => Minas Gerais\n [x_customer_billing_zip] => 11111-3333\n [x_customer_billing_phone] => 123421325421\n [x_customer_shipping_country] => BR\n [x_customer_shipping_first_name] => João\n [x_customer_shipping_last_name] => doe\n [x_customer_shipping_city] => Belo Horizonte\n [x_customer_shipping_company] => 32321442141\n [x_customer_shipping_address1] => Av. dadwwd, WJ1964\n [x_customer_shipping_address2] => 7° andar, WJFuncionários\n [x_customer_shipping_state] => Minas Gerais\n [x_customer_shipping_zip] => 123213123-33333\n [x_customer_shipping_phone] => 123421325421\n [x_invoice] => \n [x_amount_shipping] => \n [x_amount_tax] => \n [x_description] => Products\n [x_url_cancel] => \n [x_signature] => \n [x_timestamp] => \n [x_fallback_payment] => \n [locale] => \n [commit] => \n [info_discounts_applied_into_checkout] => \n [pix_expiration_date] => \n [pix_expiration_time] => \n [pix_code] => \n [pix_image] => \n [boleto_url] => \n [boleto_expiration_date] => \n [nsu] => 1234\n [tid] => 8adwadwawafwafwaf\n [processed_by_google_pay] => 0\n [note_attribute_updated] => 0\n [processed_by_apple_pay] => 0\n [conciliate_at] => \n [payment_status_verified_at] => \n [pix_rec_id] => \n [x_merchantid] => 123\n [pix_order_pending] => 0\n [pix_thank_you_page] => 0\n )\n\n [2] => Array\n (\n [x_account_id] => avwdegfeeg\n [x_amount] => 152.34\n [x_currency] => BRL\n [x_gateway_reference] => ba123452025-08-26T01:46:08Z157230\n [x_message] => Payment Method: Cartão de crédito\n [x_reference] => abcde\n [x_result] => completed\n [x_test] => false\n [x_timestamp] => 2025-08-26T01:46:08Z\n [x_signature] => abvfefsfesf\n )\n\n)\n\nError: Error in sendIpnToShopify: Error in resolvePaymentStatusToPending: Error ao fazer a mutation de paymentSessionPending: \nArray\n(\n [0] => Array\n (\n [field] => Array\n (\n [0] => id\n )\n\n [message] => Payment session has already been resolved\/rejected, has already been pended with a different reason, or the response to start_payment_session request has not been received.\n )\n\n)\n"; $string = $input; // 1. Isolar os blocos de "Array(...)" da sua string de log preg_match_all('/Array\s*\((.|\n)*?\)\s*\n/s', $string, $arrayBlocks); //print_r($arrayBlocks); $jsonResults = []; foreach ($arrayBlocks[0] as $i => $block) { // echo "Começando index $i " . PHP_EOL; // echo PHP_EOL; // print_r($block); // echo PHP_EOL; // 2. Para cada bloco encontrado, converte para array $phpArray = parsePrintR($block); // 3. Adiciona ao resultado $jsonResults[] = $phpArray; } // 4. Converte o resultado final para JSON formatado $finalJson = json_encode($jsonResults, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); print_r($finalJson);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 10, Position 2 = 19
Branch analysis from position: 10
2 jumps found. (Code = 78) Position 1 = 11, Position 2 = 19
Branch analysis from position: 11
1 jumps found. (Code = 42) Position 1 = 10
Branch analysis from position: 10
Branch analysis from position: 19
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 19
filename:       /in/fnVAD
function name:  (null)
number of ops:  29
compiled vars:  !0 = $input, !1 = $string, !2 = $arrayBlocks, !3 = $jsonResults, !4 = $block, !5 = $i, !6 = $phpArray, !7 = $finalJson
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   71     0  E >   ASSIGN                                                       !0, 'Erro+ao+enviar+o+ipn%3A+%0AParams%3A+Array%0A%28%0A++++%5B0%5D+%3D%3E+Array%0A++++++++%28%0A++++++++++++%5Border%5D+%3D%3E+abcde%0A++++++++++++%5Bpayment_method%5D+%3D%3E+C%0A++++++++++++%5Bpayment_status%5D+%3D%3E+A%0A++++++++++++%5Bxppmaster%5D+%3D%3E+123%0A++++++++++++%5Bhmac%5D+%3D%3E+qwee123%0A++++++++++++%5Bpayment_email%5D+%3D%3E+0%0A++++++++++++%5Bamount_paid%5D+%3D%3E+152.34%0A++++++++++++%5Bauthorization_code%5D+%3D%3E+1234%0A++++++++++++%5Bapply_discount_into_checkout%5D+%3D%3E+0%0A++++++++++++%5Bonly_update_order%5D+%3D%3E+1%0A++++++++++++%5Bcc_auth%5D+%3D%3E+2%0A++++++++%29%0A%0A++++%5B1%5D+%3D%3E+Array%0A++++++++%28%0A++++++++++++%5Bid%5D+%3D%3E+213215421521%0A++++++++++++%5Bpor_hora%5D+%3D%3E+2025-08-25+22%3A42%3A28%0A++++++++++++%5Bx_reference%5D+%3D%3E+abcde%0A++++++++++++%5Bmerchants_id%5D+%3D%3E+571%0A++++++++++++%5Bcheckout_id%5D+%3D%3E+312341214%0A++++++++++++%5Bpayment_method%5D+%3D%3E+C%0A++++++++++++%5Bpayment_status%5D+%3D%3E+W%0A++++++++++++%5Bauthorization_code%5D+%3D%3E+1234%0A++++++++++++%5Butf8%5D+%3D%3E+%0A++++++++++++%5Bauthenticity_token%5D+%3D%3E+%0A++++++++++++%5Bx_account_id%5D+%3D%3E+avwdegfeeg%0A++++++++++++%5Bx_amount%5D+%3D%3E+152.34%0A++++++++++++%5Bx_pag_fee_applied%5D+%3D%3E+0%0A++++++++++++%5Bx_currency%5D+%3D%3E+BRL%0A++++++++++++%5Bx_discount_type%5D+%3D%3E+%0A++++++++++++%5Bx_discount%5D+%3D%3E+%0A++++++++++++%5Bx_subtotal_discount%5D+%3D%3E+%0A++++++++++++%5Bx_url_callback%5D+%3D%3E+url.site.com%0A++++++++++++%5Bx_url_complete%5D+%3D%3E+url.site.com%0A++++++++++++%5Bx_checkout_token%5D+%3D%3E+aveofwjifw%0A++++++++++++%5Bx_order_id_shopify%5D+%3D%3E+1234%0A++++++++++++%5Bx_is_recurring%5D+%3D%3E+0%0A++++++++++++%5Bx_original_order%5D+%3D%3E+%0A++++++++++++%5Bx_recurring_created_at%5D+%3D%3E+%0A++++++++++++%5Bx_recurring_integrated_at%5D+%3D%3E+%0A++++++++++++%5Bx_shop_country%5D+%3D%3E+BR%0A++++++++++++%5Bx_shop_name%5D+%3D%3E+%0A++++++++++++%5Bx_transaction_type%5D+%3D%3E+%0A++++++++++++%5Bx_test%5D+%3D%3E+false%0A++++++++++++%5Bx_customer_first_name%5D+%3D%3E+Jo%C3%A3o%0A++++++++++++%5Bx_customer_last_name%5D+%3D%3E+doe%0A++++++++++++%5Bx_customer_email%5D+%3D%3E+mail%40mail.com%0A++++++++++++%5Bx_customer_phone%5D+%3D%3E+123421325421%0A++++++++++++%5Bx_customer_billing_country%5D+%3D%3E+BR%0A++++++++++++%5Bx_customer_billing_first_name%5D+%3D%3E+Jo%C3%A3o%0A++++++++++++%5Bx_customer_billing_last_name%5D+%3D%3E+doe%0A++++++++++++%5Bx_customer_billing_city%5D+%3D%3E+Belo+Horizonte%0A++++++++++++%5Bx_customer_billing_company%5D+%3D%3E+02991215690%0A++++++++++++%5Bx_customer_billing_address1%5D+%3D%3E+Av.+dadwwd%2C+WJ1964%0A++++++++++++%5Bx_customer_billing_address2%5D+%3D%3E+7%C2%B0+andar%2C+WJFuncion%C3%A1rios%0A++++++++++++%5Bx_customer_billing_state%5D+%3D%3E+Minas+Gerais%0A++++++++++++%5Bx_customer_billing_zip%5D+%3D%3E+11111-3333%0A++++++++++++%5Bx_customer_billing_phone%5D+%3D%3E+123421325421%0A++++++++++++%5Bx_customer_shipping_country%5D+%3D%3E+BR%0A++++++++++++%5Bx_customer_shipping_first_name%5D+%3D%3E+Jo%C3%A3o%0A++++++++++++%5Bx_customer_shipping_last_name%5D+%3D%3E+doe%0A++++++++++++%5Bx_customer_shipping_city%5D+%3D%3E+Belo+Horizonte%0A++++++++++++%5Bx_customer_shipping_company%5D+%3D%3E+32321442141%0A++++++++++++%5Bx_customer_shipping_address1%5D+%3D%3E+Av.+dadwwd%2C+WJ1964%0A++++++++++++%5Bx_customer_shipping_address2%5D+%3D%3E+7%C2%B0+andar%2C+WJFuncion%C3%A1rios%0A++++++++++++%5Bx_customer_shipping_state%5D+%3D%3E+Minas+Gerais%0A++++++++++++%5Bx_customer_shipping_zip%5D+%3D%3E+123213123-33333%0A++++++++++++%5Bx_customer_shipping_phone%5D+%3D%3E+123421325421%0A++++++++++++%5Bx_invoice%5D+%3D%3E+%0A++++++++++++%5Bx_amount_shipping%5D+%3D%3E+%0A++++++++++++%5Bx_amount_tax%5D+%3D%3E+%0A++++++++++++%5Bx_description%5D+%3D%3E+Products%0A++++++++++++%5Bx_url_cancel%5D+%3D%3E+%0A++++++++++++%5Bx_signature%5D+%3D%3E+%0A++++++++++++%5Bx_timestamp%5D+%3D%3E+%0A++++++++++++%5Bx_fallback_payment%5D+%3D%3E+%0A++++++++++++%5Blocale%5D+%3D%3E+%0A++++++++++++%5Bcommit%5D+%3D%3E+%0A++++++++++++%5Binfo_discounts_applied_into_checkout%5D+%3D%3E+%0A++++++++++++%5Bpix_expiration_date%5D+%3D%3E+%0A++++++++++++%5Bpix_expiration_time%5D+%3D%3E+%0A++++++++++++%5Bpix_code%5D+%3D%3E+%0A++++++++++++%5Bpix_image%5D+%3D%3E+%0A++++++++++++%5Bboleto_url%5D+%3D%3E+%0A++++++++++++%5Bboleto_expiration_date%5D+%3D%3E+%0A++++++++++++%5Bnsu%5D+%3D%3E+1234%0A++++++++++++%5Btid%5D+%3D%3E+8adwadwawafwafwaf%0A++++++++++++%5Bprocessed_by_google_pay%5D+%3D%3E+0%0A++++++++++++%5Bnote_attribute_updated%5D+%3D%3E+0%0A++++++++++++%5Bprocessed_by_apple_pay%5D+%3D%3E+0%0A++++++++++++%5Bconciliate_at%5D+%3D%3E+%0A++++++++++++%5Bpayment_status_verified_at%5D+%3D%3E+%0A++++++++++++%5Bpix_rec_id%5D+%3D%3E+%0A++++++++++++%5Bx_merchantid%5D+%3D%3E+123%0A++++++++++++%5Bpix_order_pending%5D+%3D%3E+0%0A++++++++++++%5Bpix_thank_you_page%5D+%3D%3E+0%0A++++++++%29%0A%0A++++%5B2%5D+%3D%3E+Array%0A++++++++%28%0A++++++++++++%5Bx_account_id%5D+%3D%3E+avwdegfeeg%0A++++++++++++%5Bx_amount%5D+%3D%3E+152.34%0A++++++++++++%5Bx_currency%5D+%3D%3E+BRL%0A++++++++++++%5Bx_gateway_reference%5D+%3D%3E+ba123452025-08-26T01%3A46%3A08Z157230%0A++++++++++++%5Bx_message%5D+%3D%3E+Payment+Method%3A+Cart%C3%A3o+de+cr%C3%A9dito%0A++++++++++++%5Bx_reference%5D+%3D%3E+abcde%0A++++++++++++%5Bx_result%5D+%3D%3E+completed%0A++++++++++++%5Bx_test%5D+%3D%3E+false%0A++++++++++++%5Bx_timestamp%5D+%3D%3E+2025-08-26T01%3A46%3A08Z%0A++++++++++++%5Bx_signature%5D+%3D%3E+abvfefsfesf%0A++++++++%29%0A%0A%29%0A%0AError%3A+Error+in+sendIpnToShopify%3A+Error+in+resolvePaymentStatusToPending%3A+Error+ao+fazer+a+mutation+de+paymentSessionPending%3A+%0AArray%0A%28%0A++++%5B0%5D+%3D%3E+Array%0A++++++++%28%0A++++++++++++%5Bfield%5D+%3D%3E+Array%0A++++++++++++++++%28%0A++++++++++++++++++++%5B0%5D+%3D%3E+id%0A++++++++++++++++%29%0A%0A++++++++++++%5Bmessage%5D+%3D%3E+Payment+session+has+already+been+resolved%5C%2Frejected%2C+has+already+been+pended+with+a+different+reason%2C+or+the+response+to+start_payment_session+request+has+not+been+received.%0A++++++++%29%0A%0A%29%0A'
   73     1        ASSIGN                                                       !1, !0
   76     2        INIT_FCALL                                                   'preg_match_all'
          3        SEND_VAL                                                     '%2FArray%5Cs%2A%5C%28%28.%7C%5Cn%29%2A%3F%5C%29%5Cs%2A%5Cn%2Fs'
          4        SEND_VAR                                                     !1
          5        SEND_REF                                                     !2
          6        DO_ICALL                                                     
   80     7        ASSIGN                                                       !3, <array>
   81     8        FETCH_DIM_R                                          ~12     !2, 0
          9      > FE_RESET_R                                           $13     ~12, ->19
         10    > > FE_FETCH_R                                           ~14     $13, !4, ->19
         11    >   ASSIGN                                                       !5, ~14
   87    12        INIT_FCALL                                                   'parseprintr'
         13        SEND_VAR                                                     !4
         14        DO_FCALL                                          0  $16     
         15        ASSIGN                                                       !6, $16
   90    16        ASSIGN_DIM                                                   !3
         17        OP_DATA                                                      !6
   81    18      > JMP                                                          ->10
         19    >   FE_FREE                                                      $13
   94    20        INIT_FCALL                                                   'json_encode'
         21        SEND_VAR                                                     !3
         22        SEND_VAL                                                     448
         23        DO_ICALL                                             $19     
         24        ASSIGN                                                       !7, $19
   97    25        INIT_FCALL                                                   'print_r'
         26        SEND_VAR                                                     !7
         27        DO_ICALL                                                     
         28      > RETURN                                                       1

Function parseprintr:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 9, Position 2 = 20
Branch analysis from position: 9
1 jumps found. (Code = 42) Position 1 = 160
Branch analysis from position: 160
2 jumps found. (Code = 44) Position 1 = 162, Position 2 = 25
Branch analysis from position: 162
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 25
1 jumps found. (Code = 42) Position 1 = 27
Branch analysis from position: 27
2 jumps found. (Code = 46) Position 1 = 29, Position 2 = 38
Branch analysis from position: 29
2 jumps found. (Code = 47) Position 1 = 34, Position 2 = 37
Branch analysis from position: 34
2 jumps found. (Code = 44) Position 1 = 39, Position 2 = 26
Branch analysis from position: 39
2 jumps found. (Code = 43) Position 1 = 41, Position 2 = 42
Branch analysis from position: 41
1 jumps found. (Code = 42) Position 1 = 162
Branch analysis from position: 162
Branch analysis from position: 42
2 jumps found. (Code = 43) Position 1 = 45, Position 2 = 151
Branch analysis from position: 45
1 jumps found. (Code = 42) Position 1 = 51
Branch analysis from position: 51
2 jumps found. (Code = 46) Position 1 = 53, Position 2 = 56
Branch analysis from position: 53
2 jumps found. (Code = 44) Position 1 = 57, Position 2 = 48
Branch analysis from position: 57
1 jumps found. (Code = 42) Position 1 = 60
Branch analysis from position: 60
2 jumps found. (Code = 46) Position 1 = 62, Position 2 = 67
Branch analysis from position: 62
2 jumps found. (Code = 44) Position 1 = 68, Position 2 = 59
Branch analysis from position: 68
2 jumps found. (Code = 43) Position 1 = 72, Position 2 = 150
Branch analysis from position: 72
1 jumps found. (Code = 42) Position 1 = 75
Branch analysis from position: 75
2 jumps found. (Code = 46) Position 1 = 77, Position 2 = 82
Branch analysis from position: 77
2 jumps found. (Code = 44) Position 1 = 83, Position 2 = 74
Branch analysis from position: 83
2 jumps found. (Code = 43) Position 1 = 91, Position 2 = 136
Branch analysis from position: 91
1 jumps found. (Code = 42) Position 1 = 94
Branch analysis from position: 94
2 jumps found. (Code = 46) Position 1 = 96, Position 2 = 101
Branch analysis from position: 96
2 jumps found. (Code = 44) Position 1 = 102, Position 2 = 93
Branch analysis from position: 102
2 jumps found. (Code = 43) Position 1 = 105, Position 2 = 135
Branch analysis from position: 105
1 jumps found. (Code = 42) Position 1 = 118
Branch analysis from position: 118
2 jumps found. (Code = 46) Position 1 = 120, Position 2 = 122
Branch analysis from position: 120
2 jumps found. (Code = 44) Position 1 = 123, Position 2 = 109
Branch analysis from position: 123
1 jumps found. (Code = 42) Position 1 = 150
Branch analysis from position: 150
1 jumps found. (Code = 42) Position 1 = 160
Branch analysis from position: 160
Branch analysis from position: 109
2 jumps found. (Code = 43) Position 1 = 112, Position 2 = 113
Branch analysis from position: 112
2 jumps found. (Code = 43) Position 1 = 116, Position 2 = 117
Branch analysis from position: 116
2 jumps found. (Code = 46) Position 1 = 120, Position 2 = 122
Branch analysis from position: 120
Branch analysis from position: 122
Branch analysis from position: 117
Branch analysis from position: 113
Branch analysis from position: 122
Branch analysis from position: 135
Branch analysis from position: 93
2 jumps found. (Code = 46) Position 1 = 96, Position 2 = 101
Branch analysis from position: 96
Branch analysis from position: 101
Branch analysis from position: 101
Branch analysis from position: 136
1 jumps found. (Code = 42) Position 1 = 141
Branch analysis from position: 141
2 jumps found. (Code = 46) Position 1 = 143, Position 2 = 146
Branch analysis from position: 143
2 jumps found. (Code = 44) Position 1 = 147, Position 2 = 138
Branch analysis from position: 147
1 jumps found. (Code = 42) Position 1 = 160
Branch analysis from position: 160
Branch analysis from position: 138
2 jumps found. (Code = 46) Position 1 = 143, Position 2 = 146
Branch analysis from position: 143
Branch analysis from position: 146
Branch analysis from position: 146
Branch analysis from position: 74
2 jumps found. (Code = 46) Position 1 = 77, Position 2 = 82
Branch analysis from position: 77
Branch analysis from position: 82
Branch analysis from position: 82
Branch analysis from position: 150
Branch analysis from position: 59
2 jumps found. (Code = 46) Position 1 = 62, Position 2 = 67
Branch analysis from position: 62
Branch analysis from position: 67
Branch analysis from position: 67
Branch analysis from position: 48
2 jumps found. (Code = 46) Position 1 = 53, Position 2 = 56
Branch analysis from position: 53
Branch analysis from position: 56
Branch analysis from position: 56
Branch analysis from position: 151
1 jumps found. (Code = 42) Position 1 = 153
Branch analysis from position: 153
2 jumps found. (Code = 46) Position 1 = 155, Position 2 = 158
Branch analysis from position: 155
2 jumps found. (Code = 44) Position 1 = 159, Position 2 = 152
Branch analysis from position: 159
2 jumps found. (Code = 44) Position 1 = 162, Position 2 = 25
Branch analysis from position: 162
Branch analysis from position: 25
Branch analysis from position: 152
2 jumps found. (Code = 46) Position 1 = 155, Position 2 = 158
Branch analysis from position: 155
Branch analysis from position: 158
Branch analysis from position: 158
Branch analysis from position: 26
2 jumps found. (Code = 46) Position 1 = 29, Position 2 = 38
Branch analysis from position: 29
Branch analysis from position: 38
Branch analysis from position: 37
Branch analysis from position: 38
Branch analysis from position: 20
filename:       /in/fnVAD
function name:  parsePrintR
number of ops:  166
compiled vars:  !0 = $printRString, !1 = $result, !2 = $len, !3 = $i, !4 = $key, !5 = $start, !6 = $depth, !7 = $subArrayStr, !8 = $value
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   RECV                                                 !0      
    4     1        FRAMELESS_ICALL_1                trim                ~9      !0
          2        ASSIGN                                                       !0, ~9
    6     3        INIT_FCALL                                                   'stripos'
          4        SEND_VAR                                                     !0
          5        SEND_VAL                                                     'Array'
          6        DO_ICALL                                             $11     
          7        IS_IDENTICAL                                                 $11, 0
          8      > JMPZ                                                         ~12, ->20
    7     9    >   FRAMELESS_ICALL_2                strpos              ~13     !0, '%28'
         10        ADD                                                  ~14     ~13, 1
         11        FRAMELESS_ICALL_2                substr              ~15     !0, ~14
         12        ASSIGN                                                       !0, ~15
    9    13        INIT_FCALL                                                   'strrpos'
         14        SEND_VAR                                                     !0
         15        SEND_VAL                                                     '%29'
         16        DO_ICALL                                             $17     
         17        FRAMELESS_ICALL_3                substr              ~18     !0, 0
         18        OP_DATA                                                      $17
         19        ASSIGN                                                       !0, ~18
   12    20    >   ASSIGN                                                       !1, <array>
   13    21        STRLEN                                               ~21     !0
         22        ASSIGN                                                       !2, ~21
   14    23        ASSIGN                                                       !3, 0
   15    24      > JMP                                                          ->160
   17    25    > > JMP                                                          ->27
   18    26    >   PRE_INC                                                      !3
   17    27    >   IS_SMALLER                                           ~25     !3, !2
         28      > JMPZ_EX                                              ~25     ~25, ->38
         29    >   INIT_FCALL                                                   'ctype_space'
         30        FETCH_DIM_R                                          ~26     !0, !3
         31        SEND_VAL                                                     ~26
         32        DO_ICALL                                             $27     
         33      > JMPNZ_EX                                             ~28     $27, ->37
         34    >   FETCH_DIM_R                                          ~29     !0, !3
         35        IS_IDENTICAL                                         ~30     ~29, '%0A'
         36        BOOL                                                 ~28     ~30
         37    >   BOOL                                                 ~25     ~28
         38    > > JMPNZ                                                        ~25, ->26
   20    39    >   IS_SMALLER_OR_EQUAL                                          !2, !3
         40      > JMPZ                                                         ~31, ->42
         41    > > JMP                                                          ->162
   23    42    >   FETCH_DIM_R                                          ~32     !0, !3
         43        IS_IDENTICAL                                                 ~32, '%5B'
         44      > JMPZ                                                         ~33, ->151
   24    45    >   PRE_INC                                                      !3
   25    46        ASSIGN                                                       !4, ''
   26    47      > JMP                                                          ->51
   27    48    >   POST_INC                                             ~36     !3
         49        FETCH_DIM_R                                          ~37     !0, ~36
         50        ASSIGN_OP                                         8          !4, ~37
   26    51    >   IS_SMALLER                                           ~39     !3, !2
         52      > JMPZ_EX                                              ~39     ~39, ->56
         53    >   FETCH_DIM_R                                          ~40     !0, !3
         54        IS_NOT_IDENTICAL                                     ~41     ~40, '%5D'
         55        BOOL                                                 ~39     ~41
         56    > > JMPNZ                                                        ~39, ->48
   29    57    >   PRE_INC                                                      !3
   31    58      > JMP                                                          ->60
         59    >   PRE_INC                                                      !3
         60    >   IS_SMALLER                                           ~44     !3, !2
         61      > JMPZ_EX                                              ~44     ~44, ->67
         62    >   INIT_FCALL                                                   'ctype_space'
         63        FETCH_DIM_R                                          ~45     !0, !3
         64        SEND_VAL                                                     ~45
         65        DO_ICALL                                             $46     
         66        BOOL                                                 ~44     $46
         67    > > JMPNZ                                                        ~44, ->59
   33    68    >   FRAMELESS_ICALL_3                substr              ~47     !0, !3
         69        OP_DATA                                                      2
         70        IS_IDENTICAL                                                 ~47, '%3D%3E'
         71      > JMPZ                                                         ~48, ->150
   34    72    >   ASSIGN_OP                                         1          !3, 2
   35    73      > JMP                                                          ->75
         74    >   PRE_INC                                                      !3
         75    >   IS_SMALLER                                           ~51     !3, !2
         76      > JMPZ_EX                                              ~51     ~51, ->82
         77    >   INIT_FCALL                                                   'ctype_space'
         78        FETCH_DIM_R                                          ~52     !0, !3
         79        SEND_VAL                                                     ~52
         80        DO_ICALL                                             $53     
         81        BOOL                                                 ~51     $53
         82    > > JMPNZ                                                        ~51, ->74
   37    83    >   INIT_FCALL                                                   'stripos'
         84        FRAMELESS_ICALL_3                substr              ~54     !0, !3
         85        OP_DATA                                                      5
         86        SEND_VAL                                                     ~54
         87        SEND_VAL                                                     'Array'
         88        DO_ICALL                                             $55     
         89        IS_IDENTICAL                                                 $55, 0
         90      > JMPZ                                                         ~56, ->136
   38    91    >   ASSIGN_OP                                         1          !3, 5
   39    92      > JMP                                                          ->94
         93    >   PRE_INC                                                      !3
         94    >   IS_SMALLER                                           ~59     !3, !2
         95      > JMPZ_EX                                              ~59     ~59, ->101
         96    >   INIT_FCALL                                                   'ctype_space'
         97        FETCH_DIM_R                                          ~60     !0, !3
         98        SEND_VAL                                                     ~60
         99        DO_ICALL                                             $61     
        100        BOOL                                                 ~59     $61
        101    > > JMPNZ                                                        ~59, ->93
   40   102    >   FETCH_DIM_R                                          ~62     !0, !3
        103        IS_IDENTICAL                                                 ~62, '%28'
        104      > JMPZ                                                         ~63, ->135
   41   105    >   PRE_INC                                                      !3
   42   106        ASSIGN                                                       !5, !3
   43   107        ASSIGN                                                       !6, 1
   44   108      > JMP                                                          ->118
   45   109    >   FETCH_DIM_R                                          ~67     !0, !3
        110        IS_IDENTICAL                                                 ~67, '%28'
        111      > JMPZ                                                         ~68, ->113
        112    >   PRE_INC                                                      !6
   46   113    >   FETCH_DIM_R                                          ~70     !0, !3
        114        IS_IDENTICAL                                                 ~70, '%29'
        115      > JMPZ                                                         ~71, ->117
        116    >   PRE_DEC                                                      !6
   47   117    >   PRE_INC                                                      !3
   44   118    >   IS_SMALLER                                           ~74     !3, !2
        119      > JMPZ_EX                                              ~74     ~74, ->122
        120    >   IS_SMALLER                                           ~75     0, !6
        121        BOOL                                                 ~74     ~75
        122    > > JMPNZ                                                        ~74, ->109
   49   123    >   SUB                                                  ~76     !3, !5
        124        SUB                                                  ~77     ~76, 1
        125        FRAMELESS_ICALL_3                substr              ~78     !0, !5
        126        OP_DATA                                                      ~77
        127        ASSIGN                                                       !7, ~78
   50   128        INIT_FCALL_BY_NAME                                           'parsePrintR'
        129        CONCAT                                               ~81     'Array%28', !7
        130        CONCAT                                               ~82     ~81, '%29'
        131        SEND_VAL_EX                                                  ~82
        132        DO_FCALL                                          0  $83     
        133        ASSIGN_DIM                                                   !1, !4
        134        OP_DATA                                                      $83
   37   135    > > JMP                                                          ->150
   54   136    >   ASSIGN                                                       !8, ''
   56   137      > JMP                                                          ->141
   57   138    >   POST_INC                                             ~85     !3
        139        FETCH_DIM_R                                          ~86     !0, ~85
        140        ASSIGN_OP                                         8          !8, ~86
   56   141    >   IS_SMALLER                                           ~88     !3, !2
        142      > JMPZ_EX                                              ~88     ~88, ->146
        143    >   FETCH_DIM_R                                          ~89     !0, !3
        144        IS_NOT_IDENTICAL                                     ~90     ~89, '%0A'
        145        BOOL                                                 ~88     ~90
        146    > > JMPNZ                                                        ~88, ->138
   59   147    >   FRAMELESS_ICALL_1                trim                ~92     !8
        148        ASSIGN_DIM                                                   !1, !4
        149        OP_DATA                                                      ~92
   23   150    > > JMP                                                          ->160
   64   151    > > JMP                                                          ->153
        152    >   PRE_INC                                                      !3
        153    >   IS_SMALLER                                           ~94     !3, !2
        154      > JMPZ_EX                                              ~94     ~94, ->158
        155    >   FETCH_DIM_R                                          ~95     !0, !3
        156        IS_NOT_IDENTICAL                                     ~96     ~95, '%0A'
        157        BOOL                                                 ~94     ~96
        158    > > JMPNZ                                                        ~94, ->152
   65   159    >   PRE_INC                                                      !3
   15   160    >   IS_SMALLER                                                   !3, !2
        161      > JMPNZ                                                        ~98, ->25
   68   162    >   VERIFY_RETURN_TYPE                                           !1
        163      > RETURN                                                       !1
   69   164*       VERIFY_RETURN_TYPE                                           
        165*     > RETURN                                                       null

End of function parseprintr

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
174.53 ms | 1859 KiB | 20 Q