我打算思考一种读取客户端提交的POST数据的良好做法。
例如,如果我有一个应该具有以下结构的post变量:
array(
[0] => array(
['test'] => array(1, 2, 3),
['test2'] => "string"
),
[1] => array(
['test'] => array(),
['test2'] => "string2"
),
)
需要始终存在索引“test”和“test2”,但其值可能为空(array() 和“”)。
处理 POST 数据的函数期望正确的格式,因此我必须确保数据未被篡改。
我可以采取以下措施:
$result = array();
if(isset($_POST['myVar']) && is_array($_POST['myVar'])) {
foreach($_POST['myVar'] as $array) {
$new = array('test' => array(), 'test2' = "");
if(isset($array['test']) && is_array($array['test'])) {
foreach($array['test'] as $expectedInt) {
$new['test'][] = (int)$expectedInt;
}
}
if(isset($array['test2']) && is_string($array['test2']))
$new['test2'] = $array['test2'];
}
$result[] = $new;
}
我想你已经明白我想表达的意思了。我想知道是否有更好的做法将POST数据读入到预期的格式中。
forEach
循环自己构建PHP对象更容易_验证_它。但也许你有更好的建议。 - gkalpak