3v4l.org

run code in 300+ PHP versions simultaneously
<?php $str ="<optgroup label='Billing Summary Reports' style='color:blue;font-weight:bold;'> <option style='color:black; font-weight:normal' value='JobTracking'>Job Tracking</option> <option style='color:black; font-weight:normal' value='CustomerRouting' selected>Customer Routing Report</option> <option style='color:black; font-weight:normal' value='BillingStatistics'>Billing Statistics</option> <option style='color:black; font-weight:normal' value='BranchReport'>Branch Report</option> <option style='color:black; font-weight:normal' value='BranchBilling'>Branch Billing Report</option> <option style='color:black; font-weight:normal' value='BillingActivityDetail'>Billing Activity Details</option> </optgroup> <optgroup label='e-Adoption Reports' style='color:blue;font-weight:bold;'> <option style='color:black; font-weight:normal' value='eAdoptionDashboard'>e-Adoption Dashboard</option> <option style='color:black; font-weight:normal' value='eAdoptionReport'>e-Adoption Chart</option> <option style='color:black; font-weight:normal' value='TopBillingCusts'>Top Paper Customers</option> <option style='color:black; font-weight:normal' value='TopBillingCustsAcctNum'>Top Paper Custs by Acct Num</option> <option style='color:black; font-weight:normal' value='BranchEBillReport'>Branch Electronic Report</option> <option style='color:black; font-weight:normal' value='EasyImportUsage'>EasyImport Usage</option> </optgroup> <optgroup label='eBilling and ePayment' style='color:blue;font-weight:bold;'> <option style='color:black; font-weight:normal' value='OnlinePayments'>Online Payments</option> <option style='color:black; font-weight:normal' value='PaymentFile'>Payment File Report</option> <option style='color:black; font-weight:normal' value='ACHTransfers'>ACH Transfers</option> <option style='color:black; font-weight:normal' value='IGUsage'>Invoice Gateway Usage Report</option> <option style='color:black; font-weight:normal' value='ObpAccountAudit'>Online Account Audit Report</option> <option style='color:black; font-weight:normal' value='EUsageReport'>Invoice Central Usage Report</option> <option style='color:black; font-weight:normal' value='IGUsers'>Online User Report</option> <option style='color:black; font-weight:normal' value='eDSOReport'>eDSO By Month</option> <option style='color:black; font-weight:normal' value='AutoPay'>Auto Pay Report</option> </optgroup> <optgroup label='Bullpen Reports' style='color:blue;font-weight:bold;'> <option style='color:black; font-weight:normal' value='BPInvoices'>Bullpenned Invoices</option> <option style='color:black; font-weight:normal' value='BPStatistics'>Bullpen Statistics</option> </optgroup> <optgroup label='Address Reports' style='color:blue;font-weight:bold;'> <option style='color:black; font-weight:normal' value='UncertifiedAddresses'>Uncertified Addresses</option> <option style='color:black; font-weight:normal' value='NCOAAddressesReport'>NCOA Addresses</option> </optgroup> <optgroup label='Miscellaneous' style='color:blue;font-weight:bold;'> <option style='color:black; font-weight:normal' value='InvoiceExtract'>Invoice Extract</option> <option style='color:black; font-weight:normal' value='FaxFailures'>Fax Failures</option> <option style='color:black; font-weight:normal' value='EmailFailures'>Transmittal Failures</option>"; $doc = new DOMDocument(); $doc->loadHTML($str); $headings = $doc->getElementsByTagName('optgroup'); $books = $doc->getElementsByTagName('option'); foreach($headings as $heading) { echo $heading->getAttribute('label'), PHP_EOL; if($headings->hasChildNodes()) { $books = $headings->getElementsByTagName('option'); foreach ($books as $book) { echo $book->nodeValue, PHP_EOL; } } } echo "\n\n\n"; /*foreach ($books as $book) { echo $book->nodeValue, PHP_EOL; }*/
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 16, Position 2 = 37
Branch analysis from position: 16
2 jumps found. (Code = 78) Position 1 = 17, Position 2 = 37
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 36
Branch analysis from position: 25
2 jumps found. (Code = 77) Position 1 = 30, Position 2 = 35
Branch analysis from position: 30
2 jumps found. (Code = 78) Position 1 = 31, Position 2 = 35
Branch analysis from position: 31
1 jumps found. (Code = 42) Position 1 = 30
Branch analysis from position: 30
Branch analysis from position: 35
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
Branch analysis from position: 35
Branch analysis from position: 36
Branch analysis from position: 37
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 37
filename:       /in/G32Qk
function name:  (null)
number of ops:  40
compiled vars:  !0 = $str, !1 = $doc, !2 = $headings, !3 = $books, !4 = $heading, !5 = $book
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '%3Coptgroup+label%3D%27Billing+Summary+Reports%27+style%3D%27color%3Ablue%3Bfont-weight%3Abold%3B%27%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27JobTracking%27%3EJob+Tracking%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27CustomerRouting%27+selected%3ECustomer+Routing+Report%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27BillingStatistics%27%3EBilling+Statistics%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27BranchReport%27%3EBranch+Report%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27BranchBilling%27%3EBranch+Billing+Report%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27BillingActivityDetail%27%3EBilling+Activity+Details%3C%2Foption%3E%0A%3C%2Foptgroup%3E%0A%3Coptgroup+label%3D%27e-Adoption+Reports%27+style%3D%27color%3Ablue%3Bfont-weight%3Abold%3B%27%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27eAdoptionDashboard%27%3Ee-Adoption+Dashboard%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27eAdoptionReport%27%3Ee-Adoption+Chart%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27TopBillingCusts%27%3ETop+Paper+Customers%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27TopBillingCustsAcctNum%27%3ETop+Paper+Custs+by+Acct+Num%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27BranchEBillReport%27%3EBranch+Electronic+Report%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27EasyImportUsage%27%3EEasyImport+Usage%3C%2Foption%3E%0A%3C%2Foptgroup%3E%0A%3Coptgroup+label%3D%27eBilling+and+ePayment%27+style%3D%27color%3Ablue%3Bfont-weight%3Abold%3B%27%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27OnlinePayments%27%3EOnline+Payments%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27PaymentFile%27%3EPayment+File+Report%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27ACHTransfers%27%3EACH+Transfers%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27IGUsage%27%3EInvoice+Gateway+Usage+Report%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27ObpAccountAudit%27%3EOnline+Account+Audit+Report%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27EUsageReport%27%3EInvoice+Central+Usage+Report%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27IGUsers%27%3EOnline+User+Report%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27eDSOReport%27%3EeDSO+By+Month%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27AutoPay%27%3EAuto+Pay+Report%3C%2Foption%3E%0A%3C%2Foptgroup%3E%0A%3Coptgroup+label%3D%27Bullpen+Reports%27+style%3D%27color%3Ablue%3Bfont-weight%3Abold%3B%27%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27BPInvoices%27%3EBullpenned+Invoices%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27BPStatistics%27%3EBullpen+Statistics%3C%2Foption%3E%0A%3C%2Foptgroup%3E%0A%3Coptgroup+label%3D%27Address+Reports%27+style%3D%27color%3Ablue%3Bfont-weight%3Abold%3B%27%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27UncertifiedAddresses%27%3EUncertified+Addresses%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27NCOAAddressesReport%27%3ENCOA+Addresses%3C%2Foption%3E%0A%3C%2Foptgroup%3E%0A%3Coptgroup+label%3D%27Miscellaneous%27+style%3D%27color%3Ablue%3Bfont-weight%3Abold%3B%27%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27InvoiceExtract%27%3EInvoice+Extract%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27FaxFailures%27%3EFax+Failures%3C%2Foption%3E%0A++++%3Coption+style%3D%27color%3Ablack%3B+font-weight%3Anormal%27+value%3D%27EmailFailures%27%3ETransmittal+Failures%3C%2Foption%3E'
   45     1        NEW                                              $7      'DOMDocument'
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !1, $7
   46     4        INIT_METHOD_CALL                                         !1, 'loadHTML'
          5        SEND_VAR_EX                                              !0
          6        DO_FCALL                                      0          
   47     7        INIT_METHOD_CALL                                         !1, 'getElementsByTagName'
          8        SEND_VAL_EX                                              'optgroup'
          9        DO_FCALL                                      0  $11     
         10        ASSIGN                                                   !2, $11
   48    11        INIT_METHOD_CALL                                         !1, 'getElementsByTagName'
         12        SEND_VAL_EX                                              'option'
         13        DO_FCALL                                      0  $13     
         14        ASSIGN                                                   !3, $13
   49    15      > FE_RESET_R                                       $15     !2, ->37
         16    > > FE_FETCH_R                                               $15, !4, ->37
   50    17    >   INIT_METHOD_CALL                                         !4, 'getAttribute'
         18        SEND_VAL_EX                                              'label'
         19        DO_FCALL                                      0  $16     
         20        ECHO                                                     $16
         21        ECHO                                                     '%0A'
   51    22        INIT_METHOD_CALL                                         !2, 'hasChildNodes'
         23        DO_FCALL                                      0  $17     
         24      > JMPZ                                                     $17, ->36
   52    25    >   INIT_METHOD_CALL                                         !2, 'getElementsByTagName'
         26        SEND_VAL_EX                                              'option'
         27        DO_FCALL                                      0  $18     
         28        ASSIGN                                                   !3, $18
   53    29      > FE_RESET_R                                       $20     !3, ->35
         30    > > FE_FETCH_R                                               $20, !5, ->35
   54    31    >   FETCH_OBJ_R                                      ~21     !5, 'nodeValue'
         32        ECHO                                                     ~21
         33        ECHO                                                     '%0A'
   53    34      > JMP                                                      ->30
         35    >   FE_FREE                                                  $20
   49    36    > > JMP                                                      ->16
         37    >   FE_FREE                                                  $15
   58    38        ECHO                                                     '%0A%0A%0A'
   61    39      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
160.45 ms | 1403 KiB | 13 Q