PHP printerdebitering Hilfe!
Hej
Jag sitter på en praktikplats och har fått en skrivarserver att peta i. Det som nu finns kvar att leka med är ett debiteringssystem för utskrifter, men det räknar inte riktigt rätt och oturligt nog kan jag noll och ingen PHP.
Loggfilen (/billing/prints) ser ut som följer..
Fri Feb 24 13:02:39 CET 2012
192.168.16.45::00:09:DF:81:B7:6B::pew::1::2655::skrivare_vaning_2::Fri-Feb-24-13:02:38-CET-2012
192.168.16.45::00:09:DF:81:B7:6B::pew::2::2656::HP_LaserJet_3015::Fri-Feb-24-13:26:04-CET-2012
192.168.16.45::00:09:DF:81:B7:6B::pew::4::2657::skrivare_vaning_3::Fri-Feb-24-14:15:46-CET-2012
IP :: MAC :: user :: antal sidor :: printjobb :: printer :: datum
problemet är att antal sidor inte räknas korrekt utan endast räknas som en utskrift per rad.
<?php
echo "<html>\n";
echo "<head>\n";
echo "<title>\n";
echo "Kostnads-logg för skrivare på Malmö Arena.\n";
echo "</title>\n";
echo "</head>\n";
echo "<body style=\"font-size: 12px; font-family: tahoma,arial;\">\n";
echo "<b><u>Kostnads-logg för skrivare på Malmö Arena.</u></b><br />";
echo "<br />";
$sidpris["HP_LaserJet_3015"]=0.1;
$sidpris["skrivare_vaning_2"]=0.5;
$sidpris["skrivare_vaning_3"]=0.5;
$sidpris["skrivare_vaning_4"]=0.5;
$sidpris["HP_Color_LaserJet_CP2025dn"]=0.5;
$sidpris["HP_Color_LaserJet_CP2025dn_"]=0.5;
$sidpris["HP_Color_LaserJet_2600N"]=0.5;
$sidpris["LaserJet_4"]=0.1;
$loggfilen="/billing/prints";
if (file_exists($loggfilen))
{
$filen=$loggfilen;
$fil=fopen($filen,"r") or die("Filen verkar inte kunna läsas!");
$data=fread($fil,filesize($filen));
fclose($fil);
echo "Nu är filen inläst.<br />";
$rad=explode("\n",$data);
echo "Filen består av " . count($rad) . " rader.<br />";
echo "<br />\n";
$counter="";
$tmp = array();
for ($i=0; $i<count($rad); $i++)
{
$del=explode("::",$rad[$i]);
$tmpip=$del[0];
$tmpmodel=$del[5];
$tmp[$tmpip][ip]=$del[0]; //save value in an array
$tmp[$tmpip][mac]=$del[1];
$tmp[$tmpip][name]=$del[2];
$tmp[$tmpip][pages]=$del[3];
$tmp[$tmpip][model]=$del[5];
$tmp[$tmpip][time]=$del[6];
if ($del[0] && $del[5]) $counter[$tmpip][$tmpmodel]++;
}
foreach($counter as $key=>$value)
{
echo "<b>".$tmp[$key][name]."</b> (IP: $key):<br />"; // skriv user
echo $tmp[$key][mac]."<br />";
$totalt_pris=0;
foreach($counter[$key] as $key2=>$value2)
{
echo "- $key2, " . $counter[$key][$key2] . " pages.<br />";
if ($sidpris[$key2]) $totalt_pris=$totalt_pris + $sidpris[$key2] * $counter[$key][$key2];
}
echo "<b>Totalt $totalt_pris kr.</b><br /><hr>";
}
}
else
{
echo "Loggfilen verkar inte hittas!<br />";
}
echo "</body>\n";
echo "</html>\n";
?>
Kan det möjligen finnas någon enkel lösning på mitt problem, eller ska hitta något annat att göra? =P