json_decode liefert leeres Ergebnis

wachteldonk

Erfahrenes Mitglied
Ich versuche gerade das hier. Das geht soweit auch, aebr am Ende gibt JSON nichts zurücl leer Finito. Woran kann das liegen****

Code:
$string[0] 		= "Hallo Moppel";
$string[1] 		= "Hallo Toni";
$key 			= "sdfzwfiwuef728tr28";
$cry 			= new crypter();
$iv  			= $cry->getIV();

echo "Start: ".$string."<br>";
$string 		= json_encode($string);
echo "JSON: ".$string."<br>";
$string 		= $cry->encrypt($string,$key,$iv);
echo "Crypted: ".$string."<br>";
$string 		= utf8_encode($cry->decrypt($string,$key,$iv));
echo "Enrypted: ".$string."<br>";
$string 		= json_decode($srting,true);
echo "JSON: ".$string."<br>";

Das ist die Ausgabe:

Start: Array
JSON: ["Hallo Moppel","Hallo Toni"]
Crypted: ÄZc>,GYÞ±Uá½nûGß4«¦T˜«‘lï÷©
Enrypted: ["Hallo Moppel","Hallo Toni"]
JSON:

Woran liegt das******!
 
Zuletzt bearbeitet:
Ach ja, das verschlüsseln dazwischen macht übrigens keinen Unterschied. Wenn ich es entfernen, kommt immer noch nichts zurück.
 
Zuletzt bearbeitet:
Wenn dein error_reporting richtig gesetzt wäre, würdest du sehen, das du in Zeile 14 $srting statt $string geschrieben hast.

EDIT: Übrigens, arrays kann man nicht mit echo ausgeben, verwende statt dessen var_dump() oder print_r(), je nach dem, was dir besser gefällt.
 
Aus irgendeinem Grund sind bei dir eckige Klammern da, das sollten aber geschweifte Klammern sein?
 
Ah, mich hatte folgendes Beispiel von php.net verwirrt...
Anscheinend gibt es eine weitere Typenunterscheidung erst seit PHP 5.3.0... Hab die Funktion schon länger nicht mehr genutzt.
PHP:
<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

echo json_encode($arr);
?>

Code:
{"a":1,"b":2,"c":3,"d":4,"e":5}
 
Hab ich noch nie so versucht, schließlich muss JS da wieder ein Array draus machen, und das tut es nur, wenn es eckige Klammern sind. Hier was zu nach prüfen:

Javascript:
var o = 'e={"a":1,"b":2,"c":3,"d":4,"e":5}';
eval(o);

alert("e should be an object: " + e);

o = 'e=["a", "b", "c", "d", "e"]';
eval(o);
alert("e should be an array: " + e);

alert("Now you will get an syntax error");
o = 'e=["a":1,"b":2,"c":3,"d":4,"e":5]';
eval(o);
 

Neue Beiträge

Zurück