Intereting Posts
Генерировать XML из PHP через SQL Какова наилучшая практика установки атрибута html через PHP? разгрузка php-расширений: reverse dl () Как я могу получить доступ к скрипту из корня по протоколу http? Изменение конфиденциальности старых сообщений Facebook с помощью Graph API Является ли неправильной практикой эхо-функции в php? Doctrine 2 orm: schema-tool: create give Runtime Exception: Слишком много аргументов Почему, когда я отправляю значение текстового поля в AJAX скрипту PHP, он не работает и дает мне ошибку синтаксического анализа JSON? Переопределить функцию php по умолчанию Клиент не может войти в magento 1.8.1 PHP __destruct вызывает net :: ERR_CONNECTION_RESET register_shutdown_function нет. Какая разница? Regex pattern – совпадающее слово, которое начинается с @ PHP, возвращающий входные переменные Сценарий GoogleCloudMessaging PHP всегда возвращает неверную регистрацию Как я могу получить данные prodcut продукта VirtueMart 2 во внешнем файле?

Декодирование массива JSON объектов в PHP, это обратные косые черты?

Поэтому я отправляю массив объектов в строке JSON, используя javascript для PHP-скрипта, и у меня возникают реальные проблемы с расшифровкой его в php.

Мой javascript выглядит следующим образом:

$.ajax({ type: 'POST', url: "question_save.php", data: {myJson: JSON.stringify(jsonArray)}, success: function(data){ alert(data); } }); 

Строка, отправленная на PHP, выглядит так:

 [{"content":"Question text"},{"answerContent":"Some answer text","score":"234","responseChecked":0,"responseContent":""},{"answerContent":"","score":"0","responseChecked":0,"responseContent":""}] 

Если я повторяю $ _POST ['myJson'], я получаю следующее:

 [{\"content\":\"Question text\"},{\"answerContent\":\"Some answer text\",\"score\":\"234\",\"responseChecked\":0,\"responseContent\":\"\"},{\"answerContent\":\"\",\"score\":\"0\",\"responseChecked\":0,\"responseContent\":\"\"}] 

Тем не менее, когда я хочу декодировать JSON и пропустить его так …

 $json = $_POST['myJson']; $data = json_decode($json, true); foreach ($data as &$value) { echo("Hi there"); } 

… Я получаю эту ошибку:

 Warning: Invalid argument supplied for foreach() in /home/thecrime/public_html/test1/question_save.php on line 15 

Я действительно не понимаю, какую глупую ошибку я делаю, это как-то связано с косой чертой?

Любая помощь очень ценится!

Спасибо, -Бен

Используйте stripslashes ( $string )http://php.net/manual/en/function.stripslashes.php

Это должно работать

 $json = $_POST['myJson']; $json_string = stripslashes($json) $data = json_decode($json_string, true); // simple debug echo "<pre>"; print_r($data); 

Однако, как уже указывалось другими, лучше отключить magic_quotes_gpc .

Откройте файл php.ini выполните поиск по этой строке:

 magic_quotes_gpc = On 

Установите его в положение « Off И перезапустите сервер.

Это связано с Magic Quotes
Лучше отключить эту раздражающую старую функцию и забыть о тех проблемах.
Вы можете отключить эти инструкции .