Pregunta

Hice una solicitud para tomar el título y el artista que ahora se reproducen de una transmisión de radio por Internet, y lo veo en texto plano en esta página:

http://thelisthq.net/z1035.php

El resultado es simplemente un comando php 'echo $ variable', pero $ variable cambia constantemente, entonces, ¿cómo almaceno cada valor diferente de $ variable en una base de datos? El plan final es mantener una lista de todas las canciones que se reproducen durante un cierto período de tiempo.

¿Fue útil?

Solución

Tendrá que configurar el script php para que se ejecute cada x minutos más o menos, y en lugar de repetir el resultado, verifique la entrada de la base de datos más reciente con la canción que se está reproduciendo actualmente y, si es diferente, agregue un nuevo registro .

Primero, algunos SQL para configurar una nueva tabla:

CREATE TABLE SongList (
    ID int primary key auto_increment not null,
    Song char(255) not null,
    PlayTime Datetime not null
);

Luego, modifique su script PHP para insertar registros en la base de datos en lugar de hacer eco en la pantalla:

<?php
$song = get_song(); //not sure how you're doing that
$sql = "SELECT Song FROM SongList ORDER BY PlayTime DESC LIMIT 1";
list($prevSong) = mysql_fetch_row(mysql_query($sql));
if ($song !== $prevSong) {
    $sql = "INSERT INTO SongList (Song, PlayTime) VALUES ('$song', NOW())";
    mysql_query($sql);
}
?>

Configure una tarea programada o un trabajo cron para ejecutar php -f z1035.php cada minuto.

Para ver la lista completa de canciones, cree un nuevo archivo php station_history.php

<html>
<body>
<pre>
<?php
$sql = "SELECT Song, PlayTime FROM SongList LIMIT 20"; // Just the last 20 songs
$result = mysql_query($sql);
while(list($song, $playtime) = mysql_fetch_row($result)) {
    echo "[$playtime] $song\n";
}
?>
</pre>
</body>
</html>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top