用户将值输入到Raspberry Pi上的表单中,理论上,这应该将值转换为json格式,将其写入文件,终止所有bp会话并重新开始(重定向到BBC作为确认现在)。
参数list()
,tail
和growthrate
被编码为字符串,而不是整数。最终文件(fps
)中的结果是它们显示为webtest1.json
,我需要"tail": "1"
。
"tail": 1
答案 0 :(得分:3)
方式1:如果您有PHP版 5.3.3 或更高,您可以尝试使用第二个参数JSON_NUMERIC_CHECK
到json_encode()函数而不转换每个数值。 如果您拥有最新的php版本,则需要更少的更改。
说你的数组是这样的,
$arr = array(
"driver" => 'driver',
"animation" => array(
"typename" => 'typename',
"tail" => '1',
"growthRate" => 10
),
"run" => array(
"fps" => '23'
),
"layout" => 'layout'
);
echo json_encode( $arr, JSON_NUMERIC_CHECK );
<强>输出:强>
{
"driver":"driver",
"animation":{
"typename":"typename",
"tail":1,
"growthRate":10
},
"run":{
"fps":23
},
"layout":"layout"
}
方式2:将您的每个$_POST
变量值转换为整数类型,如(int)$_POST['fps']
。也可以根据需要对fps
,tail
或growthRate
值进行操作。 这很好,但可能需要更改代码中的许多位置。
答案 1 :(得分:2)
不确定如何阻止它,因为我无法看到您的网络表单。但是,您可以使用intVal将任何字符串转换为整数。 如在
"tail" => intVal($_POST["tail"]),
我认为指定type =&#39; number&#39;在输入字段上可能有助于提交值。值得一试
答案 2 :(得分:1)
@Ian Middelkamp说的话。
但是我想补充一点,你也可以使用(int)
施法。所以窃取那个例子
"tail" => (int)$_POST["tail"],