[PHP] Json interpreter Fehler?

  • Hey Community,


    ich habe irgendwie ein Problem mit JSON...
    Hier mal mein Code, der heute morgen merkwürdigerweise noch zu 100% funktioniert hat:

    PHP
    <?php
    $bla = str_replace("<?php exit; ?>", "", file_get_contents("messages.php"));
    echo $bla; // Debug 1
    $array = json_decode($bla, true);
    print_r($array); // Debug 2
    ?>


    Komischerweise ist $array aber leer (= keine Ausgabe),obwohl folgende Ausgabe getätet wird ($bla != leer):

    Zitat

    {"all":"test"}


    Danach hab ich mal versucht den Inhalt der Datei direkt in den Befehl einzugeben ungefähr so:

    PHP
    $array = json_decode('{"all":"test"}', true);
    print_r($array); // Debug 2


    Und wär hätte es gedacht?
    Auf einmal gibt es folgende Ausgabe:

    Zitat

    Array ( [all] => test )


    Es kommen keine PHP Errors, weiß vielleicht einer woran genau es liegen kann?

  • versuch ma


    PHP
    <?php
    $array = json_decode(file_get_contents("messages.php"), true);
    print_r($array); // Debug 2
    ?>

    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.

  • In der Datei steht dies drinnen :

    Zitat

    <?php exit; ?>{"all":"test"}


    Und funktioniert eben falls nicht.


    PHP
    <?php
    $array = json_decode(file_get_contents("messages.php"), true);
    print_r($array); // Debug 2
    ?>


    Auch deine Variante habe ich ausprobiert, und habe auch von der Datei das "<?php exit; ?>" raus genommen.
    Und es funktioniert nicht.

  • Du bekommst mit file_get_contents nicht die ausgabe, die du im Browser sehen wolltest sondern das was in der datei selber steht.
    Der Apache Server interpretiert dann deinen PHP Code. Nicht die JSon ausgabe.
    Das mit exit wird nicht funktioniieren ;)
    Solltest du aus der Datei lköschen


    Versuch es hiermit

    PHP
    function requireToVar($file){
        ob_start();
        require($file);
        return ob_get_clean();
    }


    Quelle: http://stackoverflow.com/quest…ire-include-into-variable


    Und dazu dann den Code:

    PHP
    <?php
    $bla = str_replace("<?php exit; ?>", "", requireToVar("messages.php"));
    $array = json_decode($bla, true);
    print_r($array); // Debug 2
    ?>


    Grüße

    ik bin der vito c:

  • Wozu, wenn er die Datei in seinem Verzeichnis hat?

    Für das Moderationsteam:
    Ich nutze offene WLAN's und bin im Intercafe oder im Hotel. (Vor Ban wegen Multiaccount deswegen bitte eine private Nachricht, um dies zu klären).

  • Einfachster Weg um so ein Gefummel zu umgehen: entweder direkt ein Array returnen (was soweit ich das sehe für dein Vorhaben ideal wäre) oder aber einen JSON-String via json_encode returnen.


    Edit: Da ich nun wach bin:

    PHP
    //messages.php
    return [
        'all'   => 'test',
    ];
    
    
    // einbinden
    $array = include 'messages.php';

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

    Einmal editiert, zuletzt von Klemmlampe ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Beitrag von whitetiiger ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Beitrag von Allinone ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Beitrag von whitetiiger ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Beitrag von Allinone ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.