What are some best practices for handling file operations in PHP to avoid common pitfalls?

Issue: One common pitfall when handling file operations in PHP is not properly checking for errors or handling exceptions. It is important to always check if a file operation was successful before proceeding to avoid unexpected behavior or data loss.

// Example of checking for errors when opening a file
$filename = "example.txt";
$file = fopen($filename, "r");
if ($file === false) {
    die("Error opening file");
}
```

Issue: Another common pitfall is not properly closing files after performing operations on them. Failing to close files can lead to resource leaks and potential issues with file locking.

```php
// Example of closing a file after reading its contents
$filename = "example.txt";
$file = fopen($filename, "r");
if ($file) {
    $content = fread($file, filesize($filename));
    fclose($file);
    echo $content;
} else {
    echo "Error opening file";
}
```

Issue: It is also important to properly sanitize user input when working with file paths to prevent security vulnerabilities such as directory traversal attacks.

```php
// Example of sanitizing user input for file paths
$filename = "uploads/" . basename($_GET['file']);
if (file_exists($filename)) {
    // Perform file operation
} else {
    echo "File not found";
}