<?php
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=";
{
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;
{
$line = $line[0];
}
if ($line)
{
$regex = 0;
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;
}
}
{
$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 ($_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 ($_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.'"';
}
{
}
}
{
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;
{
$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)
{
{
}
{
}
{
}
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))
{
{
}
{
}
{
$newline = "es_x".$linestrip;
}
{
}
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;
}
{
{
}
{
}
else
{
}
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 ($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";
?>