online 1
gast (50)

/ Forum / Webseiten/HTML

Webseiten/HTMLWebseiten/HTML

Fragevon hitXLDaniel vom 21.02.2020, 10:56 Options

Lösung

Aktueller Songtitel auf Seite anzeigen lassen...

Hallo,

ich betreibe ein Webradio und habe zur Anzeige der Songtitel folgenden Codeschnipsel:


<SCRIPT type="text/javascript" SRC="http://djspinnercee.servemp3.com:32768/php-cgi/scaststatus_x.php?index=51&host=DEINE IP&port=DEIN PORT"></SCRIPT></div>

Habe das Script eingesetzt, aber es wird immer nur nach dem Reload der ganzen Seite der jeweils aktuelle Titel angezeigt. Wie kann man das Script dazu bringen, dass es nach 5 Sekunden reloadet und den tatsächlichen Songtitel anzeigt, ohne dass die komplette Seite aktualisiert wird?

Gruß
Daniel


Antwort schreiben

Antwort 21 von hitXLDaniel vom 26.02.2020, 12:35 Options

Hallo Flupo,

sodele, wieder da (..und verzweifelt).

Hab es mal versucht, Tabelle mit Zellen auf ein Hintergrundbild anzulegen...aber...naja...alles verschiebt sich....

Ich geb Dir mal den Link:

http://www.hitxl.de/testseite.html

Gruß
Daniel

Antwort 22 von Flupo vom 26.02.2020, 14:22 Options

Hmm. Frontpage halt. ;-)

Der Ansatz ist auch nicht ganz so glücklich.
Dein Hintergrundbild ist etwas groß geraten.
Besser ist es, den Hintergrund in kleinere Bilder zu zerschneiden und dann ins Layout einzupassen.
Ich bastele mal wieder einen Entwurf, denn du dann verfeinern darfst.

Gruß Flupo

Antwort 23 von Flupo vom 26.02.2020, 17:21 Options

So, auf die Schnelle: Klick!

Die Zerlegung des Hintergrundbildes bringt eine schnellere Ladezeit der Seite. In einem Stück ist die Datei 269 KB groß, die Teile zusammen 46 KB.

So richtig glücklich bin ich mit dem Tabellenlayout jedoch nicht. Du schnürst dir damit ein sehr enges Korsett, dass an jeder Ecke zu platzen droht. Selbst wenn du die Breiten und Höhen auf den Pixel genau ausrechnest, machen die Browser zum Teil sehr unterschiedliche Sachen daraus.

Meine Empfehlung: Investiere etwas Zeit und befasse dich mal mit Webdesign auf css-Basis. Du wirst sehen, das ist nicht so schwer, wie es sich anhört und macht dich deutlich flexibler.
Ich kann dir zum Lernen die Tutorials auf www.andreas-kalt.de empfehlen. Neben Webdesign mit CSS-Layout findest du dort auch das geheimnis gelüftet, wie man Boxen mit runden Ecken zaubert oder schöne Menüs mit Rollover-Effekten bastelt.

Gruß Flupo

Antwort 24 von hitXLDaniel vom 27.02.2020, 09:11 Options

Hallo Flupo,

danke erstmal...sieht schon so aus, wie es sein sollte.....werd mich mal dran machen. Problem ist halt nur, dass ich schon soviel machen muss bei dem Sender. Webdesign sollte nicht auch noch dazu kommen. Es gibt leider keinen, der sich um die Aktualisierung der Seite kümmern kann, da es schon ein sehr spezielles "Hobby" ist.

Aber, ich werd mal mein Glück versuchen.

Nochmal: Danke Dir:-)

Gruß
Daniel

Antwort 25 von hitXLDaniel vom 06.03.2020, 10:14 Options

Sodele, da bin ich wieder...

Wie bekannt, die Titelanzeige soll in einem iFrame dargestellt werden. Habe mittlerweile ein php-Script dazu erhalten. Die Titelanzeige funktioniert. Nur die Aktualisierung noch nicht. Das iFrame soll alle 15 Sekunden aktualisiert werden. Leider weiss ich nicht wie...

Hier das php-Script:


<?php
## hitXL Titelanzeige ##
$refresh = "15";
$server = "85.214.46.236"; //hier deinen server eintragen z.b. musik.de oder 213.61.885.8
$port = 8460; //hier den port eintragen (ist standard (autom. korrigiert) 8000)
$fp = @fsockopen($server, $port, $errno, $errstr, 30);

if ($fp) {
fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
while(!feof($fp))
$page .= fgets($fp, 1000);
fclose($fp);
$page = ereg_replace(".*<body>", "", $page);
$page = ereg_replace("</body>.*", ",", $page);
$numbers = explode(",", $page);
$shoutcast_currentlisteners = $numbers[0]; //variable ueber die aktuelle anzahl der zuhoerer
$connected = $numbers[1]; //variable zum anzeigen ob ein sender verbunden sind
if($connected == 1) {
$radio_status = 1; //variable zum anzeigen ob radio an ist oder nicht
$wordconnected = "yes"; //zusaetzliche variable die ich brauchte 
}
else
$wordconnected = "no"; //zusaetzliche variable die ich brauchte
$shoutcast_peaklisteners = $numbers[2]; //variable die die anzahl der peaks angiebt
$shoutcast_maxlisteners = $numbers[3]; //variable ueber die maximal moegliche anzahl der zuhoerer
$shoutcast_reportedlisteners = $numbers[4]; //
$shoutcast_bitrate = $numbers[5]; //bitrate 
$shoutcast_cursong = $numbers[6]; //aktueller song 
$shoutcast_curbwidth = $shoutcast_bitrate * $shoutcast_currentlisteners; //gesamtbandbreite
$shoutcast_peakbwidth = $shoutcast_bitrate * $shoutcast_peaklisteners; //gesamtpeakbandbreite
}

## output on ## 
echo '<html><title>hitXL Titelanzeige</title><body>';
if ($radio_status == 1) {
echo '<b><font color="#00FF00" <font face="arial" font size="1">on-AIR</font><font color="#6699FF" font face="arial" font size="1">: <marquee scrolldelay="10" width="250" scrollamount="2"><font color="#6699FF" font face="arial">' . $shoutcast_cursong . '</font></b><br/></marquee></span>';
} 
else {
echo '<marquee scrolldelay="10" width="290" scrollamount="2"><b><font color="#6699FF" font face="arial" font size="1">Wegen Serverarbeiten ist hitXL zur Zeit <font color="red" font face="arial">off-AIR</font>! Wir sind bald wieder für Euch da!</b></marquee></span>';
}
echo '</body></html>';
## output off ##
## hitXL Titelanzeige ##
?><body bgcolor="#1D4382" style="margin-top: 4">
<meta http-equiv="refresh" content="15; URL=http://www.hitxl.de/iframe.php">


Die Aktualisierung der Titelanzeige funktioniert nur etwa eine Stunde, dann erscheint in dem iFrame eine weisse Fläche...

Gruß
Daniel

Antwort 26 von Flupo vom 06.03.2020, 12:54 Options

Der Aufbau der erzeugten HTML-Datei stimmt nicht.
Die META-Angabe muss in den HEAD-Bereich, der bei dir ganz fehlt.

Korrigiere mal den letzten Abschnitt folgendermaßen:
## output on ## 
echo '<html><title>hitXL Titelanzeige</title>';
echo '<head><meta http-equiv="refresh" content="15;URL=http://www.hitxl.de/iframe.php"></head>';
echo '<body bgcolor="#1D4382" style="margin-top: 4">';
if ($radio_status == 1) {
echo '<b><font color="#00FF00" <font face="arial" font size="1">on-AIR</font><font color="#6699FF" font face="arial" font size="1">: <marquee scrolldelay="10" width="250" scrollamount="2"><font color="#6699FF" font face="arial">' . $shoutcast_cursong . '</font></b><br/></marquee></span>';
} 
else {
echo '<marquee scrolldelay="10" width="290" scrollamount="2"><b><font color="#6699FF" font face="arial" font size="1">Wegen Serverarbeiten ist hitXL zur Zeit <font color="red" font face="arial">off-AIR</font>! Wir sind bald wieder für Euch da!</b></marquee></span>';
}
echo '</body></html>';
## output off ##
## hitXL Titelanzeige ##
?>


Das Problem mit dem Zeilenumbruch im FF/Opera muss ich noch suchen, liegt aber wahrscheinlich in fehlerhafter Erzeugung des HTML-Codes durch das Script (z.b. </span> ohne <span>...).
Korrekturvorschlag dazu folgt.

Gruß Flupo

Antwort 27 von Flupo vom 06.03.2020, 13:38 Options

So, ich hab jetzt mal den ausgabeteil des Scriptes überarbeitet:
Das Zeilenumbruch-Problem liegt offensichtlich darin, dass <marquee> ein IE-typischer HTML-Tag ist und von den anderen nur "geduldet" wird. Die Umsetzung als Block-Element führt zum Umbruch. Ich habe das umgangen, indem ich den Text "ON-AIR" einfach mit in den Lauftext eingebunden habe.
Den Rest habe ich etwas vereinfacht und falsche bzw. überflüssige Teile entfernt.

## output on ##
echo '<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">';
echo '<html><title>hitXL Titelanzeige</title>';
echo '<head><meta http-equiv="refresh" content="15;URL=http://www.hitxl.de/iframe.php"></head>';
echo '<body bgcolor="#1D4382" style="margin-top: 4">';
if ($radio_status == 1) {
echo '<b> <marquee scrolldelay="10" width="250" scrollamount="2">';
echo '<font color="#00FF00" font face="arial" font size="1">on-AIR:&nbsp;';
echo '<font color="#6699FF">' . $shoutcast_cursong . '</font></font></marquee></b>';
echo '
}
else {
echo '<b><marquee scrolldelay="10" width="290" scrollamount="2">';
echo '<font color="#6699FF" font face="arial" font size="1">Wegen Serverarbeiten ist hitXL zur Zeit ';
echo '<font color="red">off-AIR!</font> Wir sind bald wieder für Euch da!</marquee></b>';
}
echo '</body></html>';
## output off ##


Ich hoffe, so gehts.

Gruß Flupo

Antwort 28 von Flupo vom 06.03.2020, 13:40 Options

OOPS. Eine falsche Zeile ist noch durchgerutscht.
echo '

muss noch raus.

Antwort 29 von hitXLDaniel vom 06.03.2020, 13:53 Options

Hallo Flupo,

Du bist ja echt der Knaller:-) Danke! Das läuft und läuft...ich teste gerade aus...

Dennoch, damit der Kasten, indem die Titelanzeige durchläuft, nicht ganz leer erscheint und man sofort erkennt, dass darin angezeigt wird, was läuft, sollte am Anfang der Geschichte schon ein statisches "on-AIR" stehen. kann man dies irgendwie lösen?

Gruß
Daniel

Antwort 30 von Flupo vom 07.03.2020, 09:18 Options

Das Problem mit dem Zeilenumbruch im FF/Opera lässt sich durch eine zweispaltige Tabelle lösen:
if ($radio_status == 1) {
echo <table  cellspacing="0" cellpadding="0"><tr> <td><b'';
echo '<font color="#00FF00" font face="arial" font size="1">on-AIR:</font></b></td>';
echo '<td><b> <marquee scrolldelay="10" width="250" scrollamount="2">';
echo '<font color="#6699FF" font face="arial" font size="1">' . $shoutcast_cursong . '</font>';
echo '</marquee></b> </td></tr></table>';
}

Der ELSE-Zweig kann so bleiben, wie er ist.

Gruß Flupo

Ähnliche Themen

Wie kann ich meinen Creative ZEN im Arbeitsplatz anzeigen lassen???
Vini  02.10.2007 - 155 Hits - 4 Antworten

Hilfe, nur eine vorgegebene Seite im Internetexplorer anzeigen lassen!
Hilfesuchender  03.04.2008 - 13 Hits - 1 Antwort

picaso@google größere Bilder anzeigen lassen
marco1977  27.06.2008 - 52 Hits -

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026