Php 双引号输入破坏了json结构,如何修复
我正在尝试从用户那里获取输入 当我输入像“kaushik”这样的内容时,json输出不会出现 这是我的密码Php 双引号输入破坏了json结构,如何修复,php,json,concatenation,Php,Json,Concatenation,我正在尝试从用户那里获取输入 当我输入像“kaushik”这样的内容时,json输出不会出现 这是我的密码 <?php if(!empty($_POST['name'])){ $name = strip_tags(@$_POST['name']); //echo $name; $json = '{ "a":"'.$name.'", "b":"Kishore", "c":"
<?php
if(!empty($_POST['name'])){
$name = strip_tags(@$_POST['name']);
//echo $name;
$json = '{
"a":"'.$name.'",
"b":"Kishore",
"c":"ramesh",
"d":"Suresh",
"e":"ramu"
}';
$jsonOutput = json_decode($json,true);
print_r($jsonOutput);
}
?>
<form name = "myform" action = "" method = "POST">
Name <input type = "name" name = "name"/></br>
<input type= "Submit" name = "submit" value = "show"/>
</form>
名字
您需要先对双引号进行转义。i、 e.\“
代替”
但是,通常您不希望自己生成JSON。你最好创建一个数组,让
json\u encode()
来做这项工作。为什么不正确地做,让json\u encode()
来处理转义呢?还有,你确定曾经输入过这个方法吗?@Pekka웃 我必须接受用户的输入。我该怎么做?我已经测试了你的脚本,它的输出是正确的。我现在正在使用json_编码。这是lotkaushik“kishore”在这种情况下或在单引号情况下失败的原因。单引号是一个更好的解决方案。执行addslashes的问题是,您可能会遇到不需要转义的情况,然后在运行addslashes后执行正确的值转义时会遇到问题。
$name = addslashes($name);