What potential pitfalls should be considered when counting and displaying files in a directory using PHP?

When counting and displaying files in a directory using PHP, it's important to consider potential pitfalls such as file permissions, file types, and directory traversal vulnerabilities. To mitigate these risks, always validate user input, check file permissions before accessing or displaying files, and sanitize file names to prevent directory traversal attacks.

$directory = "path/to/directory";

if (is_dir($directory)) {
    $files = array_diff(scandir($directory), array('..', '.'));
    
    foreach ($files as $file) {
        // Check file permissions before accessing or displaying
        if (is_readable($directory . '/' . $file)) {
            // Sanitize file name to prevent directory traversal attacks
            $safeFileName = htmlspecialchars($file);
            echo $safeFileName . "<br>";
        }
    }
} else {
    echo "Invalid directory";
}