2012-07-31 14 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() zwraca wartość pustą.json_decode() zwraca puste, ale ważne json

json_last_error() powraca 4, która jest JSON_ERROR_SYNTAX

Ale kiedy uruchomić ciąg json w http://jsonlint.com/ zwraca Valid JSON

Jakieś pomysły dlaczego?

+1

Spróbuj: $ b = array(); $ b = json_decode ($ a, true); powinno to przekonwertować json na tablicę asocjacyjną, ale najpierw musisz zadeklarować $ b = array(); – Onheiron

Odpowiedz

12

Musisz uciec swoją \ raz dla PHP i po raz kolejny dla JSON

D:\\\\....

+0

z pewnością masz na myśli ucieczkę przed \/niż –

+0

która działa, ale czy istnieje funkcja, która to robi? Po prostu znajduję/zamieniam w Notatniku :-) – IMB

+4

@IMB PHP ma również doskonałe możliwości wyszukiwania/zamiany! '$ str = str_replace ('\', '\\', $ str);' ;-) – Kaii

0

Spróbuj ustawić kodowanie na UTF-8 ... nie praca dla mnie

Powiązane problemy