PHP Json将整数编码为字符串
用户将值输入到Raspberry Pi上的表单中,理论上,这应该将值转换为json格式,将其写入文件,终止所有bp会话,然后重新启动(此时将重定向到BBC作为确认) 参数PHP Json将整数编码为字符串,php,arrays,json,type-conversion,Php,Arrays,Json,Type Conversion,用户将值输入到Raspberry Pi上的表单中,理论上,这应该将值转换为json格式,将其写入文件,终止所有bp会话,然后重新启动(此时将重定向到BBC作为确认) 参数tail、growthrate和fps被编码为字符串,而不是整数。最后一个文件(webtest1.json)中的结果是它们显示为“tail”:“1”,我需要“tail”:1 // check if a form was submitted if( !empty( $_POST ) ){ // convert form d
tail
、growthrate
和fps
被编码为字符串,而不是整数。最后一个文件(webtest1.json
)中的结果是它们显示为“tail”:“1”
,我需要“tail”:1
// check if a form was submitted
if( !empty( $_POST ) ){
// convert form data to json format
$postArray = array(
"driver" => $_POST['driver'],
"animation" => array(
"typename" => $_POST["typename"],
"tail" => $_POST["tail"],
"growthRate" => $_POST["growthRate"]
),
"run" => array(
"fps" => $_POST["fps"]
),
"layout" => $_POST['layout']
);
//you might need to process any other post fields you have..
$json = json_encode( $postArray );
// make sure there were no problems
//if( json_last_error() != JSON_ERROR_NONE ){
//exit; // do your error handling here instead of exiting
// }
$file = '/home/pi/Documents/webtest1.json';
// write to file
// note: _server_ path, NOT "web address (url)"!
file_put_contents( $file, $json);
}
shell_exec("sudo killall bp");
shell_exec("sudo bp /home/pi/Documents/webtest1.json > /dev/null 2>/dev/null &");
header("Location: http://www.bbc.co.uk");
die();
不知道如何停止,因为我看不到您的web表单。但是,可以使用intVal将任何字符串转换为整数。 如
我认为在输入字段中指定type='number'可能有助于处理提交的值。值得一试不确定如何停止,因为我看不到您的web表单。但是,可以使用intVal将任何字符串转换为整数。 如
我认为在输入字段中指定type='number'可能有助于处理提交的值。值得一试方法1:如果您有PHP版本5.3.3或更高版本,您可以使用第二个参数
JSON\u NUMERIC\u CHECK
来执行此操作,而无需强制转换每个数值如果您使用的是最新的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:将每个
$\u POST
变量值转换为整数类型,如(int)$\u POST['fps']
。在需要的地方也可以这样做,比如fps
、tail
或growthRate
值这是一个很好的方法,但可能需要更改代码中的许多位置。方法1:如果您有PHP版本5.3.3或更高版本,您可以使用第二个参数JSON\u NUMERIC\u CHECK
来运行,而不必强制转换每个数值如果您使用的是最新的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:将每个
$\u POST
变量值转换为整数类型,如(int)$\u POST['fps']
。在需要的地方也可以这样做,比如fps
、tail
或growthRate
值这是一个很好的方法,但可能需要更改代码中的许多位置。正如@Ian Middelkamp所说
但是我想补充一点,你也可以使用(int)
强制转换,所以你可以偷取这个例子
"tail" => (int)$_POST["tail"],
伊恩·米德尔坎普说了些什么 但是我想补充一点,你也可以使用
(int)
强制转换,所以你可以偷取这个例子
"tail" => (int)$_POST["tail"],
php的版本?这与编号
pi
无关。php的版本?这与编号pi
无关。