2010-01-17 6 views

ответ

5

Я не знаю точно, но json_last_error() должен :)

Мое предположение, однако, заключается в том, что json_encode() делает что-то к \' что stripslashes() затем распадается - например, добавьте еще один «\», чтобы избежать обратного слэша.

Не возиться с кодировкой json с использованием striplslashes(), прежде чем он будет декодирован неправильно?

+0

Первый раз, когда я буду использовать что функция! Yey! –

+0

Возвращает JSON_ERROR_SYNTAX, но я не понимаю, почему ... –

+0

Можете ли вы сбросить строку json_encoded со второй строки (без stripslashes)? –

2

Я не смотрел на нее слишком глубоко, но это выглядит как ваш код

  1. Принимая PHP массив и превращая его в строку JSON

  2. отвод с этой строкой

  3. Попытки декодировать сброшенную строку как JSON

Подумайте об этом, как этот

$json_string = json_encode(array("O\'Reiley"); 
$json_string = stripslashes($json_string);  

//it's no longer json, its just some random non-conforming string 
var_dump(json_decode($json_string)) 
+0

Да, хотя я был тем, что JSON не использовал '' ', и поэтому у меня не было причин убежать. Я был неправ. –

0

Вы должны попробовать без stripslashes()

$result = json_encode(striptslashes(array("O\'Reiley"))); 
if(json_last_error() > 0){ 
    $result = json_encode(array("O\'Reiley")); 
} 
Смежные вопросы