3v4l.org

run code in 300+ PHP versions simultaneously
<?php class frengo_ad_common { public static function addClickTracking($ad) { $regexp = "<a(.+)href=[\"'](.*)[\"']"; $ad = preg_replace_callback("/$regexp/iU", "frengo_ad_common::formatClickURLMatch", $ad); return $ad; } public static function formatClickURLMatch($matches) { $matchedURL = html_entity_decode($matches[2]); $matchedURL = urlencode($matchedURL); $matchedURL = htmlentities($matchedURL); return '<a'.$matches[1].'href="{clickurl}'. "__maxdest=" . $matchedURL . '"'; } } $ad = <<<EOT <a href='http://localhost:9003/openx/www/delivery/myck.php?p=__pid=03f3ec0d386cab28__sid=5874__bid=12691__cb=e3755e1c35__h=1378130258__channel_ids=%2C408%2C__uid=2A744361-BDDF-4266-B928-F6D3332CF10F__tp=fce9986117f37450268dc2b69a656030__os=iPhone+OS__ip=50.17.80.240__ua=Mozilla%2F5.0+%28iPad%3B+U%3B+CPU+OS+3_2+like+Mac+OS+X%3B+en-us%29+AppleWebKit%2F531.21.10+%28KHTML%2C+like+Gecko%29+Version%2F4.0.4+Mobile%2F7B367+Safari%2F531.21.10__ho=50.17.80.240__s=1a3d39ada87663adc053e469f9ee1951' target=''>test normal text link</a><img src="http://localhost:9003/openx/www/delivery/myview.php?p=__pid=03f3ec0d386cab28__sid=5874__bid=12691__cb=7da209cd79__h=1378130258__channel_ids=%2C408%2C__uid=2A744361-BDDF-4266-B928-F6D3332CF10F__tp=fce9986117f37450268dc2b69a656030__os=iPhone+OS__ip=50.17.80.240__ua=Mozilla%2F5.0+%28iPad%3B+U%3B+CPU+OS+3_2+like+Mac+OS+X%3B+en-us%29+AppleWebKit%2F531.21.10+%28KHTML%2C+like+Gecko%29+Version%2F4.0.4+Mobile%2F7B367+Safari%2F531.21.10__ho=50.17.80.240__s=989edb9bf0058afaf9b0e02f3bc546af" alt="" width="1" height="1" /> EOT; $ad = frengo_ad_common::addClickTracking($ad); echo $ad; ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/5BBKH
function name:  (null)
number of ops:  7
compiled vars:  !0 = $ad
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   25     0  E >   ASSIGN                                                   !0, '%3Ca+href%3D%27http%3A%2F%2Flocalhost%3A9003%2Fopenx%2Fwww%2Fdelivery%2Fmyck.php%3Fp%3D__pid%3D03f3ec0d386cab28__sid%3D5874__bid%3D12691__cb%3De3755e1c35__h%3D1378130258__channel_ids%3D%252C408%252C__uid%3D2A744361-BDDF-4266-B928-F6D3332CF10F__tp%3Dfce9986117f37450268dc2b69a656030__os%3DiPhone%2BOS__ip%3D50.17.80.240__ua%3DMozilla%252F5.0%2B%2528iPad%253B%2BU%253B%2BCPU%2BOS%2B3_2%2Blike%2BMac%2BOS%2BX%253B%2Ben-us%2529%2BAppleWebKit%252F531.21.10%2B%2528KHTML%252C%2Blike%2BGecko%2529%2BVersion%252F4.0.4%2BMobile%252F7B367%2BSafari%252F531.21.10__ho%3D50.17.80.240__s%3D1a3d39ada87663adc053e469f9ee1951%27+target%3D%27%27%3Etest+normal+text+link%3C%2Fa%3E%3Cimg+src%3D%22http%3A%2F%2Flocalhost%3A9003%2Fopenx%2Fwww%2Fdelivery%2Fmyview.php%3Fp%3D__pid%3D03f3ec0d386cab28__sid%3D5874__bid%3D12691__cb%3D7da209cd79__h%3D1378130258__channel_ids%3D%252C408%252C__uid%3D2A744361-BDDF-4266-B928-F6D3332CF10F__tp%3Dfce9986117f37450268dc2b69a656030__os%3DiPhone%2BOS__ip%3D50.17.80.240__ua%3DMozilla%252F5.0%2B%2528iPad%253B%2BU%253B%2BCPU%2BOS%2B3_2%2Blike%2BMac%2BOS%2BX%253B%2Ben-us%2529%2BAppleWebKit%252F531.21.10%2B%2528KHTML%252C%2Blike%2BGecko%2529%2BVersion%252F4.0.4%2BMobile%252F7B367%2BSafari%252F531.21.10__ho%3D50.17.80.240__s%3D989edb9bf0058afaf9b0e02f3bc546af%22+alt%3D%22%22+width%3D%221%22+height%3D%221%22+%2F%3E'
   29     1        INIT_STATIC_METHOD_CALL                                  'frengo_ad_common', 'addClickTracking'
          2        SEND_VAR                                                 !0
          3        DO_FCALL                                      0  $2      
          4        ASSIGN                                                   !0, $2
   30     5        ECHO                                                     !0
   33     6      > RETURN                                                   1

Class frengo_ad_common:
Function addclicktracking:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/5BBKH
function name:  addClickTracking
number of ops:  13
compiled vars:  !0 = $ad, !1 = $regexp
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    6     0  E >   RECV                                             !0      
    8     1        ASSIGN                                                   !1, '%3Ca%28.%2B%29href%3D%5B%22%27%5D%28.%2A%29%5B%22%27%5D'
    9     2        INIT_FCALL                                               'preg_replace_callback'
          3        ROPE_INIT                                     3  ~4      '%2F'
          4        ROPE_ADD                                      1  ~4      ~4, !1
          5        ROPE_END                                      2  ~3      ~4, '%2FiU'
          6        SEND_VAL                                                 ~3
          7        SEND_VAL                                                 'frengo_ad_common%3A%3AformatClickURLMatch'
          8        SEND_VAR                                                 !0
          9        DO_ICALL                                         $6      
         10        ASSIGN                                                   !0, $6
   10    11      > RETURN                                                   !0
   11    12*     > RETURN                                                   null

End of function addclicktracking

Function formatclickurlmatch:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/5BBKH
function name:  formatClickURLMatch
number of ops:  22
compiled vars:  !0 = $matches, !1 = $matchedURL
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   13     0  E >   RECV                                             !0      
   15     1        INIT_FCALL                                               'html_entity_decode'
          2        FETCH_DIM_R                                      ~2      !0, 2
          3        SEND_VAL                                                 ~2
          4        DO_ICALL                                         $3      
          5        ASSIGN                                                   !1, $3
   16     6        INIT_FCALL                                               'urlencode'
          7        SEND_VAR                                                 !1
          8        DO_ICALL                                         $5      
          9        ASSIGN                                                   !1, $5
   17    10        INIT_FCALL                                               'htmlentities'
         11        SEND_VAR                                                 !1
         12        DO_ICALL                                         $7      
         13        ASSIGN                                                   !1, $7
   18    14        FETCH_DIM_R                                      ~9      !0, 1
         15        CONCAT                                           ~10     '%3Ca', ~9
         16        CONCAT                                           ~11     ~10, 'href%3D%22%7Bclickurl%7D'
         17        CONCAT                                           ~12     ~11, '__maxdest%3D'
         18        CONCAT                                           ~13     ~12, !1
         19        CONCAT                                           ~14     ~13, '%22'
         20      > RETURN                                                   ~14
   19    21*     > RETURN                                                   null

End of function formatclickurlmatch

End of class frengo_ad_common.

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
182.29 ms | 1400 KiB | 21 Q