File tree Expand file tree Collapse file tree 1 file changed +30
-1
lines changed
Expand file tree Collapse file tree 1 file changed +30
-1
lines changed Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ public static function mysql_escape($fieldValue)
2121 }
2222
2323 if (self ::is_json ($ fieldValue )){
24- return $ fieldValue ;
24+ return self :: safeJson ( $ fieldValue) ;
2525 }
2626
2727 if (!empty ($ fieldValue ) && is_string ($ fieldValue )) {
@@ -35,11 +35,40 @@ public static function mysql_escape($fieldValue)
3535 return $ fieldValue ;
3636 }
3737
38+ protected static function safeJsonString ($ fieldValue ){
39+ return str_replace (
40+ ["' " ],
41+ ["'' " ],
42+ $ fieldValue
43+ );
44+ }
45+
3846 protected static function is_json ($ str ): bool
3947 {
4048 if (!is_string ($ str )){
4149 return false ;
4250 }
4351 return json_decode ($ str , true ) !== null ;
4452 }
53+
54+ protected static function safeJson ($ jsonData ,$ asArray = false ){
55+ $ jsonData = json_decode ($ jsonData ,true );
56+ $ safeJsonData = [];
57+ if (!is_array ($ jsonData )){
58+ return $ jsonData ;
59+ }
60+ foreach ($ jsonData as $ key => $ value ){
61+ if (self ::is_json ($ value )){
62+ $ safeJsonData [$ key ] = self ::safeJson ($ value ,true );
63+ }elseif (is_string ($ value )){
64+ $ safeJsonData [$ key ] = self ::safeJsonString ($ value );
65+ }elseif (is_array ($ value )){
66+ $ safeJsonData [$ key ] = self ::safeJson (json_encode ($ value ),true );
67+ }else {
68+ $ safeJsonData [$ key ] = $ value ;
69+ }
70+ }
71+ return $ asArray ? $ safeJsonData : json_encode ($ safeJsonData );
72+ }
73+
4574}
You can’t perform that action at this time.
0 commit comments