我正在尝试构建一个输出自定义JSON代码的PHP表单。
看看:http://s194239704.onlinehome.us/bcembed/
应用创建的JSON代码输出错误。我需要进行搜索并替换以删除一些逗号。
(部分)源代码如下所示:
{
<!-- ALBUM ART --><span <?php if($artdisplay!="block") echo "style=\"display:none;\""; ?>>"art": { "x": <?php echo $artx; ?>, "y": <?php echo $arty; ?>, "w": <?php if($artsize=="small") {echo "100";} elseif($artsize=="large") {echo "150";} ?>, "h": <?php if($artsize=="small") {echo "100";} elseif($artsize=="large") {echo "150";} ?>, "show": true },</span>
<!-- MAINTEXT --><span <?php if($maintextdisplay!="block") echo "style=\"display:none;\""; ?>>"maintext": { "x": <?php echo $maintextx; ?>, "y": <?php echo $maintexty; ?>, "w": <?php echo $maintextw; ?>, "h": <?php echo $maintexth; ?>, "show": true, "styles": { "fontSize": "<?php echo $maintextfontsize; ?>", "textAlign": "<?php echo $maintextalign; ?>", <?php if($maintextbold=="bold") echo "\"fontWeight\": \"" . $maintextbold . "\","; ?> <?php if($maintextitalic=="italic") echo "\"fontStyle\": \"" . $maintextitalic . "\","; ?> }},</span>
}
我希望在应用PHP后运行搜索/替换。我尝试在JavaScript搜索/替换中包装整个内容,因为我认为PHP将在Javascript代码之前运行。但什么都没发生。
你能告诉我我的头脑吗?一半的副本和粘贴只能让我到目前为止......
编辑:我不知道json_encode。它似乎有效,但我遇到了另一个问题。我希望将此作为输出:
"currenttime": {
"x": 0,
"y": 0,
"w": 30,
"h": 30,
"show": true,
"styles": {
"fontSize": "13",
"fontWeight": "bold",
"fontStyle": "null",
"textAlign": "center"
}
}
这是我正在尝试使用的代码:
$jsonData['currenttime'] = array(
'x' => $currenttimex,
'y' => $currenttimey,
'w' => $currenttimew,
'h' => $currenttimeh,
'show' => $currenttimedisplay=="block" ? true : false,
['styles'] = array(
'fontSize' => $currenttimefontsize,
'fontWeight' => $currenttimebold,
'fontStyle' => $currenttimeitalic,
'textAlign' => $currenttimealign
)
);
这就像我需要一个子阵列的样式......什么是格式化的正确方法?
答案 0 :(得分:4)
你基本上没问题,但是你有一些语法错误:
$jsonData['currenttime'] = array(
'x' => $currenttimex,
'y' => $currenttimey,
'w' => $currenttimew,
'h' => $currenttimeh,
'show' => $currenttimedisplay =="block" ? true : false,
'styles' => array(
'fontSize' => $currenttimefontsize,
'fontWeight' => $currenttimebold,
'fontStyle' => $currenttimeitalic,
'textAlign' => $currenttimealign
)
);
我不会手动使用这个...而是使用json_encode
:
$jsonData = array();
$jsonData['art'] = array(
'x' => $artx,
'y' => $arty,
'w' => $artsize=="small" ? 100 : ($artsize == 'large' ? 150 : null),
'h' => $artsize=="small" ? 100 : ($artsize == 'large' ? 150 : null),
'show' => true
);
echo json_encode($jsonData);