2012-07-31 11 views
9
$a = '[{"function":"error_handler","class":"LP","type":"::","args":[256,"Call to undefined method LP_pdo::get_rorzxx() on D:\\MARK\\htdocs\\lessphptest\\application\\controllers\\users.php (23)","D:\\MARK\\htdocs\\lessphp\\LP.php",210,{"e":{"type":1,"message":"Call to undefined method LP_pdo::get_rorzxx()","file":"D:\\MARK\\htdocs\\lessphptest\\application\\controllers\\users.php","line":23}}]},{"file":"D:\\MARK\\htdocs\\lessphp\\LP.php","line":210,"function":"trigger_error","args":["Call to undefined method LP_pdo::get_rorzxx() on D:\\MARK\\htdocs\\lessphptest\\application\\controllers\\users.php (23)",256]},{"function":"shutdown","class":"LP","type":"::","args":[]}]'; 
$a = json_decode($a); 
print_r($a); 

echo json_last_error(); 

print_r() gibt leer zurück.json_decode() gibt leer zurück, aber es ist gültig json

json_last_error() kehrt 4, die JSON_ERROR_SYNTAX

ist aber, wenn ich die JSON-String in http://jsonlint.com/ es laufen zurück Valid JSON

Irgendwelche Ideen warum?

+1

Versuch: $ b = array(); $ b = json_decode ($ a, wahr); Dies sollte den JSON in ein assoziatives Array konvertieren, aber Sie müssen zuerst $ b = array() deklarieren; – Onheiron

Antwort

12

Sie benötigen \ einmal für PHP und noch einmal für JSON

D:\\\\....

+0

sicher meinst du Flucht dein \ lieber als/ –

+0

das funktioniert, aber gibt es eine Funktion, die das tut? Ich finde/ersetze nur im Editor :-) – IMB

+4

@IMB PHP hat auch hervorragende Möglichkeiten zum Suchen/Ersetzen! '$ str = str_replace ('\', '\\', $ str);' ;-) – Kaii

0

versuchen zu fliehen Kodierung UTF-8 zu setzen ... hat den Job für mich

Verwandte Themen