What are best practices for handling user input securely in PHP?

When handling user input securely in PHP, it is important to sanitize and validate the input to prevent common security vulnerabilities such as SQL injection and cross-site scripting (XSS). One way to do this is by using functions like htmlentities() or mysqli_real_escape_string() to sanitize input and regular expressions or filter_var() to validate input.

// Sanitize user input using htmlentities()
$clean_input = htmlentities($_POST['user_input'], ENT_QUOTES, 'UTF-8');

// Validate user input using filter_var()
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
    // Input is a valid email address
} else {
    // Input is not a valid email address
}