kostenloser Webspace werbefrei: lima-city


Externe json-URL in txt-Datei umwandeln

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    kurzmitteilungsservice

    Kostenloser Webspace von kurzmitteilungsservice

    kurzmitteilungsservice hat kostenlosen Webspace.

    Hallo, liebe Forengemeinde,

    für meine Webseite Berliner-Radiosender.de nutze ich einen Webradioplayer, der eine Songtitelanzeige von einer externen URL unterstützt. Leider funktioniert dieses Feature nicht richtig bei externen json-URLs, wie an diesem Beispiel erkennbar ist:
    https://www.berliner-radiosender.de/fluxfm.html

    Der Entwickler des Webradioplayers empfiehlt mir, ein PHP-Script zu schreiben, das die json-URL ausliest und dann dem Player präsentiert. Ich habe auch recht schnell PHP-Vorlagen gefunden, die aber offensichtlich bei externen oder dynamischen json-Dateien nicht funktionieren:
    https://www.taniarascia.com/how-to-use-json-data-with-php-or-javascript/
    https://www.w3schools.com/js/js_json_php.asp
    https://www.w3schools.com/js/js_json_parse.asp
    Bei PHP kommt eine 500-Fehlermeldung, und bei JavaScript wird nichts oder "undefined" ausgegeben.

    Beispiel:
    <?php
    
    $url = 'https://scraper2.onlineradiobox.com/de.powerradiode'; // path to your JSON file
    $data = file_get_contents($url); // put the contents of the file into a variable
    $characters = json_decode($data); // decode the JSON feed
    
    echo $characters->title;
    }
    ?>


    Hat jemand eine Idee? Neben einer PHP-Ausgabe sind alternativ auch die Formate txt, html und jsp möglich.

    Viele Grüße Michael
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. horstexplorer

    horstexplorer hat kostenlosen Webspace.

    http://php.net/manual/de/function.json-decode.php

    Da gibts einige Beispiele.

    https://scraper2.onlineradiobox.com/de.powerradiode

    { "alias":"de.powerradiode","updated":1545206960,"stationId":642,"title":"PR JINGLE CHOR POTSDAM 102 1 MHZ - Power Radio"}


    <?php 
    $contents = file_get_contents($url); 
    $contents = utf8_encode($contents); 
    $results = json_decode($contents);
    print $results->{'title'};
    ?>

    oder so ähnlich.

    Beitrag zuletzt geändert: 19.12.2018 10:05:31 von horstexplorer
  4. kurzmitteilungsservice schrieb:
    Bei PHP kommt eine 500-Fehlermeldung, und bei JavaScript wird nichts oder "undefined" ausgegeben.

    Dein Code funktioniert lokal bei mir einwandfrei. Wenn auch die Antwort einige (so an die 10 dürften das schon sein) Sekunden braucht. Möglicherweise läufst du da in einen Timeout, hast die Fehlermeldungen abgeschalten und bekommst deswegen einen 500er.
    Du kannst ja mal probieren via stream_context_create() einen neuen Stream zu erstellen, den Timeout davon hochsetzen und dann den Stream deinem file_get_contents() zu übergeben. Oder du bastelst dir was mit curl zusammen.
  5. Autor dieses Themas

    kurzmitteilungsservice

    Kostenloser Webspace von kurzmitteilungsservice

    kurzmitteilungsservice hat kostenlosen Webspace.

    horstexplorer schrieb:

    <?php 
    $contents = file_get_contents($url); 
    $contents = utf8_encode($contents); 
    $results = json_decode($contents);
    print $results->{'title'};
    ?>

    oder so ähnlich.

    OK, danke! Jetzt funktioniert es. Offenbar war der fehlende utf8-Encode der Fehler.
    Wie gestaltet man die Ausgabe bei verschachtelten json-Dateien wie dieser hier:
    http://www.fluxfm.de/fluxfm-playlist/api.php?act=list&loc=berlin&cuttime=1&limit=3
    Wenn ich global nur den Dachtag "tracks" eingebe, werden nicht die kompletten Daten, sondern nur "Array" ausgegeben.

    Beitrag zuletzt geändert: 19.12.2018 14:46:24 von kurzmitteilungsservice
  6. kurzmitteilungsservice schrieb:
    Wenn ich global nur den Dachtag "tracks" eingebe, werden nicht die kompletten Daten, sondern nur "Array" ausgegeben.

    Du beantwortest dir die Frage schon fast selbst. Es ist ein Array. Entsprechend greifst du über z.B. [0]->title drauf zu.
    Du kannst übrigens bei json_decode auch sagen, dass du nur Arrays statt Objekte haben willst.
  7. Hi,

    hier der Code, um aus der json-Datei den Interpreten - Songtitel auszugeben...
    <?php 
    	$url = "http://www.fluxfm.de/fluxfm-playlist/api.php?act=list&loc=berlin&cuttime=1&limit=1";
    	$contents = file_get_contents($url); 
    	$contents = utf8_encode($contents); 
    	$results = json_decode($contents);
    	$song = $results->tracks[0]->artist." - ".$results->tracks[0]->title;
    	print( $song );
    ?>
  8. Autor dieses Themas

    kurzmitteilungsservice

    Kostenloser Webspace von kurzmitteilungsservice

    kurzmitteilungsservice hat kostenlosen Webspace.

    OK, vielen Dank, das hat mich schon viel weiter gebracht! :thumb:

    In zwei Fällen wird jedoch immer noch eine 500er-Fehlermeldung ausgegeben.
    <?php
    
    $url = 'https://www.mdr.de/XML/titellisten/jump_onair.json';
    $contents = file_get_contents($url); 
    $contents = utf8_encode($contents); 
    $results = json_decode($contents);
    $song = $results->Songs[0]->interpret." - ".$results->Songs[0]->title;
    print( $song );
    ?>


    <?php
    
    $url = 'https://mp3channels.webradio.de/metadata?&type=json&streamingChannel=rockantenne';
    $contents = file_get_contents($url); 
    $contents = utf8_encode($contents); 
    $results = json_decode($contents);
    $song = $results[0]->metadata-list[0]->metadata->artist." - ".$results[0]->metadata-list[0]->metadata->title;
    print( $song );
    ?>


    Und wie sieht es mit dem Auslesen von XML-Dateien aus? Ich habe da schon was probiert, allerdings wird hier nur der Bindestrich ausgegeben:
    <?php
    
    $url = 'https://www.rs2.de/node/playlist/1';
    $xml = simplexml_load_file($url);
    $xml = utf8_encode($xml); 
    $song = $xml->playlist->song->artist." - ".$xml->playlist->song->song;
    print $song;
    ?>


    Wo habe ich da die Fehler eingebaut?
  9. Erster Schritt allgemein wäre die Fehlerausgabe anzuschalten: https://www.lima-city.de/hilfe/ich-bekomme-einen-fehler-angezeigt-was-kann-ich-tun

    Wenn du dir dann $results via print_r ausgibst, stellst du fest, dass $results->Songs ein Objekt ist und du es damit nicht mit [0] ansprichst, sondern mit ->{0}.
    Vieleicht wäre es besser, wenn du erst mal json_decode anweist, dir alles als Array rauszuschmeißen. ;)

    Den 2. Quelltext habe ich jetzt nicht getestet. Was auf jeden Fall klar ist: Du musst den Inhalt vor der Übergabe an simplexml durch utf8_encode jagen. Das kann nur Strings. Nachdem du das an simplexml übergeben hast wird daraus aber ein Objekt. Damit wären wir dann schon bei OOP.
  10. Autor dieses Themas

    kurzmitteilungsservice

    Kostenloser Webspace von kurzmitteilungsservice

    kurzmitteilungsservice hat kostenlosen Webspace.

    OK, vielleicht sollte ich nicht in der Nacht programmieren, wenn ich übermüdet nach Hause komme...
    Der erste json-Fehler ist wenigstens gefixt, beim zweiten kommt immer noch eine 500er Fehlermeldung trotz Einbau des Error-Scripts in die Datei!!! Die Ausgabe von der json-Datei sieht aber auch merkwürdig aus:
    metadata-list	
    0	
    start	"0"
    metadata	"title=\"Slash ft. Myles Kennedy and the Conspirators - Driving rain\",artist=\"Slash ft. Myles Kennedy and the Conspirators\",url=\"http://rockantennedeutschland.rockantenne.de/rockantennedeutschland\""
    1	
    start	"63477"
    metadata	"title=\"ROCK ANTENNE - ROCK ANTENNE Deutschland\",artist=\"ROCK ANTENNE\",url=\"http://rockantennedeutschland.rockantenne.de/rockantennedeutschland\""
    2	
    start	"68466"
    metadata	"title=\"Tom Petty & The Heartbreakers - Learning to fly\",artist=\"Tom Petty & The Heartbreakers\",url=\"http://rockantennedeutschland.rockantenne.de/rockantennedeutschland\""


    Bei der XML-Datei stehe ich völlig auf dem Schlauch, da habe ich keine Idee, was ich da ändern soll. Ich habe einiges rumprobiert, es kommt immer nur der Bindestrich raus! :confused:
    Der Code sieht jetzt so aus:
    <?php
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    $url = 'https://www.rs2.de/node/playlist/1';
    $xml = utf8_encode($url); 
    $xml = simplexml_load_file($url);
    $song = $xml->playlist->song[0]->artist." - ".$xml->playlist->song[0]->song;
    print ( $song );
    ?>

    Die Ausgabe sieht so aus:
    Notice: Trying to get property of non-object in /home/webpages/lima-city/kurzmitteilungsservice/html/radioberlin/rs2titel.php on line 7

    Notice: Trying to get property of non-object in /home/webpages/lima-city/kurzmitteilungsservice/html/radioberlin/rs2titel.php on line 7
    -
  11. horstexplorer

    horstexplorer hat kostenlosen Webspace.

    Man kann die Funktionsweise recht gut an Wikipedia testen:

    https://de.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xml&&titles=Apfel

    https://de.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=json&&titles=Apfel

    XML
    <?php
    $url = 'https://de.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xml&&titles=Apfel';
    $xml = utf8_encode($url); 
    $xml = simplexml_load_file($url);
    
    echo $xml->query->pages->page->revisions->rev;
    ?>

    JSON
    <?php
    $url = 'https://de.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=json&&titles=Apfel';
    $contents = file_get_contents($url); 
    $obj = json_decode($contents);
    
    echo $obj->{'query'}->{'pages'}->{'424'}->{'revisions'}[0]->{'*'};
    ?>


    Sollte beides in etwa so etwas zurück geben:

    '''Apfel''' bezeichnet eine Frucht bzw. einen Baum: * [[Kulturapfel]], die Früchte der Art ''Malus domestica'', siehe auch [[Liste der Apfelsorten]] * [[Äpfel]], allgemein eine Pflanzengattung (''Malus'') von Kernobstgewächsen innerhalb der Familie der Rosengewächse * [[Apfelfrucht]], eine Sonderform der Sammelbalgfrüchte in der Pflanzenmorphologie * [[Apfel (Heraldik)]] Anderes: * [[Grube Apfel]], stillgelegtes Bergwerk in Nordrhein-Westfalen * [[Apfel (Erzählungen)]], Sammlung von Erzählungen und Episoden von Michael Schulte '''Apfel''' ist der Familienname folgender Personen: * [[Alfred Apfel]] (1882–1941), deutscher Rechtsanwalt, Verbandsfunktionär und Schriftsteller * [[Arthur Apfel]] (1922–2017), britischer Eiskunstläufer * [[Ernst Apfel]] (1925–2002), deutscher Musikwissenschaftler * [[Holger Apfel]] (* 1970), ehemaliger deutscher Politiker (NPD) * [[Iris Apfel]] (* 1921), US-amerikanische Designerin und Stilikone * [[Oscar Apfel]] (1878–1938), US-amerikanischer Stumm- und Tonfilmschauspieler * [[Rahel Apfel]] (1857–1912), deutsche Schriftstellerin, Lyrikerin und Zionistin, Mutter von Alfred Apfel '''Siehe auch:''' {{Wiktionary}} {{Wikiquote}} * [[Appel (Begriffsklärung)]] * [[Apple (Begriffsklärung)]] * [[Front Deutscher Äpfel]], eine politisch-satirische Organisation {{Begriffsklärung}}


    Was dabei evtl auffällt, <api> muss nicht extra aufgerufen werden, es ist einfach das erste Element was unter $xml ist. Selbiges so ähnlich bei json. (Das ist zufällig auch das was bei deinem xml den Fehler verursacht :wink:)

    Beitrag zuletzt geändert: 22.12.2018 15:50:49 von horstexplorer
  12. Autor dieses Themas

    kurzmitteilungsservice

    Kostenloser Webspace von kurzmitteilungsservice

    kurzmitteilungsservice hat kostenlosen Webspace.

    Bei der Referenz-XML von Wikipedia ist auch eine schöne, korrekte Baumstruktur vorhanden, jeder Ast öffnet mit einem "-". Dieser eröffnende "-" fehlt hier aber ausgerechnet beim Songtitel:
    -<playlist timestamp="1545491094344" channelid="1">
     -<song>
      <artist>EURYTHMICS</artist>
      <song id="35">WINTER WONDERLAND</song>
     -<itunes_url>https://itunes.apple.com/de/album/winter-wonderland/61742056?i=61742077&l=en&uo=4&at=10lv8o</itunes_url>
     -<itunes_cover>https://www.rs2.de/resources/images/cover/2/7/c/27ca29719079355b9e0b5d56fa8f9ed2be766375eea737dfd6fc7f8cd88caffc.jpg</itunes_cover>
     -<cover>https://www.rs2.de/resources/images/cover/1/d/6/1d650f5810b96c14e63b95e0b2e5f0844f07e8ff95a2525551a015c2794eedb7.jpg</cover>
      </song>
     </playlist>
  13. horstexplorer

    horstexplorer hat kostenlosen Webspace.

    kurzmitteilungsservice schrieb:
    Bei der Referenz-XML von Wikipedia ist auch eine schöne, korrekte Baumstruktur vorhanden, jeder Ast öffnet mit einem "-". Dieser eröffnende "-" fehlt hier aber ausgerechnet beim Songtitel:
    -<playlist timestamp="1545491094344" channelid="1">
     -<song>
      <artist>EURYTHMICS</artist>
      <song id="35">WINTER WONDERLAND</song>
     -<itunes_url>https://itunes.apple.com/de/album/winter-wonderland/61742056?i=61742077&l=en&uo=4&at=10lv8o</itunes_url>
     -<itunes_cover>https://www.rs2.de/resources/images/cover/2/7/c/27ca29719079355b9e0b5d56fa8f9ed2be766375eea737dfd6fc7f8cd88caffc.jpg</itunes_cover>
     -<cover>https://www.rs2.de/resources/images/cover/1/d/6/1d650f5810b96c14e63b95e0b2e5f0844f07e8ff95a2525551a015c2794eedb7.jpg</cover>
      </song>
     </playlist>

    Funktioniert trotzdem, wenn ichs nicht falsch sehe.
    https://horstexplorer.lima-city.de/test/00002.php

    <?php
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    $url = 'https://www.rs2.de/node/playlist/1';
    $xml = utf8_encode($url); 
    $xml = simplexml_load_file($url);
    $song = $xml->song[0]->artist." - ".$xml->song[0]->song;
    print ( $song );
    ?>


    //Edit
    Ich frage mich wo bei dir diese Striche auftauchen, in der Quelle sind sie nicht dabei:
    <?xml version='1.0' encoding='utf-8'?>
    <playlist timestamp="1545486703355" channelid="1"><song><artist>JOHN LEGEND</artist><song id="3429">BRING ME LOVE</song><itunes_url>https://itunes.apple.com/de/album/bring-me-love/1439836400?i=1439836408&amp;l=en&amp;uo=4&amp;at=10lv8o</itunes_url><itunes_cover>https://www.rs2.de/resources/images/cover/0/e/8/0e8fac06c8b1c3349915c31589899b428223c8f53d71ff068d3b04b31f886f4b.jpg</itunes_cover><cover>https://www.rs2.de/resources/images/cover/2/f/e/2fe7767ee0d1de8aafccac4f8ee424e46fadcf9391f71312832b384bf17afffc.jpg</cover></song><song><artist>AMY GRANT</artist><song id="96">ROCKIN' AROUND THE CHRISTMAS TREE</song><itunes_url>https://itunes.apple.com/de/album/rockin-around-the-christmas-tree/715566378?i=715566949&amp;l=en&amp;uo=4&amp;at=10lv8o</itunes_url><itunes_cover>https://www.rs2.de/resources/images/cover/b/0/d/b0dcce86207000a950942d30742aa99c1181e144ec0666d1d7a1b20861943a4a.jpg</itunes_cover><cover>https://www.rs2.de/resources/images/cover/4/c/a/4ca94cca957d575e1c5cd4e1f114880aae4ee9e4d39b7d42175fc2f77a3cbae5.jpg</cover></song><song><artist>WHAM</artist><song id="17">LAST CHRISTMAS</song><itunes_url>https://itunes.apple.com/de/album/last-christmas-single-version/202117886?i=202117984&amp;l=en&amp;uo=4&amp;at=10lv8o</itunes_url><itunes_cover>https://www.rs2.de/resources/images/cover/f/0/e/f0e1946dafa2d80fc71a534f8a841c2cb062b7cac7e3b3c37effc1299f86dd6b.jpg</itunes_cover><cover>https://www.rs2.de/resources/images/cover/8/6/6/866e914bae26aec4504d83e08dffd70e05f049718fbab039778060d51326f92c.jpg</cover></song></playlist>


    Beitrag zuletzt geändert: 22.12.2018 23:51:53 von horstexplorer
  14. Autor dieses Themas

    kurzmitteilungsservice

    Kostenloser Webspace von kurzmitteilungsservice

    kurzmitteilungsservice hat kostenlosen Webspace.

    horstexplorer schrieb:
    Funktioniert trotzdem, wenn ichs nicht falsch sehe.
    https://horstexplorer.lima-city.de/test/00002.php

    Ja, funktioniert jetzt auch bei mir. Danke für Deine Mühe! :thumb:
    horstexplorer schrieb:

    //Edit
    Ich frage mich wo bei dir diese Striche auftauchen, in der Quelle sind sie nicht dabei:
    <?xml version='1.0' encoding='utf-8'?>
    <playlist timestamp="1545486703355" channelid="1"><song><artist>JOHN LEGEND</artist><song id="3429">BRING ME LOVE</song><itunes_url>https://itunes.apple.com/de/album/bring-me-love/1439836400?i=1439836408&amp;l=en&amp;uo=4&amp;at=10lv8o</itunes_url><itunes_cover>https://www.rs2.de/resources/images/cover/0/e/8/0e8fac06c8b1c3349915c31589899b428223c8f53d71ff068d3b04b31f886f4b.jpg</itunes_cover><cover>https://www.rs2.de/resources/images/cover/2/f/e/2fe7767ee0d1de8aafccac4f8ee424e46fadcf9391f71312832b384bf17afffc.jpg</cover></song><song><artist>AMY GRANT</artist><song id="96">ROCKIN' AROUND THE CHRISTMAS TREE</song><itunes_url>https://itunes.apple.com/de/album/rockin-around-the-christmas-tree/715566378?i=715566949&amp;l=en&amp;uo=4&amp;at=10lv8o</itunes_url><itunes_cover>https://www.rs2.de/resources/images/cover/b/0/d/b0dcce86207000a950942d30742aa99c1181e144ec0666d1d7a1b20861943a4a.jpg</itunes_cover><cover>https://www.rs2.de/resources/images/cover/4/c/a/4ca94cca957d575e1c5cd4e1f114880aae4ee9e4d39b7d42175fc2f77a3cbae5.jpg</cover></song><song><artist>WHAM</artist><song id="17">LAST CHRISTMAS</song><itunes_url>https://itunes.apple.com/de/album/last-christmas-single-version/202117886?i=202117984&amp;l=en&amp;uo=4&amp;at=10lv8o</itunes_url><itunes_cover>https://www.rs2.de/resources/images/cover/f/0/e/f0e1946dafa2d80fc71a534f8a841c2cb062b7cac7e3b3c37effc1299f86dd6b.jpg</itunes_cover><cover>https://www.rs2.de/resources/images/cover/8/6/6/866e914bae26aec4504d83e08dffd70e05f049718fbab039778060d51326f92c.jpg</cover></song></playlist>

    Stimmt, die Striche tauchen nur im Browser auf, nicht beim Kopieren der Datei. Ich hatte mich darüber schon gewundert. Beim Probieren habe ich nun festgestellt, dass sie nur die Funktion des Schließens des Codeabschnitts haben, und dann aus "-" "+" wird. Autsch, da hätte ich früher drauf kommen können! :redface:
    horstexplorer schrieb:
    Was dabei evtl auffällt, <api> muss nicht extra aufgerufen werden, es ist einfach das erste Element was unter $xml ist. Selbiges so ähnlich bei json. (Das ist zufällig auch das was bei deinem xml den Fehler verursacht :wink:)

    Das ist mir bei einer anderen XML-Datei auch aufgefallen. Fehlermeldung mit komplettem Code, einwandfreie Darstellung, wenn ich den ersten Codeabschnitt weglasse. So ganz verstehe ich nicht, warum das so ist, aber in HTML gibt es auch einige unlogische Tags, von daher ist das erstmal in Ordnung. :smile:


    Heute wurde ich mit einer neuen Fehlermeldung überrascht:
    Fatal error: Cannot use object of type stdClass as array in /home/webpages/lima-city/kurzmitteilungsservice/html/radioberlin/bobtitel.php on line 9

    Der Code sieht dabei so aus:
    <?php
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    
    $url = 'https://stream-service.loverad.io/v4/bob_he';
    $contents = file_get_contents($url); 
    $contents = utf8_encode($contents); 
    $results = json_decode($contents);
    $song = $results[1]->artist_name." - ".$results[1]->song_title;
    print( $song );
    ?>


    Ich wünsche Euch allen schon mal schöne Festtage.
  15. horstexplorer

    horstexplorer hat kostenlosen Webspace.

    Schöne Feiertage auch von mir

    Da json schon unübersichtlich ist, hilft eventuell sowas um die Struktur besser zu erkennen.
    https://jsonformatter.org


    {
    "1": {
    "stream": "BOB Livestream",
    "station_id": 9,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "2": {
    "stream": "Classic Rock",
    "station_id": 16,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "3": {
    "stream": "Alternative Rock",
    "station_id": 15,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "4": {
    "stream": "Harte Saite",
    "station_id": 14,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "5": {
    "stream": "Christmas Rock",
    "station_id": 76,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "6": {
    "stream": "ACDC",
    "station_id": 72,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "7": {
    "stream": "Deutschrock",
    "station_id": 81,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "8": {
    "stream": "80er Rock",
    "station_id": 97,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "9": {
    "stream": "90er Rock",
    "station_id": 98,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "10": {
    "stream": "Best of Rock",
    "station_id": 96,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "11": {
    "stream": "Wacken",
    "station_id": 135,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "12": {
    "stream": "Rock Hits",
    "station_id": 95,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "13": {
    "stream": "Metal",
    "station_id": 99,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "14": {
    "stream": "Punk",
    "station_id": 103,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "15": {
    "stream": "Grunge",
    "station_id": 102,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "16": {
    "stream": "Hardrock",
    "station_id": 101,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "17": {
    "stream": "Festival",
    "station_id": 105,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "18": {
    "stream": "Gothic",
    "station_id": 235,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "19": {
    "stream": "Mittelalter Rock",
    "station_id": 234,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "20": {
    "stream": "Queen",
    "station_id": 132,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "21": {
    "stream": "Southern Rock",
    "station_id": 267,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "22": {
    "stream": "Rockabilly",
    "station_id": 104,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "23": {
    "stream": "Kuschelrock",
    "station_id": 106,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    },
    "24": {
    "stream": "Singer & Songwriter",
    "station_id": 100,
    "song_title": "",
    "artist_name": "",
    "covers": ""
    }
    }



    Ich kann es leider gerade nicht testen aber ich würde eher sagen das es so funktioniert (wie nach dem Wikipedia Beispiel).
    $song = $results->{'1'}->{'artist_name'}.......


    Beitrag zuletzt geändert: 24.12.2018 15:31:17 von horstexplorer
  16. Autor dieses Themas

    kurzmitteilungsservice

    Kostenloser Webspace von kurzmitteilungsservice

    kurzmitteilungsservice hat kostenlosen Webspace.

    Nee, leider nicht, es kommt die gleiche Fehlermeldung. Das macht mich ja vor allem deshalb ratlos, weil ja vergleichbare json-Dateien, die sogar noch komplexer sind, funktionieren. Hier sind es ja nur zwei Ebenen. :confused:
  17. Der Code von Horschtl stimmt schon so. Läuft auf dem Testsystem auch problemlos. Wie schaut denn dein angepasster Code aus?
  18. Mein Testcode:
    <?php 
    
    // Ausgabe json-Datei
    	$url = "http://www.fluxfm.de/fluxfm-playlist/api.php?act=list&loc=berlin&cuttime=1&limit=1";
    	$contents = file_get_contents($url); 
    	$contents = utf8_encode($contents); 
    	$results = json_decode($contents);
    	$song = $results->tracks[0]->artist." - ".$results->tracks[0]->title;
    	print( "<h1>Ausgabe: fluxfm-playlist/api.php</h1><p>$song</p>" );
    	
    // Ausgabe xml-Datei	
    	$url = 'https://www.rs2.de/node/playlist/1';
    	$xml = json_decode(utf8_encode(json_encode(simplexml_load_file($url))));
    	$song = $xml->song[0]->artist." - ".$xml->song[0]->song;
    	print( "<h1>Ausgabe: playlist/1</h1><p>$song</p>");
    ?>
  19. Autor dieses Themas

    kurzmitteilungsservice

    Kostenloser Webspace von kurzmitteilungsservice

    kurzmitteilungsservice hat kostenlosen Webspace.

    muellerlukas schrieb:
    Der Code von Horschtl stimmt schon so. Läuft auf dem Testsystem auch problemlos. Wie schaut denn dein angepasster Code aus?

    Ich hätte mal den angepassten Code mal gleich posten sollen. Der Fehler ist mir jetzt beim Posten aufgefallen!
    <?php
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    
    $url = 'https://stream-service.loverad.io/v4/bob_he';
    $contents = file_get_contents($url); 
    $contents = utf8_encode($contents); 
    $results = json_decode($contents);
    $song = $results->{'1'}->{'artist_name'}." - ".$results{'1'}->{'song_title'};
    print( $song );
    ?>

    So soll es aussehen:
    <?php
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    
    $url = 'https://stream-service.loverad.io/v4/bob_he';
    $contents = file_get_contents($url); 
    $contents = utf8_encode($contents); 
    $results = json_decode($contents);
    $song = $results->{'1'}->{'artist_name'}." - ".$results->{'1'}->{'song_title'};
    print( $song );
    ?>

    Vielen Dank schonmal für Eure Mühen!
    Eine Titelanzeige bereitet mir noch Kopfzerbrechen, dann ist das Thema json und XML erstmal erledigt.
    <?php
    
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    $url = 'https://www.fritz.de/include/frz/zeitstrahl/nowonair.json';
    $contents = file_get_contents($url); 
    $contents = utf8_encode($contents); 
    $results = json_decode($contents);
    print $results->{'artist'}." - ".$results->{'title'};
    ?>

    Außerdem geben einzelne Radiostationen noch Titelanzeigen in dieser Art aus:
    {"timestamp":"1545519304","artist":"Travis","song":"WHY DOES IT ALWAYS RAIN ON ME","thumb_image":"https:\/\/lastfm-img2.akamaized.net\/i\/u\/174s\/807ccbbf98ac40319c2c221babbf29b5.png","wait":16,"change":0}

    https://www.paradiso.de/wp-admin/admin-ajax.php?action=check_playlist
    onair({"now":{"title":"Michael Wendler - Sie Liebt Den DJ"}});

    http://icepool.silvacast.com/onair.xsl?mount=/RADIOPALOMA.mp3
    Wie kann ich denn diese Titelanzeigen verarbeiten?
  20. horstexplorer

    horstexplorer hat kostenlosen Webspace.

    https://www.paradiso.de/wp-admin/admin-ajax.php?action=check_playlist
    Ganz normal JSON
    http://icepool.silvacast.com/onair.xsl?mount=/RADIOPALOMA.mp3
    Durch das onair(#) ist das ganze nicht mehr wirklich json. Aber da du ja einen String zurück bekommst, cutte dir doch den Teil einfach raus den du brauchst (oder entferne den den du nicht brauchst) :wink:
    https://www.fritz.de/include/frz/zeitstrahl/nowonair.json
    Wo ist da das Problem? Ist doch auch ganz normales JSON, ohne irgendwas kompliziertes bei den Werten.


    Beitrag zuletzt geändert: 26.12.2018 12:37:35 von horstexplorer
  21. Autor dieses Themas

    kurzmitteilungsservice

    Kostenloser Webspace von kurzmitteilungsservice

    kurzmitteilungsservice hat kostenlosen Webspace.

    horstexplorer schrieb:
    http://icepool.silvacast.com/onair.xsl?mount=/RADIOPALOMA.mp3
    Durch das onair(#) ist das ganze nicht mehr wirklich json. Aber da du ja einen String zurück bekommst, cutte dir doch den Teil einfach raus den du brauchst (oder entferne den den du nicht brauchst) :wink:

    Ich habe mal versucht, was daraus zu basteln:
    <?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'};
    ?>

    Raus kommt diese Fehlermeldung:
    Notice: Trying to get property of non-object in /home/webpages/lima-city/kurzmitteilungsservice/html/radioberlin/palomatitel.php on line 8

    horstexplorer schrieb:
    https://www.fritz.de/include/frz/zeitstrahl/nowonair.json
    Wo ist da das Problem? Ist doch auch ganz normales JSON, ohne irgendwas kompliziertes bei den Werten.

    Das habe ich auch gedacht! Aber für den Code...
    <?php
    
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    $url = 'https://www.fritz.de/include/frz/zeitstrahl/nowonair.json';
    $contents = file_get_contents($url); 
    $contents = utf8_encode($contents); 
    $results = json_decode($contents);
    print $results->{'t'}.": ".$results->{'artist'}." - ".$results->{'title'};
    ?>

    ...kommt die Meldung:
    Notice: Trying to get property of non-object in /home/webpages/lima-city/kurzmitteilungsservice/html/radioberlin/fritztitel.php on line 9
  22. 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!