PHP json_解码未从变量获取代码

PHP json_解码未从变量获取代码,php,json,Php,Json,我对PHP中内置的json\u decode()函数有问题。我有以下json文件: { "var1":"data1", "var2":"data2", "var3":"data3", "snippet":"<?php\n\necho \"hello world\";" } 后来我只是简单地用它来获取所有数据: $str_data = file_get_contents("json_files/".$new.".json"); $data = json_de

我对PHP中内置的
json\u decode()
函数有问题。我有以下json文件:

{
    "var1":"data1",
    "var2":"data2",
    "var3":"data3",
    "snippet":"<?php\n\necho \"hello world\";"
}
后来我只是简单地用它来获取所有数据:

$str_data = file_get_contents("json_files/".$new.".json");
$data = json_decode($str_data,true);
echo $data['snippet'];

这对var1/var2/var2很好,但对代码不起作用。

如果希望从字符串执行PHP脚本,可以使用 但是,请记住,如果不正确清理数据,函数可能是危险的

您当前的代码不起作用,因为它是一个字符串,PHP解释器会将其作为脚本标记,但出于安全原因,会将其注释掉,因此它只显示在html页面的源代码中

按以下注释进行编辑:

$json = '{
  "var1":"data1",
  "var2":"data2",
  "var3":"data3",
  "snippet":"<?php\n\necho \"hello world\";"
}';

echo htmlentities(json_decode($json)->snippet);
echo htmlentities(json_decode($json, true)['snippet']);
echo str_replace('<', '&lt;', json_decode($json, true)['snippet']);

// Choose your method.. all works.
$json=”{
“var1”:“data1”,
“var2”:“data2”,
“var3”:“data3”,

“snippet”:“如果希望从字符串执行PHP脚本,可以使用 但是,请记住,如果不正确清理数据,函数可能是危险的

您当前的代码不起作用,因为它是一个字符串,PHP解释器会将其作为脚本标记,但出于安全原因,会将其注释掉,因此它只显示在html页面的源代码中

按以下注释进行编辑:

$json = '{
  "var1":"data1",
  "var2":"data2",
  "var3":"data3",
  "snippet":"<?php\n\necho \"hello world\";"
}';

echo htmlentities(json_decode($json)->snippet);
echo htmlentities(json_decode($json, true)['snippet']);
echo str_replace('<', '&lt;', json_decode($json, true)['snippet']);

// Choose your method.. all works.
$json=”{
“var1”:“data1”,
“var2”:“data2”,
“var3”:“data3”,
“代码片段”:“
测试以下内容:

<?php
$str_data = '
{
    "var1":"data1",
    "var2":"data2",
    "var3":"data3",
    "snippet":"<?php\n\necho \"hello world\";"
}';

$data = json_decode($str_data,true);

echo $data['snippet'];
测试以下各项:

<?php
$str_data = '
{
    "var1":"data1",
    "var2":"data2",
    "var3":"data3",
    "snippet":"<?php\n\necho \"hello world\";"
}';

$data = json_decode($str_data,true);

echo $data['snippet'];

使用var\u dump查看数据是否正确

$str_data=file_get_contents(“json_files/”$new..json”);

var_dump($str_data);
使用var_dump查看数据是否正确

$str_data=file_get_contents(“json_files/”$new..json”);

变量转储($str\u数据)
它到底是如何工作的?意思是:输出是什么,预期的输出是什么?
@franzgleichman预期的输出应该是这样的:@Repox我没有看到@Marnix Bouhuis无法复制,我看到的是本地源代码中的标记。可能是一些异国的服务器配置?另外:var_dump的输出是什么($data);它到底是如何工作的?意思是:输出是什么,预期的输出是什么?
@franzgleichman预期的输出应该是这样的:@Repox我没有看到@Marnix Bouhuis无法复制,我看到的是本地源代码中的标记。可能是一些奇特的服务器配置?另外:var_dump的输出是什么($data);然后你应该使用
htmlentites()
,下次你应该清楚你的要求。然后你应该使用
htmlentites()
,下次你应该清楚你的要求。