Php 双引号输入破坏了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":"

我正在尝试从用户那里获取输入 当我输入像“kaushik”这样的内容时,json输出不会出现

这是我的密码

<?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);