What are some best practices for using fopen, fread, fgets, and file() functions in PHP to read files?

When using fopen, fread, fgets, and file() functions in PHP to read files, it is important to handle errors properly, close the file after reading, and sanitize user input to prevent security vulnerabilities such as directory traversal attacks.

// Example of reading a file using fopen, fread, and fclose
$filename = 'example.txt';
$handle = fopen($filename, 'r');
if ($handle) {
    $contents = fread($handle, filesize($filename));
    fclose($handle);
    echo $contents;
} else {
    echo 'Error opening file';
}
```

```php
// Example of reading a file line by line using fgets
$filename = 'example.txt';
$handle = fopen($filename, 'r');
if ($handle) {
    while (($line = fgets($handle)) !== false) {
        echo $line;
    }
    fclose($handle);
} else {
    echo 'Error opening file';
}
```

```php
// Example of reading a file into an array using file()
$filename = 'example.txt';
$lines = file($filename, FILE_IGNORE_NEW_LINES);
if ($lines) {
    foreach ($lines as $line) {
        echo $line . '<br>';
    }
} else {
    echo 'Error reading file';
}