3v4l.org

run code in 300+ PHP versions simultaneously
<?php $search = array( '/&#36;/', "/\r/", // Non-legal carriage return "/[\n\t]+/", // Newlines and tabs '/[ ]{2,}/', // Runs of spaces, pre-handling '/<script[^>]*>.*?<\/script>/i', // <script>s -- which strip_tags supposedly has problems with '/<style[^>]*>.*?<\/style>/i', // <style>s -- which strip_tags supposedly has problems with //'/<!-- .* -->/', // Comments -- which strip_tags might have problem a with '/<h[123][^>]*>(.*?)<\/h[123]>/i', // H1 - H3 '/<h[456][^>]*>(.*?)<\/h[456]>/ie', // H4 - H6 '/<p[^>]*>/i', // <P> '/<br[^>]*>/i', // <br> '/<b[^>]*>(.*?)<\/b>/i', // <b> '/<strong[^>]*>(.*?)<\/strong>/i', // <strong> '/<i[^>]*>(.*?)<\/i>/i', // <i> '/<em[^>]*>(.*?)<\/em>/i', // <em> '/(<ul[^>]*>|<\/ul>)/i', // <ul> and </ul> '/(<ol[^>]*>|<\/ol>)/i', // <ol> and </ol> '/<li[^>]*>(.*?)<\/li>/i', // <li> and </li> '/<li[^>]*>/i', // <li> // '/<a [^>]*href="(.*?)([^"]+)"[^>]*><\/a>/ie', // '/<a [^>]*href="([^"]+)"[^>]*>(.*?)<\/a>/ie', // <a href=""> '/<hr[^>]*>/i', // <hr> '/(<table[^>]*>|<\/table>)/i', // <table> and </table> '/(<tr[^>]*>|<\/tr>)/i', // <tr> and </tr> '/<td[^>]*>(.*?)<\/td>/i', // <td> and </td> '/<th[^>]*>(.*?)<\/th>/i', // <th> and </th> '/&(nbsp|#160);/i', // Non-breaking space '/&(quot|rdquo|ldquo|#8220|#8221|#147|#148);/i', // Double quotes '/&(apos|rsquo|lsquo|#8216|#8217);/i', // Single quotes '/&gt;/i', // Greater-than '/&lt;/i', // Less-than '/&(amp|#38);/i', // Ampersand '/&(copy|#169);/i', // Copyright '/&(trade|#8482|#153);/i', // Trademark '/&(reg|#174);/i', // Registered '/&(mdash|#151|#8212);/i', // mdash '/&(ndash|minus|#8211|#8722);/i', // ndash '/&(bull|#149|#8226);/i', // Bullet '/&(pound|#163);/i', // Pound sign '/&(euro|#8364);/i', // Euro sign //'/&[^&;]+;/i', // Unknown/unhandled entities '/&[a-z0-9#]{1,10};/i', // Unknown/unhandled entities '/[ ]{2,}/' // Runs of spaces, post-handling ); /** * List of pattern replacements corresponding to patterns searched. * * @var array $replace * @access public * @see $search */ $replace = array( '$', '', // Non-legal carriage return ' ', // Newlines and tabs ' ', // Runs of spaces, pre-handling '', // <script>s -- which strip_tags supposedly has problems with '', // <style>s -- which strip_tags supposedly has problems with //'', // Comments -- which strip_tags might have problem a with "\n\n\\1\n\n", // H1 - H3 "ucwords(\"\n\n\\1\n\n\")", // H4 - H6 "\n\n\t", // <P> "\n", // <br> "\\1", // <b> "\\1", // <strong> '_\\1_', // <i> '_\\1_', // <em> "\n\n", // <ul> and </ul> "\n\n", // <ol> and </ol> "\t* \\1\n", // <li> and </li> "\n\t* ", // <li> // '$this->_build_link_list("\\1", "\\2")', // <a href=""> "\n-------------------------\n", // <hr> "\n\n", // <table> and </table> "\n", // <tr> and </tr> "\t\t\\1\n", // <td> and </td> "\t\t\\1\n", // <th> and </th> ' ', // Non-breaking space '"', // Double quotes "'", // Single quotes '>', '<', '&', '(c)', '(tm)', '(R)', '--', '-', '*', '▒', 'EUR', // Euro sign. . ? '', // Unknown/unhandled entities ' ' // Runs of spaces, post-handling ); $data = <<<EOT <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>email</title> </head> <body style="margin: 0;padding: 0;background: #f9f9f9;font-size: 14px;color: #5b656e;"> <!-- Preheader --> <table cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;background-color: #5b656e;"> <tr> <td style="font-family: tahoma, geneva, sans-serif;color: #313a42;border-collapse: collapse;"> <table border="0" cellpadding="0" cellspacing="0" summary="" width="640" align="center" style="border-collapse: collapse;"> <tr> <td style="font-family: tahoma, geneva, sans-serif;color: white;border-collapse: collapse;font-size: 10px;width: 440px;padding: 5px 10px;">Don't want to hear from us anymore? <a href="&#36;unsubscribe&#36;" style="color: #09c;">Unsubscribe here.</a></td> </tr> </table> </td> </tr> </table> EOT; var_dump(preg_replace($search, $replace, $data));
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/aJVnE
function name:  (null)
number of ops:  12
compiled vars:  !0 = $search, !1 = $replace, !2 = $data
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
   58     1        ASSIGN                                                   !1, <array>
  104     2        ASSIGN                                                   !2, '%0A%3C%21DOCTYPE+html+PUBLIC+%22-%2F%2FW3C%2F%2FDTD+XHTML+1.0+Strict%2F%2FEN%22+%22http%3A%2F%2Fwww.w3.org%2FTR%2Fxhtml1%2FDTD%2Fxhtml1-strict.dtd%22%3E%0A%3Chtml%3E%0A++%3Chead%3E++%0A++++%3Cmeta+http-equiv%3D%22Content-Type%22+content%3D%22text%2Fhtml%3B+charset%3Dutf-8%22%3E%0A++++%3Cmeta+name%3D%22viewport%22+content%3D%22width%3Ddevice-width%2C+initial-scale%3D1.0%22%3E%0A++++%3Ctitle%3Eemail%3C%2Ftitle%3E%0A+++%0A++%3C%2Fhead%3E%0A++%3Cbody+style%3D%22margin%3A+0%3Bpadding%3A+0%3Bbackground%3A+%23f9f9f9%3Bfont-size%3A+14px%3Bcolor%3A+%235b656e%3B%22%3E%0A+++++%0A++++++%3C%21--+Preheader+--%3E%0A++++++%3Ctable+cellpadding%3D%220%22+cellspacing%3D%220%22+width%3D%22100%25%22+style%3D%22border-collapse%3A+collapse%3Bbackground-color%3A+%235b656e%3B%22%3E%0A++++++++%3Ctr%3E%0A++++++++++%3Ctd+style%3D%22font-family%3A+tahoma%2C+geneva%2C+sans-serif%3Bcolor%3A+%23313a42%3Bborder-collapse%3A+collapse%3B%22%3E%0A++++++++++++%3Ctable+border%3D%220%22+cellpadding%3D%220%22+cellspacing%3D%220%22+summary%3D%22%22+width%3D%22640%22+align%3D%22center%22+style%3D%22border-collapse%3A+collapse%3B%22%3E%0A++++++++++++++%3Ctr%3E%0A++++++++++++++++%3Ctd+style%3D%22font-family%3A+tahoma%2C+geneva%2C+sans-serif%3Bcolor%3A+white%3Bborder-collapse%3A+collapse%3Bfont-size%3A+10px%3Bwidth%3A+440px%3Bpadding%3A+5px+10px%3B%22%3EDon%27t+want+to+hear+from+us+anymore%3F+%3Ca+href%3D%22%26%2336%3Bunsubscribe%26%2336%3B%22+style%3D%22color%3A+%2309c%3B%22%3EUnsubscribe+here.%3C%2Fa%3E%3C%2Ftd%3E%0A%0A%0A%0A%3C%2Ftr%3E%0A%3C%2Ftable%3E%0A%3C%2Ftd%3E%0A%3C%2Ftr%3E%0A%3C%2Ftable%3E%0A'
  135     3        INIT_FCALL                                               'var_dump'
          4        INIT_FCALL                                               'preg_replace'
          5        SEND_VAR                                                 !0
          6        SEND_VAR                                                 !1
          7        SEND_VAR                                                 !2
          8        DO_ICALL                                         $6      
          9        SEND_VAR                                                 $6
         10        DO_ICALL                                                 
         11      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
181.7 ms | 1387 KiB | 17 Q