Domanda

Ho fatto una domanda per prendere il titolo e l'artista in riproduzione da uno streaming radio su Internet e lo visualizzo in testo normale in questa pagina:

http://thelisthq.net/z1035.php

L'output è semplicemente un comando php 'echo $ variabile', ma $ variabile è in continua evoluzione, quindi come posso memorizzare ogni diverso valore di $ variabile in un database. Il fine prevede di tenere un elenco di tutte le canzoni che suonano per un certo periodo di tempo.

È stato utile?

Soluzione

Dovrai impostare lo script php in modo che venga eseguito ogni x minuti circa, e invece di fare eco al risultato, controlla la voce di database più recente rispetto al brano attualmente in riproduzione e, se è diverso, aggiungi un nuovo record .

Innanzitutto, alcuni SQL per impostare una nuova tabella:

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

Quindi, modifica lo script PHP per inserire i record nel database invece di fare eco allo schermo:

<?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);
}
?>

Imposta un'attività pianificata o un processo cron per eseguire php -f z1035.php ogni minuto.

Per vedere l'intero elenco di brani, crea un nuovo file 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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top