Externe json-URL in txt-Datei umwandeln
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
album
apfel
array
artist
ausgabe
beispiel
dank
datei
fehler
fehlermeldung
format
frage
image
list
objekt
rock
song
string
umlaut
winter
-
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$url = 'http://icepool.silvacast.com/onair.xsl?mount=/RADIOPALOMA.mp3';
$contents = file_get_contents($url);
$contents = utf8_encode($contents);
$results = json_decode($contents);
print $results->{'now'}->{'title'};
?>
Du nimmst den String "onair({"now":{"title":"xxx - yyy"}});" und versuchst den als json zu parsen um an die objekte zu kommen.
Von dem String ist aber nur {"now":{"title":"xxx - yyy"}} json und der Rest eben Abfall. Kein Wunder das das nicht geht, es wurde ja nicht entfernt. Also muss das da raus und dafür gibt es tausende Varianten wie du den String bearbeiten kannst. (substr, str_replace, strpos,preg_replace sind einige der Tools die du da nutzen könntest.) Mit str_replace wird die Sache recht kurz, aber wenig universell sollte sich da mal was ändern.
$a = str_replace(array('onair(',');'),"",$a); //Ersetzt onair( und oder ); gehen "" (nichts) in $a
Und dann wie gehabt, parsen und auswerten.
Beitrag zuletzt geändert: 27.12.2018 16:07:11 von horstexplorer -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
OK, danke für den Anfang reicht es erstmal. Die Titelanzeige funktioniert jetzt, abgesehen von den Umlauten. Ich tippe mal, an den Umlauten kann ich nichts mehr löten, da es eine externe Quelle ist, auf die ich keinen Zugriff habe. Es sind nämlich einige Titelanzeigen bei den Umlauten fehlerhaft, einige andere wiederum fehlerfrei, in Einzelfällen wird auf Umlaute völlig verzichtet, und stattdessen ae, oe, ue und ss verwendet.
-
kurzmitteilungsservice schrieb:
OK, danke für den Anfang reicht es erstmal. Die Titelanzeige funktioniert jetzt, abgesehen von den Umlauten. Ich tippe mal, an den Umlauten kann ich nichts mehr löten, da es eine externe Quelle ist, auf die ich keinen Zugriff habe. Es sind nämlich einige Titelanzeigen bei den Umlauten fehlerhaft, einige andere wiederum fehlerfrei, in Einzelfällen wird auf Umlaute völlig verzichtet, und stattdessen ae, oe, ue und ss verwendet.
Wenn das schon im json/xml so steht ist das gewollt. Aber auch hier hilft dir str_replace() weiter. Einfach ae gegen ä, oe gegen ö und ue gegen ü ersetzen ;) ss für ß wird eher problematisch da es ja Wörter gibt welche mit ss vorkommen.
Beitrag zuletzt geändert: 30.12.2018 13:13:34 von horstexplorer -
Das, was ihr übrigens mit dem "onair"-Gedöns meint nennt sich JSONP und hat durchaus eine Daseinsberechtigung. Damit kannst du das z.B. einfach via dem Script-Tag einbinden. Dadurch wird dann deine Funktion "onair" aufgerufen und du kannst das z.B. dynamisch iwo anzeigen. Also ohne den Umweg über PHP.
Edith sagt: Es gibt übrigens auch einfach Songs, die keine Umlaute im Namen haben. Da muss man sich halt überlegen ob das "schön" aussehen soll oder ob man die echten Daten vom Interpreten nimmt.
Beitrag zuletzt geändert: 31.12.2018 12:51:43 von muellerlukas -
Hallo und schönes neues Jahr!
Den Verzicht auf die Umlaute finde ich auch nicht so schlimm. Da sieht sowas hier deutlich hässlicher aus:
https://www.berliner-radiosender.de/maxxfmtitel.php
Übrigens werden bei der originalen json-Datei in diesem Beispiel die Umlaute im Browser korrekt angezeigt!
EDIT:
muellerlukas schrieb:
Das, was ihr übrigens mit dem "onair"-Gedöns meint nennt sich JSONP und hat durchaus eine Daseinsberechtigung. Damit kannst du das z.B. einfach via dem Script-Tag einbinden. Dadurch wird dann deine Funktion "onair" aufgerufen und du kannst das z.B. dynamisch iwo anzeigen. Also ohne den Umweg über PHP.
Der Radiobetreiber hat tatsächlich die Titelanzeige via Javascript eingebunden. Damit ist die Quelle direkt im Quelltext auffindbar und muss nicht über die Netzwerkanalyse rausgesucht werden.
Beitrag zuletzt geändert: 2.1.2019 15:46:29 von kurzmitteilungsservice -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage