时间:2010-07-30 13:52:34

标签: php file-io

如何确定文件是否仅使用PHP函数标记为隐藏?这尤其适用于Windows和Linux。

1 个答案:

答案 0 :(得分:2)

在UNIX系统中,如果文件的名称以点(.)开头,则会隐藏该文件。

在Windows中,如果文件具有隐藏属性,则会隐藏该文件。

您可以创建一个检查Windows下属性的函数,并检查符合POSIX标准的系统下的文件名:

function file_hidden($file) {
    if (!file_exists($file))
        return false;

    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
        $attributes = shell_exec('attrib ' . escapeshellarg($file));

        // Just get the attributes
        $attributes = substr($attributes, 0, 12);

        if ($attributes === 'File not fou')
            return false;

        // Return if hidden
        return (strpos($attributes, 'H') !== false);
    } else {
        $basename = basename($file);

        return ($basename[0] === '.');
    }
}