y extraer data de la última linea, para luego enviarla via HTTP
a un servidor (form submitting).
Sin embargo aunque el script trabaja bien cuando lo ejecutamos
bajo Linux, bajo lo corremos bajo Windows, parece que el script
no lee bien la última linea de log.
Aparentemente el sistema original, le inserta una linea en blanco
al final del archivo log, lo cual "loquea" al PHP. En Linux usamos
PHP 4.4 y en Windows PHP 5.2 (la versión que viene con Xampps).
A continuación anexo el script en mención...
Código PHP:
<?php
$date = date("Y-m-d");
$ip = "xxxxx"; // Server Address
$port = "yyyy"; // Server Port
$pass = "zzzz"; // Admin Password
$file = $date . "-playlog.txt"; // Archivo Log
$fp = fopen($file , "rb");
while (!feof($fp))
{
$song .= fread($fp, 1024);
}
fclose($fp);
$songs = explode ("\n",$song);
$x = sizeof($songs)-1;
$song = $songs[$x];
$songs = explode (" ",$song);
$song = "";
for ($i=2;$i<sizeof($songs);$i++)
{
$song .= $songs[$i] . " ";
}
$song = urlencode($song);
$song = str_replace("+", "%20", $song);
$fp = @fsockopen($ip,$port,$errno,$errstr,4);
if (!$fp)
{
print "Error: cant get server, please check that server is online";
}
else
{
fputs($fp, "GET /admin.cgi?pass=" . $pass . "&mode=updinfo&song=" . $song . " HTTP/1.0\r\n");
fputs($fp, "User-Agent: Mozilla\r\n\r\n");
fclose($fp);
$song = str_replace("%20", "+", $song);
$song = urldecode($song);
print "<strong>Title Updated</strong><p>$song</p><p style=\"font-size: 70%\">Powered by </p>";
print "$date";
}
?>