Skip to content

Commit 46300f0

Browse files
authored
Merge pull request #67 from mehmetbeyHZ/master
Single quotes in json data | bug
2 parents 06ec708 + af35026 commit 46300f0

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

src/Common/Common.php

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff 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
}

0 commit comments

Comments
 (0)