// set HIDDEN attribute of file on Windows
$file = 'path/to/file.ext';
$file = str_replace('/', '\\', $file);
unset($res);
exec('attrib +H ' . escapeshellarg($file), $res);
$res = $res[0];
//$res contains result string of operation
Подсказки:
Замена '/' на '\' важна, поскольку команда оболочки (attrib) не так терпима к слешам, как PHP.
$ res сначала не устанавливается, потому что exec ()добавляет к любому существующему значению.
Если вы ищете способ установить для файла только для чтения , который будет работать в Windows AND * nix, взгляните намой ответ на этот другой вопрос: https://stackoverflow.com/a/27127640/430742