What are the best practices for structuring PHP code to ensure clean and secure data handling, especially when dealing with user input?

When dealing with user input in PHP, it is important to sanitize and validate the data to prevent security vulnerabilities such as SQL injection and cross-site scripting attacks. To ensure clean and secure data handling, it is recommended to use prepared statements for database queries, validate user input using filters or regular expressions, and escape output to prevent XSS attacks. Example PHP code snippet:

// Sanitize and validate user input
$username = filter_var($_POST['username'], FILTER_SANITIZE_STRING);
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);

// Prepare and execute a secure database query using prepared statements
$stmt = $pdo->prepare("INSERT INTO users (username, email) VALUES (?, ?)");
$stmt->execute([$username, $email]);

// Escape output to prevent XSS attacks
echo htmlspecialchars($username);