У меня есть страница, обогащенная javascript, которая передает большой JSON в формате php для помещения в базу данных MySQL. Данные в JSON включают строки, отправленные пользователем, и будут содержать строки, содержащие базовый html (<a>
, <strong>
и т. Д.).
Проблема, с которой я сталкиваюсь, заключается в том, что при экранировании строки, содержащей кавычку '
, я не могу удалить косую черту, что приводит к сложным символам экранирования, таким как
<a href=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'example.com\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'></a>
Каждый раз, когда пользователь сохраняет это, это усложняется, сильно раздувая поле базы данных.
Мое преобразование строки для вставки данных в MySQL:
$correspondenceArray = base64_encode(json_encode($_POST['saveArray']['correspondenceObject']));
И чтобы вернуть данные:
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
$correspondenceJSON = stripslashes_deep(json_decode(base64_decode($resultArray['correspondence_array']), true));
Из того, что я сделал, я собираюсь убрать косые черты данных, поступающих из базы данных, чтобы в javascript содержались неэкранированные данные
Редактировать
Я понимаю, что json_encode($a,JSON_HEX_QUOT)
может помочь, но сервер, на котором я работаю, имеет PHP 5.2.16, поэтому эта функция недоступна)