2012-07-31 27 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() returns blank.json_decode() devuelve en blanco pero es válido json

json_last_error() retornos 4, que es JSON_ERROR_SYNTAX

Pero, cuando corro la cadena JSON en http://jsonlint.com/ que devuelve Valid JSON

Cualquier idea por qué?

+1

intento: $ b = array(); $ b = json_decode ($ a, verdadero); esto debería convertir el json en una matriz asociativa, pero primero tienes que declarar $ b = array(); – Onheiron

Respuesta

12

tiene que escapar a su vez \ para PHP y una vez más para JSON

D:\\\\....

+0

seguramente quiere decir escapar de su \ en lugar de/ –

+0

que funciona, pero ¿hay alguna función que lo haga? Acabo de encontrar/reemplazar en el Bloc de notas :-) – IMB

+4

@IMB PHP también tiene excelentes capacidades de búsqueda/reemplazo. '$ str = str_replace ('\', '\\', $ str);' ;-) – Kaii

0

intenta establecer la codificación UTF-8 ... hicieron el trabajo para mí

Cuestiones relacionadas