kostenloser Webspace werbefrei: lima-city


Externe json-URL in txt-Datei umwandeln

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. horstexplorer

    horstexplorer hat kostenlosen Webspace.


    <?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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Autor dieses Themas

    kurzmitteilungsservice

    Kostenloser Webspace von kurzmitteilungsservice

    kurzmitteilungsservice hat kostenlosen Webspace.

    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.
  4. horstexplorer

    horstexplorer hat kostenlosen Webspace.

    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
  5. 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
  6. Autor dieses Themas

    kurzmitteilungsservice

    Kostenloser Webspace von kurzmitteilungsservice

    kurzmitteilungsservice hat kostenlosen Webspace.

    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
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!