我总是使用filter_var($ var,FILTER,FLAG); 当我从$ _GET,$ _ POST等获取数据时,但是现在此数据是JSON字符串,但是我没有找到任何过滤器来净化JSON。有人知道如何实现此过滤器吗?
PHP filter_var():http://php.net/manual/en/function.filter- var.php
PHP筛选器常量:http : //php.net/manual/zh/filter.filters.sanitize.php
首先将JSON解析为PHP数组,然后像处理常规请求内容一样对数组中的每个值进行过滤,您可以将JSON键映射到原理图过滤器和标志/选项,例如
$filters = array( 'email'=>FILTER_VALIDATE_EMAIL, 'url'=>FILTER_VALIDATE_URL, 'name'=>FILTER_SANITIZE_STRING, 'address'=>FILTER_SANITIZE_STRING ); $options = array( 'email'=>array( 'flags'=>FILTER_NULL_ON_FAILURE ), 'url'=>array( 'flags'=>FILTER_NULL_ON_FAILURE ), //... and so on ); $inputs = json_decode($your_json_data); $filtered = array(); foreach($inputs as $key=>$value) { $filtered[$key] = filter_var($value, $filters[$key], $options[$key]); }