/**
* 自动对数据验证类型并过滤
* @param $data $data 要过滤的数据。支持String|Number|array
* @param bool $str_to_int 数字字符串是否需要转为整形
* @param bool $decode 是否逆解析数据
* @param string $default 为null的默认值
* @return array|string
*/
function get_auto_data($data, $str_to_int = true, $decode = false, $default = '') {
// 数组类型
if (is_array($data)) {
foreach ($data as $key => $value) {
$data[$key] = get_auto_data($value, $str_to_int, $decode , $default);
}
return $data;
} // 数字和数字字符串
elseif (is_numeric($data)) {
if($str_to_int){
//判断是否大于整形
if (false === strpos($data, '.')) {
if ($data <= 2147483647 && $data >= -2147483647) {
return intval($data);
} else {
return $data;
}
} else {
return floatval($data);
}
}else{
return $data;
}
} // 字符串
elseif (is_string($data)) {
if ($decode) {
return get_de_html($data);
} else {
return get_en_html($data);
}
}elseif(is_null($data)){
return $default;
} // 其他
else {
return $data;
}
}
//过滤单双引号
function get_de_html($string) {
return htmlspecialchars_decode($string, ENT_QUOTES);
}
//过滤单双引号
function get_en_html($string) {
return htmlspecialchars($string, ENT_QUOTES);
}
整理--针对强类型语言自动转换数据类型--自动对数据验证类型并过滤
最新推荐文章于 2022-10-31 20:13:01 发布