3v4l.org

run code in 300+ PHP versions simultaneously
<?php $pages = array( 'http://www.talaka.by/projects/page/1?status=&category=&promo=razam_minsk', 'http://www.talaka.by/projects/page/2?status=&category=&promo=razam_minsk', 'http://www.talaka.by/projects/page/3?status=&category=&promo=razam_minsk', ); $projects = array(); foreach($pages as $page) { $raw_data = file_get_contents("$page"); $m = array(); preg_match_all("/\/projects\/([\d]+)/i", $raw_data, $m); $projects = array_merge($projects, $m[1]); } $projects = array_unique($projects); //echo '<pre>'.print_r($projects,1); // die(); $result = array(); foreach($projects as $project) { $url = "http://www.talaka.by/projects/$project"; $raw_data = file_get_contents("$url"); /*$ch = curl_init("$url"); $result[$project] = array(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_VERBOSE, 2); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0"); curl_setopt($ch, CURLOPT_HTTPHEADER, array( "Expect:")); curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); $t = microtime(1); $raw_data = curl_exec($ch);*/ //echo '<pre>'.print_r($raw_data); $m = array(); preg_match_all('/\<title\>(.*)\<\/title\>/i', $raw_data, $m); //echo '<pre>'.print_r($m,1); $result[$project]['title'] = $m[1][0]; $result[$project]['title'] = str_replace(' | Talaka.by','',$result[$project]['title']); $m = array(); preg_match_all('/Config\.followers\=\[([^\[\]]+)\]/i', $raw_data, $m); //echo '<pre>'.print_r($m,1); $json = "[".$m[1][0]."]"; $arr = json_decode($json); //echo '<pre>'.print_r($arr,1); $result[$project]['count'] = count($arr); $m = array(); preg_match_all('/\<span class\=\"percents\"\>\<span\>([\d]+)\<\/span\>%\<\/span\>/i', $raw_data, $m); //echo '<pre>'.print_r($m,1); die(); $result[$project]['percent'] = $m[1][0]; } function comparef($a, $b) { return $a['count'] < $b['count'] ? 1 : -1; } uasort($result, 'comparef'); //echo '<pre>'.print_r($result,1); die(); foreach($result as $project => $val) { echo $val['count']."\t".$val['percent']."%\t".$val['title']." http://www.talaka.by/projects/$project <br>"; }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 22
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 22
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 22
2 jumps found. (Code = 77) Position 1 = 29, Position 2 = 90
Branch analysis from position: 29
2 jumps found. (Code = 78) Position 1 = 30, Position 2 = 90
Branch analysis from position: 30
1 jumps found. (Code = 42) Position 1 = 29
Branch analysis from position: 29
Branch analysis from position: 90
2 jumps found. (Code = 77) Position 1 = 96, Position 2 = 111
Branch analysis from position: 96
2 jumps found. (Code = 78) Position 1 = 97, Position 2 = 111
Branch analysis from position: 97
1 jumps found. (Code = 42) Position 1 = 96
Branch analysis from position: 96
Branch analysis from position: 111
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 111
Branch analysis from position: 90
Branch analysis from position: 22
filename:       /in/vVnNe
function name:  (null)
number of ops:  113
compiled vars:  !0 = $pages, !1 = $projects, !2 = $page, !3 = $raw_data, !4 = $m, !5 = $result, !6 = $project, !7 = $url, !8 = $json, !9 = $arr, !10 = $val
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, <array>
    8     1        ASSIGN                                                   !1, <array>
   10     2      > FE_RESET_R                                       $13     !0, ->22
          3    > > FE_FETCH_R                                               $13, !2, ->22
   13     4    >   INIT_FCALL                                               'file_get_contents'
          5        CAST                                          6  ~14     !2
          6        SEND_VAL                                                 ~14
          7        DO_ICALL                                         $15     
          8        ASSIGN                                                   !3, $15
   15     9        ASSIGN                                                   !4, <array>
   16    10        INIT_FCALL                                               'preg_match_all'
         11        SEND_VAL                                                 '%2F%5C%2Fprojects%5C%2F%28%5B%5Cd%5D%2B%29%2Fi'
         12        SEND_VAR                                                 !3
         13        SEND_REF                                                 !4
         14        DO_ICALL                                                 
   18    15        INIT_FCALL                                               'array_merge'
         16        SEND_VAR                                                 !1
         17        FETCH_DIM_R                                      ~19     !4, 1
         18        SEND_VAL                                                 ~19
         19        DO_ICALL                                         $20     
         20        ASSIGN                                                   !1, $20
   10    21      > JMP                                                      ->3
         22    >   FE_FREE                                                  $13
   23    23        INIT_FCALL                                               'array_unique'
         24        SEND_VAR                                                 !1
         25        DO_ICALL                                         $22     
         26        ASSIGN                                                   !1, $22
   27    27        ASSIGN                                                   !5, <array>
   29    28      > FE_RESET_R                                       $25     !1, ->90
         29    > > FE_FETCH_R                                               $25, !6, ->90
   31    30    >   NOP                                                      
         31        FAST_CONCAT                                      ~26     'http%3A%2F%2Fwww.talaka.by%2Fprojects%2F', !6
         32        ASSIGN                                                   !7, ~26
   32    33        INIT_FCALL                                               'file_get_contents'
         34        CAST                                          6  ~28     !7
         35        SEND_VAL                                                 ~28
         36        DO_ICALL                                         $29     
         37        ASSIGN                                                   !3, $29
   53    38        ASSIGN                                                   !4, <array>
   54    39        INIT_FCALL                                               'preg_match_all'
         40        SEND_VAL                                                 '%2F%5C%3Ctitle%5C%3E%28.%2A%29%5C%3C%5C%2Ftitle%5C%3E%2Fi'
         41        SEND_VAR                                                 !3
         42        SEND_REF                                                 !4
         43        DO_ICALL                                                 
   58    44        FETCH_DIM_R                                      ~35     !4, 1
         45        FETCH_DIM_R                                      ~36     ~35, 0
         46        FETCH_DIM_W                                      $33     !5, !6
         47        ASSIGN_DIM                                               $33, 'title'
         48        OP_DATA                                                  ~36
   59    49        INIT_FCALL                                               'str_replace'
         50        SEND_VAL                                                 '+%7C+Talaka.by'
         51        SEND_VAL                                                 ''
         52        FETCH_DIM_R                                      ~39     !5, !6
         53        FETCH_DIM_R                                      ~40     ~39, 'title'
         54        SEND_VAL                                                 ~40
         55        DO_ICALL                                         $41     
         56        FETCH_DIM_W                                      $37     !5, !6
         57        ASSIGN_DIM                                               $37, 'title'
         58        OP_DATA                                                  $41
   61    59        ASSIGN                                                   !4, <array>
   62    60        INIT_FCALL                                               'preg_match_all'
         61        SEND_VAL                                                 '%2FConfig%5C.followers%5C%3D%5C%5B%28%5B%5E%5C%5B%5C%5D%5D%2B%29%5C%5D%2Fi'
         62        SEND_VAR                                                 !3
         63        SEND_REF                                                 !4
         64        DO_ICALL                                                 
   66    65        FETCH_DIM_R                                      ~44     !4, 1
         66        FETCH_DIM_R                                      ~45     ~44, 0
         67        CONCAT                                           ~46     '%5B', ~45
         68        CONCAT                                           ~47     ~46, '%5D'
         69        ASSIGN                                                   !8, ~47
   67    70        INIT_FCALL                                               'json_decode'
         71        SEND_VAR                                                 !8
         72        DO_ICALL                                         $49     
         73        ASSIGN                                                   !9, $49
   71    74        COUNT                                            ~53     !9
         75        FETCH_DIM_W                                      $51     !5, !6
         76        ASSIGN_DIM                                               $51, 'count'
         77        OP_DATA                                                  ~53
   73    78        ASSIGN                                                   !4, <array>
   74    79        INIT_FCALL                                               'preg_match_all'
         80        SEND_VAL                                                 '%2F%5C%3Cspan+class%5C%3D%5C%22percents%5C%22%5C%3E%5C%3Cspan%5C%3E%28%5B%5Cd%5D%2B%29%5C%3C%5C%2Fspan%5C%3E%25%5C%3C%5C%2Fspan%5C%3E%2Fi'
         81        SEND_VAR                                                 !3
         82        SEND_REF                                                 !4
         83        DO_ICALL                                                 
   78    84        FETCH_DIM_R                                      ~58     !4, 1
         85        FETCH_DIM_R                                      ~59     ~58, 0
         86        FETCH_DIM_W                                      $56     !5, !6
         87        ASSIGN_DIM                                               $56, 'percent'
         88        OP_DATA                                                  ~59
   29    89      > JMP                                                      ->29
         90    >   FE_FREE                                                  $25
   87    91        INIT_FCALL                                               'uasort'
         92        SEND_REF                                                 !5
         93        SEND_VAL                                                 'comparef'
         94        DO_ICALL                                                 
   91    95      > FE_RESET_R                                       $61     !5, ->111
         96    > > FE_FETCH_R                                       ~62     $61, !10, ->111
         97    >   ASSIGN                                                   !6, ~62
   92    98        FETCH_DIM_R                                      ~64     !10, 'count'
         99        CONCAT                                           ~65     ~64, '%09'
        100        FETCH_DIM_R                                      ~66     !10, 'percent'
        101        CONCAT                                           ~67     ~65, ~66
        102        CONCAT                                           ~68     ~67, '%25%09'
        103        FETCH_DIM_R                                      ~69     !10, 'title'
        104        CONCAT                                           ~70     ~68, ~69
        105        ROPE_INIT                                     3  ~72     '+http%3A%2F%2Fwww.talaka.by%2Fprojects%2F'
        106        ROPE_ADD                                      1  ~72     ~72, !6
        107        ROPE_END                                      2  ~71     ~72, '+%3Cbr%3E'
        108        CONCAT                                           ~74     ~70, ~71
        109        ECHO                                                     ~74
   91   110      > JMP                                                      ->96
        111    >   FE_FREE                                                  $61
   93   112      > RETURN                                                   1

Function comparef:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 8
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 9
Branch analysis from position: 9
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/vVnNe
function name:  comparef
number of ops:  11
compiled vars:  !0 = $a, !1 = $b
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   83     0  E >   RECV                                             !0      
          1        RECV                                             !1      
   84     2        FETCH_DIM_R                                      ~2      !0, 'count'
          3        FETCH_DIM_R                                      ~3      !1, 'count'
          4        IS_SMALLER                                               ~2, ~3
          5      > JMPZ                                                     ~4, ->8
          6    >   QM_ASSIGN                                        ~5      1
          7      > JMP                                                      ->9
          8    >   QM_ASSIGN                                        ~5      -1
          9    > > RETURN                                                   ~5
   85    10*     > RETURN                                                   null

End of function comparef

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
183.21 ms | 1408 KiB | 27 Q