У меня есть фрагмент кода, который кодирующий PHP массив в JSON, но, когда я пытаюсь разобрать его, что дает мне ошибку из-за" присутствует в значенииИзбавление от «"»от json_encode
PHP массив
$arr = array(id => 1, msg => <h1>Some text</h1> <img src="http://test.png">);
Js код
var json = JSON.parse('<?php echo json_encode($arr);?>');
Когда я json_encode выше ошибки он окружает строку в двойные кавычки, что нарушает мою функцию JSON.parse. Я попытался использовать функцию replace, но после json_encode он автоматически добавляет двойные кавычки, окружающие строковые значения объекта.
Поэтому я попытался заменить все «на», но он заменяет все двойные кавычки. Я думаю, что это можно сделать с помощью регулярных выражений, чтобы заменить только «в элементах html или что-то еще. Я не мог избежать HTMl во время сохранения, потому что большое количество данных уже присутствует в базе данных, и изменение его немного сложно.
'$ обр = массив (ID => 1, сообщ => "
Некоторый текст
")' – Blazemonger, что вы ожидаете. json string ** MUST ** быть завернутым в '' '. Удаление их делает это синтаксической ошибкой json. Изменение того, что созданный json_encode, очевидно, представляет синтаксические ошибки. Вы НЕ можете переопределить, что json должно быть, управляя json-строкой, а затем ожидая json parser, чтобы принять плохой текст, который вы производите. –
вам не нужно это делать: 'var json = = json_encode ($ arr);?>' должно быть достаточно. – apokryfos