Hallo Leute,
ich benötige Hilfe von den PHP'lern unter euch.
In meinem Projekt würde ich gerne die Musikauswahl dynamischer gestalten.
Bisher läuft das so ab:
Mit HTML habe ich n (beispielhaft 3) Buttons:
<form action="" method="post">
<div class=fontinfo>
<br>
<button class=Button1 type=submit name="1415663820">Irish Folk</button>
</div>
</form>
<form action="" method="post">
<div class=fontinfo>
<br>
<button class=Button1 type=submit name="1415663840">Reggae</button>
</div>
</form>
<form action="" method="post">
<div class=fontinfo>
<br>
<button class=Button1 type=submit name="1415663853">Bob Marley</button>
</div>
</form>
Alles anzeigen
Welcher Button gedrückt wurde, wird oberhalb des HTML-Codes von PHP abgefangen. Je nach Button werden verschiedene Skripte aufgerufen.
if (isset($_POST['1415663820'])) { shell_exec("sudo bash '/var/www/folk.sh'"); }
if (isset($_POST['1415663840'])) { shell_exec("sudo bash '/var/www/reggae.sh'"); }
if (isset($_POST['1415663853'])) { shell_exec("sudo bash '/var/www/marley.sh'"); }
Ziemlich statisch also. Nun will ich in /var/www nicht unzählige Skripte fürs Starten verschiedener Sender, sondern nur noch eines.
Soweit sogut - Hierfür habe ich also eine Datei namens list mit den Infos zu den Sendern erstellt:
Datenformat: Postvalue;Buttonbeschriftung;Befehlfuermplayer
1415663820;Irish Folk;http://laut.fm/irish-folk
1415663840;Reggae;http://laut.fm/jahfari
1415663853;Bob Marley;- shuffle /home/pi/Musik/Marley/*
Weiterhin gibt es dann nun ein Skript musik.sh, welches (über PHP und shell_exec) als Parameter die Infos zur gewünschten Musikquelle (in Form von Parametern fuer den mplayer) erhalten soll:
#! /bin/bash
#Etwaige Musik beenden
pkill mplayer
#Steckdosenstatus merken
echo 'an' | sudo tee -a > /home/pi/.dose2
#Verstaerker an
sudo /home/pi/raspberry-remote/send 10100 2 1 > /dev/null 2>&1 &
#Musik starten
mplayer $1 > /dev/null 2>&1 &
Alles anzeigen
Stümperhaft habe ich es mit PHP hinbekommen, die Quelldatei list zeilenweise auszulesen und die für die Erstellung der Buttons notwendigen Infos in Variablen abzulegen:
(Mehr bash als PHP )
<?php
//Senderanzahl
$lines = shell_exec("wc -l <list");
//Zaehler
$i = 1;
//Fuer jede Zeile
while ($i <= $lines) {
//Postvalue
$postvalue = shell_exec('sed -n ""'.$i.'" p" "list" | cut -d ";" -f1');
//Buttontitle
$buttontitle = shell_exec('sed -n ""'.$i.'" p" "list" | cut -d ";" -f2');
//Musiksource
$musicsource = shell_exec('sed -n ""'.$i.'" p" "list" | cut -d ";" -f3');
//Ausgabe
echo "Sender $i:\n Uebergabewert:$postvalue Buttonbezeichnung:$buttontitle Musikquelle:$musicsource\n";
//Inkrement
$i++;
}
?>
Alles anzeigen
Jetzt fehlt mir leider ein wenig der Ansatz, wie ich die PHP/HTML Sache so gestalten kann, dass PHP im Endeffekt dynamisch den Code fuer die Buttons erstellt und auch erkennt, welcher gedrückt wurde.
Bis dahin:thumbs1: