Musste noch etwas ändern, da TV MOVIE sich etwas neues hat einfallen lassen um das Skript zu sabotieren
Ich musste noch folgende Abfrage mit einbauen, da sonst keine Sendungen ausgespuckt werden, wenn TV MOVIE komische leere Felder einbaut, die das Skript durcheinander bringen und zum Abbruch verleiten…
if (is_string($item['title'])) {
}
else {
continue;
}
Enthält die Variable keinen String, dann soll der Datensatz des Arrays übersprungen werden und mit dem nächsten weitergemacht werden. So werden die leeren Blöcke im RSS-XML übersprungen und das Skript bricht nicht ab.
Neues Skript:
<?
// KONFIGURATION
$senderAnzahl = 1000; // Anzahl der anzuzeigenden Sender festlegen, oder für alle so lassen
$ausgabeVariable = 51610 /*[Hardware & Skripte\TV Programm\TV MOVIE\TV Programm Spielfilme jetzt]*/; // Hier die ID der String-Variable mit HTMLBox Profil eintragen (diese dann an gewünschte Stelle im WebFront verlinken)
$refreshtime = 900; // Aktualisiert die Daten alle 15 Minuten (bei Programm für 20.15 Uhr usw. reicht einmal am Tag
//$url='http://www.tvmovie.de/rss/tv2015.xml'; // TV Programm 20.15 Uhr
//$url='http://www.tvmovie.de/rss/tv2200.xml'; // TV Programm 22.00 Uhr
$url='http://www.tvmovie.de/rss/tvjetzt.xml'; // TV Programm JETZT
//$url='http://www.tvmovie.de/rss/tvtipps-spielfilm.xml'; // TV Programm SPIELFILME
// AB HIER NICHTS MEHR ÄNDERN
IPS_SetScriptTimer($IPS_SELF, $refreshtime);
$simpleXMLElement = simplexml_load_file($url);
$str = "<table width='auto'>";
// Datenausgabe
for($i=0; $i<$senderAnzahl; $i++)
{
$item = $simpleXMLElement->channel->item;
$item = xmlToArray($item[$i]);
if (is_string($item['title'])) {
}
else {
continue;
}
$titel = "<b style=color:#C00000;>".$item['title']."</b>";
$beschreibung = "<small>".$item['description']."</small>";
$text = $titel."<br>".$beschreibung."<br>";
$text = utf8_decode($text);
$searchArray = $item;
// IF-Abfrage, wenn Array zu Ende, dann abbrechen
if(isset($searchArray['enclosure']) != true) {
break;
}
if(array_key_exists('enclosure', $searchArray))
{
$image = $item['enclosure']['@attributes']['url'];
$str .= "<tr>";
$str .= "<td width='auto'height='80px'><div><img src=$image alt='not Found'></div></td>";
$str .= "<td width='980px'><div style='text-align:left; margin-left:10px;'>$text</div>";
$str .= "</td></tr>
";
}
else
{
$str .= "<tr>";
$str .= "<td></td><td width='980px'><div style='text-align:left; margin-left:10px;'>$text</div></td>";
$str .= "</tr>
";
}
}
$str .= "</table>
";
SetValue($ausgabeVariable, $str);
function xmlToArray($data)
{
if(is_object($data))
{
$data = get_object_vars($data);
}
return (is_array($data)) ? array_map(__FUNCTION__,$data) : $data;
}
?>
ich würde nochmal ~2 Tage abwarten, glaube nicht, dass die URL geändert wurde. Die haben vmtl. grad technische Probleme?! Nichts überstürzen
Schaut man nämlich mal direkt in die XML rein, sieht man, dass die zuletzt heute morgen generiert wurde…also hängt bei denen evtl. der Prozess um die XML neu zu generieren oder kein Plan…
Und wenn man mal auf die Webseite direkt geht und dann auf TV-Programm JETZT und schaut sich den Quellcode an, dann stimmt die XML-URL noch, also einfach abwarten und bald wird es wieder funktionieren
Ich habe das Script jetzt auch Mal bei mir laufen und soweit auch alles gut. Was mir aufgefallen ist, das Anführungszeichen und Bindestrich als Fragezeichen angezeigt wird. Ist euch das auch aufgefallen und wie löst man das Problem?
leider komme ich ohne Hilfe nicht weiter.
Ich nutze ein Android Tablet und würde mir gerne mit dem Skript aus Post #45 das TV-Programm anzeigen lassen.
Leider werden dabei die Bilder zu den Sendungen nicht angezeigt, zumindest auf meinem Android Tablet unter IPSView in einer HTML Box.
Im IPSWebFront wird alles korrekt dargestellt.
Hat jemand eine Idee wie ich das lösen kann oder kann es sein, dass es unter IPSView nicht funktioniert.
Ich kann im ersten Moment da jetzt nichts erkennen. Ich habe auch bei mir noch mal nachgeschaut, da werden die Grafiken sowohl auf Windows als auch Android angezeigt. Tritt das Phänomen mit den Grafiken nur bei der Seite auf dem Gerät auf oder noch wo anders?