How can the filter_string() function be improved to handle different types of values, such as text and numbers?

The filter_string() function can be improved to handle different types of values by checking the type of the input value and applying the necessary filtering logic accordingly. For text values, we can remove any special characters or tags. For numeric values, we can ensure that only numbers are returned. By incorporating type checking and specific filtering rules for different types of values, the function can be made more versatile and robust.

function filter_string($value) {
    if (is_string($value)) {
        // Filtering logic for text values
        $filtered_value = strip_tags($value);
        $filtered_value = preg_replace('/[^A-Za-z0-9 ]/', '', $filtered_value);
    } elseif (is_numeric($value)) {
        // Filtering logic for numeric values
        $filtered_value = filter_var($value, FILTER_SANITIZE_NUMBER_INT);
    } else {
        // Handle other types of values here
        $filtered_value = $value;
    }
    
    return $filtered_value;
}