2012-07-31 12 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() restituisce vuoto.json_decode() restituisce vuoto ma è valido json

json_last_error() rendimenti 4 che è JSON_ERROR_SYNTAX

Ma, quando ho eseguito la stringa JSON in http://jsonlint.com/ esso restituisce Valid JSON

Tutte le idee perché?

+1

prova: $ b = array(); $ b = json_decode ($ a, true); questo dovrebbe convertire il json in un array associativo, ma devi prima dichiarare $ b = array(); – Onheiron

risposta

12

Hai bisogno di fuggire il tuo \ una volta per PHP e ancora una volta per JSON

D:\\\\....

+0

sicuramente vuoi dire escape your \ piuttosto che/ –

+0

che funziona, ma c'è una funzione che lo fa? Ho appena trovato/sostituisco nel Blocco note :-) – IMB

+4

@IMB PHP ha anche ottime capacità di ricerca/sostituzione! '$ str = str_replace ('\', '\\', $ str);' ;-) – Kaii

0

tenta di impostare la codifica UTF-8 ... ha fatto il lavoro per me

Problemi correlati