What are best practices for validating user input in PHP functions to prevent malicious input?

To prevent malicious input in PHP functions, it is essential to validate user input thoroughly. This can be done by using functions like filter_input() to sanitize and validate input data. It's also important to use prepared statements when interacting with databases to prevent SQL injection attacks. Additionally, limiting the use of user-supplied data in functions and ensuring input data matches expected formats can help prevent security vulnerabilities.

// Example of validating user input in a PHP function
function sanitize_input($input) {
    $sanitized_input = filter_var($input, FILTER_SANITIZE_STRING);
    return $sanitized_input;
}

$user_input = $_POST['user_input'];
$clean_input = sanitize_input($user_input);