What are the recommended methods for sanitizing and validating user input before processing it in PHP scripts to avoid vulnerabilities?

Sanitizing and validating user input before processing it in PHP scripts is crucial to prevent vulnerabilities such as SQL injection, cross-site scripting (XSS), and other security risks. To sanitize user input, you can use functions like htmlspecialchars() to escape special characters and prevent XSS attacks. For validation, you can use functions like filter_var() to ensure the input matches a specific format (e.g., email address, URL).

// Sanitize user input
$userInput = "<script>alert('XSS attack!');</script>";
$sanitizedInput = htmlspecialchars($userInput, ENT_QUOTES);

// Validate user input
$email = "example@example.com";
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "Email is valid";
} else {
    echo "Email is not valid";
}