Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- session_start();
- echo "<font size=-1 face=verdana><b>Eventscripts Optimiser</b></br>\n";
- $content = $_POST["script"];
- $lines = explode("\r\n", $content);
- $linecount = 0;
- $waserror = 0;
- $lbrack = 0;
- $rbrack = 0;
- $inblock = 0;
- $temp = 0;
- $blockerror = 0;
- $firstblock = 1;
- $firstdoblock = 1;
- $error[0] = 0;
- $error[1] = 0;
- $error[2] = 0;
- $error[3] = 0;
- $error[4] = 0;
- $error[5] = 0;
- $error[6] = 0;
- $error[7] = 0;
- $error[8] = 0;
- echo "<table width=100%><tr><td width=";
- if (trim($content))
- {
- print "43";
- }
- else
- {
- print "0";
- }
- print "% valign=top><font size=-1 face=verdana></br>\n";
- if ($_POST["scriptname"])
- {
- $scriptname = $_POST["scriptname"];
- preg_match("/ *(([^ \/]+\/)?[^ \/]+)/", $scriptname, $regex);
- $scriptname = $regex[1];
- }
- foreach ($lines as $line)
- {
- $linecount = $linecount + 1;
- $actualline = $line;
- $linestrip = trim($line);
- $whitespace = strspn($line, " ");
- $whitespacelist[$linecount] = $whitespace;
- if (strstr($line, "//"))
- {
- $line = explode("//", $line);
- $line = $line[0];
- }
- $line = strtolower(trim($line));
- if ($line)
- {
- $regex = 0;
- $regex = preg_match("/^(block|event) ./", $line);
- if ($regex)
- {
- if ($blockerror == 1)
- {
- if ($_POST["codeoutblock"])
- {
- echo "</br>\n";
- if ($outblockline2)
- {
- echo "<b><font color=#ff0000>></font></b> [Lines ".$outblockline." - ".$outblockline2."] Code outside of block</br>\n";
- }
- else
- {
- echo "<b><font color=#ff0000>></font></b> [Line ".$outblockline."] Code outside of block</br>\n";
- }
- $waserror = 1;
- $error[4] = $error[4] + 1;
- }
- }
- if ($rbrack != $lbrack)
- {
- if ($_POST["uneqcurl"])
- {
- echo "</br>\n";
- echo "<b><font color=#ff0000>></font></b> Unequal number of curly brackets in block</br>\n";
- echo "</br>\n";
- echo "<font color=#0000ff>{ = ".$lbrack."</font></br>\n";
- echo "<font color=#ff0000>} = ".$rbrack."</font></br>\n";
- $waserror = 1;
- $error[5] = $error[5] + 1;
- }
- }
- $blockname = ereg_replace("^(block|event) ", "", $line);
- if (preg_match("/^block /", $line))
- {
- $actualblocklist[] = $blockname;
- }
- $inblock = 1;
- $lbrack = 0;
- $rbrack = 0;
- $blockerror = 0;
- if ($waserror)
- {
- echo "</br>\n";
- $waserror = 0;
- }
- echo "<b>>>></b> [Line ".$linecount."] <b>".$line."</b></br>\n";
- $fixblocks[$linecount] = "1";
- if ($firstblock)
- {
- $blocklist[] = $blockname;
- $firstblock = 0;
- }
- else
- {
- if (in_array($blockname, $blocklist))
- {
- if ($_POST["blockname"])
- {
- echo "</br>\n";
- echo "<b><font color=#ff0000>></font></b> Block name used twice</br>\n";
- echo "</br>\n";
- echo "<font color=#ff0000>".$linestrip."</font></br>\n";
- $waserror = 1;
- $error[6] = $error[6] + 1;
- }
- }
- else
- {
- $blocklist[] = $blockname;
- }
- }
- }
- else if ($inblock == 0)
- {
- if ($blockerror == 0)
- {
- $regex = 1;
- $blockerror = 1;
- $outblockline = $linecount;
- $outblockline2 = 0;
- }
- else
- {
- $outblockline2 = $linecount;
- }
- }
- if ($line == "{")
- {
- $lbrack = $lbrack + 1;
- }
- else if ($line == "}")
- {
- $rbrack = $rbrack + 1;
- }
- if ($regex != 1)
- {
- if ($rbrack == $lbrack)
- {
- $inblock = 0;
- }
- else
- {
- $linenq = $line;
- if (strstr($linenq, '"'))
- {
- if ((substr_count($line, '"') % 2) == 1)
- {
- if ($_POST["uneqqu"])
- {
- echo "</br>\n";
- echo "<b><font color=#ff0000>></font></b> [Line ".$linecount."] Uneven number of quote marks</br>\n";
- echo "</br>\n";
- echo "<font color=#ff0000>".$linestrip."</font></br>\n";
- echo "<font color=#0000ff>".$linestrip.'"</font></br>';
- echo "\n";
- $waserror = 1;
- $line = $line.'"';
- $error[3] = $error[3] + 1;
- }
- $fixbrack[$linecount] = "1";
- $linenq = $linenq.'"';
- }
- while (strstr($linenq, '"'))
- {
- $linenq = ereg_replace('"[^"]*"', "", $linenq);
- }
- }
- if (substr_count($linenq, "(") != substr_count($linenq, ")"))
- {
- if ($_POST["uneqbrac"])
- {
- echo "</br>\n";
- echo "<b><font color=#ff0000>></font></b> [Line ".$linecount."] Uneven number of brackets</br>\n";
- echo "</br>\n";
- echo "<font color=#0000ff> ( = ".substr_count($linenq, "(")."</font></br>\n";
- echo "<font color=#ff0000> ) = ".substr_count($linenq, ")")."</font></br>\n";
- $waserror = 1;
- $error[2] = $error[2] + 1;
- }
- }
- if (preg_match("/.*(\(| )(server|event)_var\(/", $linenq))
- {
- $temp = 0;
- if (preg_match("/.*(\(| )event_var\(/", $linenq))
- {
- $temp = 1;
- }
- if (strpos($linenq, "event_var(") < strpos($linenq, "event_var("))
- {
- $temp2 = "event_var(";
- }
- else
- {
- $temp2 = "server_var(";
- }
- $explode = explode($temp2, $linenq);
- if (preg_match("/.* (es |exp |es_[^x]|if( |\()|else |esnq )/", " ".$explode[0]))
- {
- $temp = 0;
- }
- else
- {
- $temp = 1;
- }
- if ($temp)
- {
- if (preg_match("/^es_xnq/", $line))
- {
- $newline = substr_replace($linestrip, "es", 0, 4);
- }
- else if (preg_match("/^es_x(else|if)/", $line))
- {
- $newline = substr_replace($linestrip, "", 0, 4);
- }
- else if (preg_match("/^es_x/", $line))
- {
- $newline = substr_replace($linestrip, "es_", 0, 4);
- }
- else
- {
- $newline = "es ".$linestrip;
- }
- if ($_POST["expneeded"])
- {
- echo "</br>\n";
- echo "<b><font color=#ff0000>></font></b> [Line ".$linecount."] Expansion needed</br>\n";
- echo "</br>\n";
- echo "<font color=#ff0000>".$linestrip."</font></br>\n";
- echo "<font color=#0000ff>".$newline."</font></br>\n";
- $line = $newline;
- $waserror = 1;
- $error[0] = $error[0] + 1;
- }
- $fixneedexp[$linecount] = $newline;
- }
- }
- else if (preg_match("/^(es |es_[^x]|if( |\()|esnq )/", $line))
- {
- if (preg_match("/^es_/", $line))
- {
- $newline = substr_replace($linestrip, "x", 3, 0);
- }
- else if (preg_match("/^es /", $line))
- {
- $newline = substr_replace($linestrip, "", 0, 3);
- }
- else if (preg_match("/^if/", $line))
- {
- $newline = "es_x".$linestrip;
- }
- else if (preg_match("/^esnq/", $line))
- {
- $newline = substr_replace($linestrip, "_x", 2, 0);
- }
- if ($_POST["expunec"])
- {
- echo "</br>\n";
- echo "<b><font color=#ff0000>></font></b> [Line ".$linecount."] Unecessary expansion</br>\n";
- echo "</br>\n";
- echo "<font color=#ff0000>".$linestrip."</font></br>\n";
- echo "<font color=#0000ff>".$newline."</font></br>\n";
- $line = $newline;
- $waserror = 1;
- $error[1] = $error[1] + 1;
- }
- $fixexpunec[$linecount] = $newline;
- }
- if (preg_match("/^es es_x/", $line))
- {
- if (preg_match("/^es es_x(if|else)/", $line))
- {
- $newline = substr_replace($linestrip, "", 0, 7);
- }
- else if (preg_match("/^es es_xnq/", $line))
- {
- $newline = substr_replace($linestrip, "_x", 2, 5);
- }
- else
- {
- $newline = substr_replace($linestrip, "es_", 0, 7);
- }
- if ($_POST["esx"])
- {
- echo "</br>\n";
- echo "<b><font color=#ff0000>></font></b> [Line ".$linecount."] Use of 'es es_x'</br>\n";
- echo "</br>\n";
- echo "<font color=#ff0000>".$linestrip."</font></br>\n";
- echo "<font color=#0000ff>".$newline."</font></br>\n";
- $line = $newline;
- $waserror = 1;
- $error[9] = $error[9] + 1;
- }
- $fixesx[$linecount] = $newline;
- }
- if ($scriptname)
- {
- if (preg_match("/.*es_x?doblock ".preg_quote($scriptname, "/").'\/([^ "\/]+) /', $line, $regex))
- {
- if ($doblockline[$regex[1]])
- {
- $doblockline[$regex[1]] = $doblockline[$regex[1]].", ".$linecount;
- }
- else
- {
- $doblockline[$regex[1]] = $linecount;
- }
- if ($firstdoblock)
- {
- $doblocklist[] = $regex[1];
- $firstdoblock = 0;
- }
- else if (!in_array($regex[1], $doblocklist))
- {
- $doblocklist[] = $regex[1];
- }
- }
- }
- }
- }
- }
- if ($waserror)
- {
- $error[8] = $error[8] + 1;
- }
- }
- if ($blockerror == 1)
- {
- if ($_POST["codeoutblock"])
- {
- echo "</br>\n";
- if ($outblockline2)
- {
- echo "<b><font color=#ff0000>></font></b> [Lines ".$outblockline." - ".$outblockline2."] Code outside of block</br>\n";
- }
- else
- {
- echo "<b><font color=#ff0000>></font></b> [Line ".$outblockline."] Code outside of block</br>\n";
- }
- $error[4] = $error[4] + 1;
- $waserror = 1;
- }
- }
- if ($rbrack != $lbrack)
- {
- if ($_POST["uneqcurl"])
- {
- echo "</br>\n";
- echo "<b><font color=#ff0000>></font></b> Unequal number of curly brackets in block</br>\n";
- echo "</br>\n";
- echo "<font color=#0000ff>{ = ".$lbrack."</font></br>\n";
- echo "<font color=#ff0000>} = ".$rbrack."</font></br>\n";
- $waserror = 1;
- $error[5] = $error[5] + 1;
- }
- }
- if ($waserror)
- {
- $error[8] = $error[8] + 1;
- }
- if ($actualblocklist)
- {
- if ($doblocklist)
- {
- $temp = 1;
- foreach ($doblocklist as $blockname)
- {
- if(!in_array($blockname, $actualblocklist))
- {
- if ($_POST["blockexist"])
- {
- if ($temp)
- {
- echo "</br>\n";
- echo "<b><font color=#ff0000>></font></b> None existent block(s) referenced</br>\n";
- echo "</br>\n";
- $temp = 0;
- }
- if (preg_match("/.*,/", $doblockline[$blockname]))
- {
- echo "<font color=#ff0000> block ".$blockname."</font> [Lines ".$doblockline[$blockname]."]</br>\n";
- }
- else
- {
- echo "<font color=#ff0000> block ".$blockname."</font> [Line ".$doblockline[$blockname]."]</br>\n";
- }
- $error[7] = $error[7] + 1;
- }
- }
- }
- }
- }
- 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>';
- echo "<b>Statistics</b></br>\n";
- echo "</br>\n";
- echo "Lines: <b>".$linecount."</b></br>\n";
- echo "</br>\n";
- if ($error[0])
- {
- echo "Needed expansion: <font color=#ff0000><b>".$error[0]."</b></font></br>\n";
- }
- if ($error[1])
- {
- echo "Unnecessary expansion: <font color=#ff0000><b>".$error[1]."</b></font></br>\n";
- }
- if ($error[2])
- {
- echo "Unequal Brackets: <font color=#ff0000><b>".$error[2]."</b></font></br>\n";
- }
- if ($error[3])
- {
- echo "Unequal Quote Marks: <font color=#ff0000><b>".$error[3]."</b></font></br>\n";
- }
- if ($error[4])
- {
- echo "Code outside blocks: <font color=#ff0000><b>".$error[4]."</b></font></br>\n";
- }
- if ($error[5])
- {
- echo "Unequal Curly Brackets in block: <font color=#ff0000><b>".$error[5]."</b></font></br>\n";
- }
- if ($error[6])
- {
- echo "Blocks with same name: <font color=#ff0000><b>".$error[6]."</b></font></br>\n";
- }
- if ($error[7])
- {
- echo "Referenced non existent blocks: <font color=#ff0000><b>".$error[7]."</b></font></br>\n";
- }
- if ($error[9])
- {
- echo "Use of es es_x: <font color=#ff0000><b>".$error[9]."</b></font></br>\n";
- }
- $totalerrors = ($error[0] + $error[1] + $error[2] + $error[3] + $error[4] + $error[5] + $error[6] + $error[7] + $error[9]);
- if ($totalerrors)
- {
- echo "</br>\n";
- echo "Total errors: <font color=#ff0000><b>".$totalerrors."</b></font>";
- }
- else
- {
- echo "Total errors: <font color=#0000ff><b> 0</b></font>";
- }
- echo "</p></td></tr></table><font size=-1 face=verdana></br>\n";
- $temp = 0;
- echo "<form method=post action=esfix.php target=_blank>";
- if ($error[0])
- {
- echo "<input type=checkbox name=expneeded[] checked=yes> Needed expansion</br>\n";
- $temp = 1;
- $_SESSION["fixneedexp"] = $fixneedexp;
- }
- if ($error[1])
- {
- echo "<input type=checkbox name=expunec[] checked=yes> Unnecessary expansion</br>\n";
- $temp = 1;
- $_SESSION["fixexpunec"] = $fixexpunec;
- }
- if ($error[3])
- {
- echo "<input type=checkbox name=uneqqu[] checked=yes> Unequal Quote Marks</br>\n";
- $temp = 1;
- $_SESSION["fixbrack"] = $fixbrack;
- }
- if ($error[4])
- {
- echo "<input type=checkbox name=codeoutblock[] checked=yes> Code outside blocks</br>\n";
- $temp = 1;
- }
- if ($error[5])
- {
- echo "<input type=checkbox name=uneqcurl[] checked=yes> Unequal Curly Brackets in block</br>\n";
- $temp = 1;
- }
- if ($error[9])
- {
- echo "<input type=checkbox name=esx[] checked=yes> Use of 'es es_x'</br>\n";
- $temp = 1;
- $_SESSION["fixesx"] = $fixesx;
- }
- if ($temp)
- {
- $_SESSION["whitespacelist"] = $whitespacelist;
- $_SESSION["fixblocks"] = $fixblocks;
- $_SESSION["lines"] = $lines;
- echo "</br>\n";
- echo "<input type=checkbox name=format[] checked=yes> Indent code correctly</br>\n";
- 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";
- echo "</br>\n";
- echo "<input type=submit value=Fix target=_blank></form>";
- }
- echo "<td></tr></table></br>\n";
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement