I can't figure out why my script doesnt work. It won't insert something into the array and it doesn't replace the proper stuff. Here goes the script. The download. The example.
http://www.agigames.com/rpg/attachments/boardinfo1.4.zip
http://www.agigames.com/rpg/attachments/printermaker.php
###############THE SCRIPT#######################
<?
global $a,$code;
if($a == 'optimize') optimize();
else start();
function start ()
{
global $a,$code;
print <<<EOT
<center><font size="4" face="verdana">Place source below to have it utilize your printer() function!</font></center>
<form method="POST" action="?a=optimize">
<p align="center">
<textarea rows="13" name="code" cols="80"></textarea><BR>
<input type="submit" value="Submit" name="B1">
<input type="reset" value="Reset" name="B2">
</p>
</form>
EOT;
}
function optimize ()
{
global $code;
make all code go into an array
print '<pre>';
$code1 = explode("\n",$code);
for($i=0; $i<count($code1); $i++)
{
$line = $code1[$i];
$line = stripslashes($line);
if(substr(trim($line),0,7) == "print \'")
{
$line = substr_replace(trim($line),"\$printer = \'",0,7);
$line1 = $line; $num = $i;
while(!strrpos($line1,';'))
{
$line1=$code1[$num];
$num++;
}
$code1[$num] = substr_replace($line1,'; printer($printer);', strrpos($line1,';'),1);
}
else if(substr(trim($line),0,7) == 'print "')
{
$line = substr_replace(trim($line),"\$printer = \"",0,7);
$line1 = $line; $num = $i;
while(!strrpos($line1,';'))
{
$line1=$code1[$num];
$num++;
}
$code1[$num] = substr_replace($line1,'; printer($printer);', strrpos($line1,';'),1);
}
else if(substr(trim($line),0,7) == 'print (')
{
$line = substr_replace(trim($line),'$printer = (',0,7);
$line1 = $line; $num = $i;
while(!strrpos($line1,';'))
{
$line1=$code1[$num];
$num++;
}
$code1[$num] = substr_replace($line1,'; printer($printer);', strrpos($line1,';'),1);
}
else if(substr(trim($line),0,7) == 'print $')
{
$line = substr_replace(trim($line),'$printer = $',0,7);
$line1 = $line; $num = $i;
while(!strrpos($line1,';'))
{
$line1=$code1[$num];
$num++;
}
$code1[$num] = substr_replace($line1,'; printer($printer);', strrpos($line1,';'),1);
}
else if(substr(trim($line),0,6) == "echo \'")
{
$line = substr_replace(trim($line),"$printer = \'",0,4);
$line1 = $line; $num = $i;
while(!strrpos($line1,';'))
{
$line1=$code1[$num];
$num++;
}
$code1[$num] = substr_replace($line1,'; printer($printer);', strrpos($line1,';'),1);
}
else if(substr(trim($line),0,6) == 'echo "')
{
$line = substr_replace(trim($line),'$printer = "',0,4);
$line1 = $line; $num = $i;
while(!strrpos($line1,';'))
{
$line1=$code1[$num];
$num++;
}
$code1[$num] = substr_replace($line1,'; printer($printer);', strrpos($line1,';'),1);
}
else if(substr(trim($line),0,6) == 'echo (')
{
$line = substr_replace(trim($line),'$printer = (',0,4);
$line1 = $line; $num = $i;
while(!strrpos($line1,';'))
{
$line1=$code1[$num];
$num++;
}
$code1[$num] = substr_replace($line1,'; printer($printer);', strrpos($line1,';'),1);
}
else if(substr(trim($line),0,7) == 'echo $')
{
$line = substr_replace(trim($line),'$printer = $',0,7);
$line1 = $line; $num = $i;
while(!strrpos($line1,';'))
{
$line1=$code1[$num];
$num++;
}
$code1[$num] = substr_replace($line1,'; printer($printer);', strrpos($line1,';'),1);
}
else if(substr($line,strpos($line,'print <<<EOT'),12) == 'print <<<EOT')
{
$line = substr_replace($line, '$printer = <<<EOT', strpos($line,'print <<<EOT'),17);
}
else if(substr($line,strpos($line,'echo <<<EOT'),11) == 'echo <<<EOT')
{
$line = substr_replace($line, '$printer = <<<EOT', strpos($line,'print <<<EOT'),17);
}
else if(substr($line,0,4) == 'EOT;')
{
$temp_array = array();
$temp_array = array_splice($code1,$i);
array_push($temp_array,'printer($printer);');
$code1 = array_merge($temp_array, $code1);
}
}
for($i=0; $i<count($code1); $i++)
print stripslashes($code1[$i]);
print '</pre>';
}
?>