php json_encode()在斜线[重复]之前自动添加斜杠
This question already has an answer here:
- json_encode() escaping forward slashes 3 answers
I am storing my data in the form of json to the database. User can input with quotes, so i am manually adding slashes before the quotes. So my data becomes like this
array:8 [▼
"buttonText" => "Large Button"
"campName" => "Large\'s Button Test"
"buttonSize" => "1"
]
But when i am converting it into json, the json_encode()
function automatically added one more slash before my slash as
"{"buttonText":"Large Button","campName":"Large\\'s Button Test","buttonSize":"1"}"
Why the extra slash will be added, is there any option to prevent that
</div>
Why you do like this? Is totaly bad thing adding slashes manualy.
You can just generate JSON using arrays like:
$arr=array();
$arr['buttonText']="Large Button";
$arr['campName']="Large's Button Test";
$arr['buttonSize']=1;
echo json_encode($arr);
Just use json_encode()
to store values and json_decode()
to get values.
Here is diferent aproach:
$arr=array(
'buttonText'=>"Large Button",
'campName'=>"Large's Button Test",
'buttonSize'=>1,
);
echo json_encode($arr);
json_encode()
adding slashes automaticaly and json_decode()
remove it. You don't need to think about that. Just don't worry and be happy.
Extra slashes are added because that's what json_encode
will do. See this documentation
In your case if you're encoding data to store in database, you don't need to manually add slashed. json_encode
will take care of all escaping.