Advertisement
Guest User

Untitled

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