1
私は以下のような配列を生成しました。しかし、json_encode.Amで解析できませんでした。私にお知らせください。配列文字列を解析できません
PHPコード:
<?php
$i=0;
$result = shell_exec('scripts/fetch_script.sh');
foreach(preg_split("/((\r?\n)|(\r\n?))/", $result) as $line)
{
parse_str($line);
}
$stat = "array(";
$lines = file('parameter.file');
foreach ($lines as $line) {
$v = explode('|', strtoupper($line));
$str = '$v[1]';
eval("\$str = \"$str\";");
eval("\$str = \"$str\";");
$calc = eval("return round(($str),2);");
$stat .="'$v[0]' => $calc,";
}
$stat .=");";
echo json_encode($stat);
?>
しかし、その下にはJSON形式ではないような出力が表示さ:
"array('QUERY_CACHE_USAGE' => 0,'DISK_TMP_TABLES_USAGE' => 1.52,'QUERY_CACHE_USAGE' => 0,'DISK_TMP_TABLES_USAGE' => 1.52,'QUERY_CACHE_USAGE' => 0,'DISK_TMP_TABLES_USAGE' => 1.52,'QUERY_CACHE_USAGE' => 0,'DISK_TMP_TABLES_USAGE' => 1.52,'QUERY_CACHE_USAGE' => 0,'DISK_TMP_TABLES_USAGE' => 1.52,'QUERY_CACHE_USAGE' => 0,'DISK_TMP_TABLES_USAGE' => 1.52,'QUERY_CACHE_USAGE' => 0,'DISK_TMP_TABLES_USAGE' => 1.52,'QUERY_CACHE_USAGE' => 0,'DISK_TMP_TABLES_USAGE' => 1.52,'QUERY_CACHE_USAGE' => 0,'DISK_TMP_TABLES_USAGE' => 1.52,'QUERY_CACHE_USAGE' => 0,'DISK_TMP_TABLES_USAGE' => 1.52,'QUERY_CACHE_USAGE' => 0,'DISK_TMP_TABLES_USAGE' => 1.52,'QUERY_CACHE_USAGE' => 0,'DISK_TMP_TABLES_USAGE' => 1.52,);"
** $ stat **は文字列ではありません。** var_dump($ stat); **で試してみてください。 – JON
スクリプト内で使用されているvar_dumpがこの問題に直面しています。 .. .... var_dump($ stat); echo json_encode($ stat); 以下は出力です。 https://jpst.it/181m8 –
json_encode($ stat、true)、パラメータjson_encodeにtrueを追加してください。 – illuminarch