使用PHP复制文件时,如何保留文件权限和所有者?
复制文件的代码:
$source = CSS . 'customers' . DS . 'source.css';
$destination = CSS . 'customers' . DS . 'destination.css';
if(!@copy($source, $destination)) {
$errors= error_get_last();
echo "COPY ERROR: ".$errors['type'];
echo "<br />'n".$errors['message'];
}
输出:
-rwxrwxrwx 1 myuser admin 7145 11 Nov 20:02 source.css
-rw-r--r-- 1 daemon admin 7145 19 Nov 16:27 destination.css
只有admin/root才能更改文件的所有者。
- Apache作为用户Apache或守护进程运行,并且不能更改所有权
- 以用户身份运行的CLI程序无法更改所有者
- 以root身份运行的CLI程序可以更改所有者
您可以将文件权限设置为可由组或所有用户读取。
exec( 'chmod 664 ' . $filename ); // Group only
exec( 'chmod 666 ' . $filename ); // All users
文件名是带有路径或相对于脚本路径的绝对文件名!