Question

J'ai créé une application pour extraire le titre et l'artiste actuellement diffusés d'un flux de radio Internet, et je l'ai affichée en texte brut sur cette page:

http://thelisthq.net/z1035.php

La sortie est simplement une commande php 'echo $ variable', mais $ variable change constamment, alors comment puis-je stocker chaque valeur différente de $ variable dans une base de données. La fin a l'intention de conserver une liste de toutes les chansons jouées sur une certaine période.

Était-ce utile?

La solution

Vous devrez configurer le script php pour qu'il s'exécute toutes les x minutes environ et au lieu de reproduire le résultat, vérifiez l'entrée la plus récente de la base de données par rapport à la chanson en cours de lecture et, si elle est différente, ajoutez un nouvel enregistrement. .

Premièrement, quelques instructions SQL pour configurer une nouvelle table:

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

Modifiez ensuite votre script PHP pour insérer des enregistrements dans la base de données au lieu de s'afficher à l'écran:

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

Configurez une tâche planifiée ou un travail cron pour exécuter php -f z1035.php toutes les minutes.

Pour voir la liste complète des chansons, créez un nouveau fichier 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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top