Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Feb 22nd, 2010  |  syntax: PHP  |  size: 17.80 KB  |  views: 211  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. <?php
  2.  
  3.  
  4. echo "<font size=-1 face=verdana><b>Eventscripts Optimiser</b></br>\n";
  5. $content = $_POST["script"];
  6. $lines = explode("\r\n", $content);
  7. $linecount = 0;
  8. $waserror = 0;
  9. $lbrack = 0;
  10. $rbrack = 0;
  11. $inblock = 0;
  12. $temp = 0;
  13. $blockerror = 0;
  14. $firstblock = 1;
  15. $firstdoblock = 1;
  16.  
  17. $error[0] = 0;
  18. $error[1] = 0;
  19. $error[2] = 0;
  20. $error[3] = 0;
  21. $error[4] = 0;
  22. $error[5] = 0;
  23. $error[6] = 0;
  24. $error[7] = 0;
  25. $error[8] = 0;
  26.  
  27. echo "<table width=100%><tr><td width=";
  28.  
  29. if (trim($content))
  30. {
  31.     print "43";
  32. }
  33. else
  34. {
  35.     print "0";
  36. }
  37. print "% valign=top><font size=-1 face=verdana></br>\n";
  38.  
  39. if ($_POST["scriptname"])
  40. {
  41.     $scriptname = $_POST["scriptname"];
  42.     preg_match("/ *(([^ \/]+\/)?[^ \/]+)/", $scriptname, $regex);
  43.     $scriptname = $regex[1];
  44. }
  45. foreach ($lines as $line)
  46. {
  47.     $linecount = $linecount + 1;
  48.     $actualline = $line;
  49.     $linestrip = trim($line);
  50.     $whitespace = strspn($line, " ");
  51.     $whitespacelist[$linecount] = $whitespace;
  52.     if (strstr($line, "//"))
  53.     {
  54.         $line = explode("//", $line);
  55.         $line = $line[0];
  56.     }
  57.     $line = strtolower(trim($line));
  58.     if ($line)
  59.     {
  60.         $regex = 0;
  61.         $regex = preg_match("/^(block|event) ./", $line);
  62.         if ($regex)
  63.         {
  64.             if ($blockerror == 1)
  65.             {
  66.                 if ($_POST["codeoutblock"])
  67.                 {
  68.                     echo "</br>\n";
  69.                     if ($outblockline2)
  70.                     {
  71.                         echo "<b><font color=#ff0000>></font></b> [Lines ".$outblockline." - ".$outblockline2."] Code outside of block</br>\n";
  72.                     }
  73.                     else
  74.                     {
  75.                         echo "<b><font color=#ff0000>></font></b> [Line ".$outblockline."] Code outside of block</br>\n";
  76.                     }
  77.                     $waserror = 1;
  78.                     $error[4] = $error[4] + 1;
  79.                 }
  80.             }
  81.             if ($rbrack != $lbrack)
  82.             {
  83.                 if ($_POST["uneqcurl"])
  84.                 {
  85.                     echo "</br>\n";
  86.                     echo "<b><font color=#ff0000>></font></b> Unequal number of curly brackets in block</br>\n";
  87.                     echo "</br>\n";
  88.                     echo "<font color=#0000ff>{ = ".$lbrack."</font></br>\n";
  89.                     echo "<font color=#ff0000>} = ".$rbrack."</font></br>\n";
  90.                     $waserror = 1;
  91.                     $error[5] = $error[5] + 1;
  92.                 }
  93.             }
  94.             $blockname = ereg_replace("^(block|event) ", "", $line);
  95.             if (preg_match("/^block /", $line))
  96.             {
  97.                $actualblocklist[] = $blockname;
  98.             }
  99.             $inblock = 1;
  100.             $lbrack = 0;
  101.             $rbrack = 0;
  102.             $blockerror = 0;
  103.             if ($waserror)
  104.             {
  105.                 echo "</br>\n";
  106.                 $waserror = 0;
  107.             }
  108.             echo "<b>>>></b> [Line ".$linecount."] <b>".$line."</b></br>\n";
  109.             $fixblocks[$linecount] = "1";
  110.             if ($firstblock)
  111.             {
  112.                 $blocklist[] = $blockname;
  113.                 $firstblock = 0;
  114.             }
  115.             else
  116.             {
  117.                 if (in_array($blockname, $blocklist))
  118.                 {
  119.                     if ($_POST["blockname"])
  120.                     {
  121.                         echo "</br>\n";
  122.                         echo "<b><font color=#ff0000>></font></b> Block name used twice</br>\n";
  123.                         echo "</br>\n";
  124.                         echo "<font color=#ff0000>".$linestrip."</font></br>\n";
  125.                         $waserror = 1;
  126.                         $error[6] = $error[6] + 1;
  127.                     }
  128.                 }
  129.                 else
  130.                 {
  131.                     $blocklist[] = $blockname;
  132.                 }
  133.             }
  134.         }
  135.         else if ($inblock == 0)
  136.         {
  137.             if ($blockerror == 0)
  138.             {
  139.                 $regex = 1;
  140.                 $blockerror = 1;
  141.                 $outblockline = $linecount;
  142.                 $outblockline2 = 0;
  143.             }
  144.             else
  145.             {
  146.                 $outblockline2 = $linecount;
  147.             }
  148.         }
  149.         if ($line == "{")
  150.         {
  151.             $lbrack = $lbrack + 1;
  152.         }
  153.         else if ($line == "}")
  154.         {
  155.             $rbrack = $rbrack + 1;
  156.         }
  157.         if ($regex != 1)
  158.         {
  159.             if ($rbrack == $lbrack)
  160.             {
  161.                 $inblock = 0;
  162.             }
  163.             else
  164.             {
  165.                 $linenq = $line;
  166.                 if (strstr($linenq, '"'))
  167.                 {
  168.                     if ((substr_count($line, '"') % 2) == 1)
  169.                     {
  170.                         if ($_POST["uneqqu"])
  171.                         {
  172.                             echo "</br>\n";
  173.                             echo "<b><font color=#ff0000>></font></b> [Line ".$linecount."] Uneven number of quote marks</br>\n";
  174.                             echo "</br>\n";
  175.                             echo "<font color=#ff0000>".$linestrip."</font></br>\n";
  176.                             echo "<font color=#0000ff>".$linestrip.'"</font></br>';
  177.                             echo "\n";
  178.                             $waserror = 1;
  179.                             $line = $line.'"';
  180.                             $error[3] = $error[3] + 1;
  181.                         }
  182.                         $fixbrack[$linecount] = "1";
  183.                         $linenq = $linenq.'"';
  184.                     }
  185.                     while (strstr($linenq, '"'))
  186.                     {
  187.                         $linenq = ereg_replace('"[^"]*"', "", $linenq);
  188.                     }
  189.                 }
  190.                 if (substr_count($linenq, "(") != substr_count($linenq, ")"))
  191.                 {
  192.                     if ($_POST["uneqbrac"])
  193.                     {
  194.                         echo "</br>\n";
  195.                         echo "<b><font color=#ff0000>></font></b> [Line ".$linecount."] Uneven number of brackets</br>\n";
  196.                         echo "</br>\n";
  197.                         echo "<font color=#0000ff> ( = ".substr_count($linenq, "(")."</font></br>\n";
  198.                         echo "<font color=#ff0000> ) = ".substr_count($linenq, ")")."</font></br>\n";
  199.                         $waserror = 1;
  200.                         $error[2] = $error[2] + 1;
  201.                      }
  202.                 }
  203.                 if (preg_match("/.*(\(| )(server|event)_var\(/", $linenq))
  204.                 {
  205.                     $temp = 0;
  206.                     if (preg_match("/.*(\(| )event_var\(/", $linenq))
  207.                     {
  208.                         $temp = 1;
  209.                     }
  210.                     if (strpos($linenq, "event_var(") < strpos($linenq, "event_var("))
  211.                     {
  212.                         $temp2 = "event_var(";
  213.                     }
  214.                     else
  215.                     {
  216.                         $temp2 = "server_var(";
  217.                     }
  218.                     $explode = explode($temp2, $linenq);
  219.                     if (preg_match("/.* (es |exp |es_[^x]|if( |\()|else |esnq )/", " ".$explode[0]))
  220.                     {
  221.                         $temp = 0;
  222.                     }
  223.                     else
  224.                     {
  225.                         $temp = 1;
  226.                     }
  227.                     if ($temp)
  228.                     {
  229.                         if (preg_match("/^es_xnq/", $line))
  230.                         {
  231.                             $newline = substr_replace($linestrip, "es", 0, 4);
  232.                         }
  233.                         else if (preg_match("/^es_x(else|if)/", $line))
  234.                         {
  235.                             $newline = substr_replace($linestrip, "", 0, 4);
  236.                         }
  237.                         else if (preg_match("/^es_x/", $line))
  238.                         {
  239.                             $newline = substr_replace($linestrip, "es_", 0, 4);
  240.                         }
  241.                         else
  242.                         {
  243.                             $newline = "es ".$linestrip;
  244.                         }
  245.                         if ($_POST["expneeded"])
  246.                         {
  247.                             echo "</br>\n";
  248.                             echo "<b><font color=#ff0000>></font></b> [Line ".$linecount."] Expansion needed</br>\n";
  249.                             echo "</br>\n";
  250.                             echo "<font color=#ff0000>".$linestrip."</font></br>\n";
  251.                             echo "<font color=#0000ff>".$newline."</font></br>\n";
  252.                             $line = $newline;
  253.                             $waserror = 1;
  254.                             $error[0] = $error[0] + 1;
  255.                         }
  256.                         $fixneedexp[$linecount] = $newline;
  257.                     }
  258.                 }
  259.                 else if (preg_match("/^(es |es_[^x]|if( |\()|esnq )/", $line))
  260.                 {                        
  261.                     if (preg_match("/^es_/", $line))
  262.                     {
  263.                         $newline = substr_replace($linestrip, "x", 3, 0);
  264.                     }
  265.                     else if (preg_match("/^es /", $line))
  266.                     {
  267.                         $newline = substr_replace($linestrip, "", 0, 3);
  268.                     }
  269.                     else if (preg_match("/^if/", $line))
  270.                     {
  271.                         $newline = "es_x".$linestrip;
  272.                     }
  273.                     else if (preg_match("/^esnq/", $line))
  274.                     {
  275.                         $newline = substr_replace($linestrip, "_x", 2, 0);
  276.                     }
  277.                     if ($_POST["expunec"])
  278.                     {
  279.                         echo "</br>\n";
  280.                         echo "<b><font color=#ff0000>></font></b> [Line ".$linecount."] Unecessary expansion</br>\n";
  281.                         echo "</br>\n";
  282.                         echo "<font color=#ff0000>".$linestrip."</font></br>\n";
  283.                         echo "<font color=#0000ff>".$newline."</font></br>\n";
  284.                         $line = $newline;
  285.                         $waserror = 1;
  286.                         $error[1] = $error[1] + 1;
  287.                     }
  288.                     $fixexpunec[$linecount] = $newline;
  289.                 }
  290.                 if (preg_match("/^es es_x/", $line))
  291.                 {                        
  292.                     if (preg_match("/^es es_x(if|else)/", $line))
  293.                     {
  294.                         $newline = substr_replace($linestrip, "", 0, 7);
  295.                     }
  296.                     else if (preg_match("/^es es_xnq/", $line))
  297.                     {
  298.                         $newline = substr_replace($linestrip, "_x", 2, 5);
  299.                     }
  300.                     else
  301.                     {
  302.                         $newline = substr_replace($linestrip, "es_", 0, 7);
  303.                     }
  304.                     if ($_POST["esx"])
  305.                     {
  306.                         echo "</br>\n";
  307.                         echo "<b><font color=#ff0000>></font></b> [Line ".$linecount."] Use of 'es es_x'</br>\n";
  308.                         echo "</br>\n";
  309.                         echo "<font color=#ff0000>".$linestrip."</font></br>\n";
  310.                         echo "<font color=#0000ff>".$newline."</font></br>\n";
  311.                         $line = $newline;
  312.                         $waserror = 1;
  313.                         $error[9] = $error[9] + 1;
  314.                     }
  315.                     $fixesx[$linecount] = $newline;
  316.                 }
  317.                 if ($scriptname)
  318.                 {
  319.                    if (preg_match("/.*es_x?doblock ".preg_quote($scriptname, "/").'\/([^ "\/]+) /', $line, $regex))
  320.                    {
  321.                        if ($doblockline[$regex[1]])
  322.                        {
  323.                            $doblockline[$regex[1]] = $doblockline[$regex[1]].", ".$linecount;
  324.                        }
  325.                        else
  326.                        {
  327.                            $doblockline[$regex[1]] = $linecount;
  328.                        }
  329.                        if ($firstdoblock)
  330.                        {
  331.                            $doblocklist[] = $regex[1];
  332.                            $firstdoblock = 0;
  333.                        }
  334.                        else if (!in_array($regex[1], $doblocklist))
  335.                        {
  336.                            $doblocklist[] = $regex[1];
  337.                        }
  338.                    }
  339.                 }
  340.             }
  341.         }
  342.     }
  343.     if ($waserror)
  344.     {
  345.         $error[8] = $error[8] + 1;
  346.     }
  347. }
  348. if ($blockerror == 1)
  349. {
  350.     if ($_POST["codeoutblock"])
  351.     {
  352.         echo "</br>\n";
  353.         if ($outblockline2)
  354.         {
  355.             echo "<b><font color=#ff0000>></font></b> [Lines ".$outblockline." - ".$outblockline2."] Code outside of block</br>\n";
  356.         }
  357.         else
  358.         {
  359.             echo "<b><font color=#ff0000>></font></b> [Line ".$outblockline."] Code outside of block</br>\n";
  360.         }
  361.         $error[4] = $error[4] + 1;
  362.         $waserror = 1;
  363.     }
  364. }
  365. if ($rbrack != $lbrack)
  366. {
  367.     if ($_POST["uneqcurl"])
  368.     {
  369.         echo "</br>\n";
  370.         echo "<b><font color=#ff0000>></font></b> Unequal number of curly brackets in block</br>\n";
  371.         echo "</br>\n";
  372.         echo "<font color=#0000ff>{ = ".$lbrack."</font></br>\n";
  373.         echo "<font color=#ff0000>} = ".$rbrack."</font></br>\n";
  374.         $waserror = 1;
  375.         $error[5] = $error[5] + 1;
  376.     }
  377. }
  378. if ($waserror)
  379. {
  380.     $error[8] = $error[8] + 1;
  381. }
  382. if ($actualblocklist)
  383. {
  384.     if ($doblocklist)
  385.     {
  386.         $temp = 1;
  387.         foreach ($doblocklist as $blockname)
  388.         {
  389.             if(!in_array($blockname, $actualblocklist))
  390.             {
  391.                 if ($_POST["blockexist"])
  392.                 {
  393.                     if ($temp)
  394.                     {
  395.                         echo "</br>\n";
  396.                         echo "<b><font color=#ff0000>></font></b> None existent block(s) referenced</br>\n";
  397.                         echo "</br>\n";
  398.                         $temp = 0;
  399.                     }
  400.                     if (preg_match("/.*,/", $doblockline[$blockname]))
  401.                     {
  402.                         echo "<font color=#ff0000> block ".$blockname."</font> [Lines ".$doblockline[$blockname]."]</br>\n";
  403.                     }
  404.                     else
  405.                     {
  406.                         echo "<font color=#ff0000> block ".$blockname."</font> [Line ".$doblockline[$blockname]."]</br>\n";
  407.                     }
  408.                     $error[7] = $error[7] + 1;
  409.                 }
  410.             }
  411.         }
  412.     }
  413. }
  414.  
  415. echo '</td><td valign=top></br><table border=1><tr><td style="border:solid 2px #000000"><p style="margin-left:10px;margin-top:10px;margin-right:10px;margin-bottom:10px"><font size=-1 face=verdana>';
  416.  
  417.  
  418. echo "<b>Statistics</b></br>\n";
  419. echo "</br>\n";
  420. echo "Lines: <b>".$linecount."</b></br>\n";
  421. echo "</br>\n";
  422.  
  423. if ($error[0])
  424. {
  425.    echo "Needed expansion: <font color=#ff0000><b>".$error[0]."</b></font></br>\n";
  426. }
  427. if ($error[1])
  428. {
  429.    echo "Unnecessary expansion: <font color=#ff0000><b>".$error[1]."</b></font></br>\n";
  430. }
  431. if ($error[2])
  432. {
  433.    echo "Unequal Brackets: <font color=#ff0000><b>".$error[2]."</b></font></br>\n";
  434. }
  435. if ($error[3])
  436. {
  437.    echo "Unequal Quote Marks: <font color=#ff0000><b>".$error[3]."</b></font></br>\n";
  438. }
  439. if ($error[4])
  440. {
  441.    echo "Code outside blocks: <font color=#ff0000><b>".$error[4]."</b></font></br>\n";
  442. }
  443. if ($error[5])
  444. {
  445.    echo "Unequal Curly Brackets in block: <font color=#ff0000><b>".$error[5]."</b></font></br>\n";
  446. }
  447. if ($error[6])
  448. {
  449.    echo "Blocks with same name: <font color=#ff0000><b>".$error[6]."</b></font></br>\n";
  450. }
  451. if ($error[7])
  452. {
  453.    echo "Referenced non existent blocks: <font color=#ff0000><b>".$error[7]."</b></font></br>\n";
  454. }
  455. if ($error[9])
  456. {
  457.    echo "Use of es es_x: <font color=#ff0000><b>".$error[9]."</b></font></br>\n";
  458. }
  459. $totalerrors = ($error[0] + $error[1] + $error[2] + $error[3] + $error[4] + $error[5] + $error[6] + $error[7] + $error[9]);
  460. if ($totalerrors)
  461. {
  462.     echo "</br>\n";
  463.     echo "Total errors: <font color=#ff0000><b>".$totalerrors."</b></font>";
  464. }
  465. else
  466. {
  467.     echo "Total errors: <font color=#0000ff><b> 0</b></font>";
  468. }
  469.  
  470. echo "</p></td></tr></table><font size=-1 face=verdana></br>\n";
  471.  
  472. $temp = 0;
  473. echo "<form method=post action=esfix.php target=_blank>";
  474. if ($error[0])
  475. {
  476.     echo "<input type=checkbox name=expneeded[] checked=yes> Needed expansion</br>\n";
  477.     $temp = 1;
  478.     $_SESSION["fixneedexp"] = $fixneedexp;
  479. }
  480. if ($error[1])
  481. {
  482.     echo "<input type=checkbox name=expunec[] checked=yes> Unnecessary expansion</br>\n";
  483.     $temp = 1;
  484.     $_SESSION["fixexpunec"] = $fixexpunec;
  485. }
  486. if ($error[3])
  487. {
  488.     echo "<input type=checkbox name=uneqqu[] checked=yes> Unequal Quote Marks</br>\n";
  489.     $temp = 1;
  490.     $_SESSION["fixbrack"] = $fixbrack;
  491. }
  492. if ($error[4])
  493. {
  494.     echo "<input type=checkbox name=codeoutblock[] checked=yes> Code outside blocks</br>\n";
  495.     $temp = 1;
  496. }
  497. if ($error[5])
  498. {
  499.     echo "<input type=checkbox name=uneqcurl[] checked=yes> Unequal Curly Brackets in block</br>\n";
  500.     $temp = 1;
  501. }
  502. if ($error[9])
  503. {
  504.     echo "<input type=checkbox name=esx[] checked=yes> Use of 'es es_x'</br>\n";
  505.     $temp = 1;
  506.     $_SESSION["fixesx"] = $fixesx;
  507. }
  508. if ($temp)
  509. {
  510.     $_SESSION["whitespacelist"] = $whitespacelist;
  511.     $_SESSION["fixblocks"] = $fixblocks;
  512.     $_SESSION["lines"] = $lines;
  513.     echo "</br>\n";
  514.     echo "<input type=checkbox name=format[] checked=yes> Indent code correctly</br>\n";
  515.     echo "<input type=radio name=spacing value=tab checked=yes> Tabs </br>\n<input type=radio name=spacing value=space> Spaces <input type=text style='width:30px;' name=spaceno value=3></br>\n";
  516.     echo "</br>\n";
  517.     echo "<input type=submit value=Fix target=_blank></form>";
  518. }
  519.  
  520. echo "<td></tr></table></br>\n";
  521.  
  522. ?>
clone this paste RAW Paste Data