MySQL 데이터베이스에 넣을 PHP로 포맷 된 큰 JSON을 전달하는 자바 스크립트 리치 페이지가 있습니다. JSON의 데이터에는 사용자 제출 문자열이 포함되며 기본 html (<a>
, <strong>
등)이 포함 된 문자열이 포함됩니다.MySQL에서 데이터베이스 저장을 위해 json 데이터를 인코딩하는 방법은 무엇입니까?
오전 데 문제가 '
인용 부호를 포함하는 문자열을 탈출 할 때, 나는 혼합되어
<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));
데이터에 슬래시를 제거하는 것입니다 자바 스크립트가 이스케이프 처리되지 않은 데이터를 가질 수 있도록 데이터베이스에서 나옵니다.
당신은'magic_quotes_gpc()'을 켜 놓았습니까? 그것들은 당신의 데이터 전체에 쓰레기를 버릴 것이고, 옵션은 꺼야합니다. –
아, 그게 켜져 있습니다. 흠, 내가 이것을 끄면 나는 다른 곳에 영향을 줄 가능성이있다? –
불쾌한 주사를 피하기 위해 mysql_real_escape_string()을 쿼리에 사용하고 싶지만 @Marc B가 맞으면 꺼야합니다 (PHP 5.3에서는 사용되지 않습니다). – Capsule