PHP 文件系统 chown() 函数



PHP 文件系统chown()函数用于更改指定文件的拥有者。只有超级用户才能使用此函数更改文件的所有者。成功返回 true,否则返回 false。

语法

以下是 PHP 文件系统chown()函数的语法:

bool chown ( string filename, string/int user )

参数

使用chown()函数所需的参数如下:

序号 参数及描述
1

filename(必填)

需要更改其所有者的文件路径。

2

user(必填)

文件的新的所有者。可以是用户名、用户 ID 或数字。

返回值

成功返回 TRUE,失败返回 FALSE。

PHP 版本

chown()函数最初作为 PHP 4 的核心部分引入,并与 PHP 5、PHP 7、PHP 8 良好兼容。

示例

下面的代码使用 PHP 文件系统chown()函数将 myfile.txt 的所有者更改为用户 root,然后打印有关文件新所有者的详细信息。

我们还使用了 stat() 和 posix_getpwuid() 函数。stat() 获取有关文件的信息,而 posix_getpwuid() 通过用户 ID 获取用户信息。

<?php
   // File name and username to use
   $filename= "myfile.txt";
   $dirpath = "/Applications/XAMPP/xamppfiles/htdocs/mac/" . $filename ;
   $user_name = "root";
    
   // Set the user
   chown($dirpath, $user_name);
    
   // Check the result
   $stat = stat($dirpath);
   print_r(posix_getpwuid($stat['uid']));
?>

输出

这将产生以下结果:

Array ( 
   [name] => root 
   [passwd] => ******** 
   [uid] => 501 
   [gid] => 20 
   [gecos] => root
   [dir] => /root 
   [shell] => /bin/zsh 
)

示例

在本例中,我们将尝试将位于用户主目录中的名为“myfile.txt”的文件的所有者更改为名为“nick”的用户。当更改访问权限或需要许多用户控制系统内的同一文件时,这将非常有用。

<?php
   // Define the file name and path
   $filename = "myfile.txt";

   $dirpath = "/home/nick/documents/" . $filename;

   // Define the user name
   $user_name = "nick";

   // Change the owner of the file to "nick"
   chown($dirpath, $user_name);

   echo "Changed Owner for User's Home Directory is: ". $user_name;
?> 

输出

这将生成以下结果:

Changed Owner for User's Home Directory is: nick

示例

此 PHP 代码将把文件或目录的所有者更改为 web 服务器的“www-data”,方法是将所有权转移到 web 服务器软件用于访问和提供 web 内容的用户帐户。

<?php
   // declare the file name and path
   $filename = "index.html";
   $dirpath = "/var/www/html/" . $filename;

   // declare the user name
   $user_name = "www-data";

   // change the owner of the file to "www-data"
   chown($dirpath, $user_name);

   // check the result
   $stat = stat($dirpath);
   print_r(posix_getpwuid($stat['uid']));
?> 

输出

这将产生以下结果:

Array ( 
   [name] => root 
   [passwd] => * 
   [uid] => 0 [gid] => 0 
   [gecos] => System Administrator 
   [dir] => /var/root 
   [shell] => /bin/sh 
)

示例

在本例中,我们将更改 FTP 目录中“upload.txt”文件的所有者为名为 ftpuser 的用户。此用户使用 FTP 处理文件。

<?php
   $filename = "upload.txt";
   $dirpath = "/home/ftpuser/ftp/" . $filename;

   // Define the user name
   $user_name = "ftpuser";

   // Change the owner of the file to "ftpuser"
   chown($dirpath, $user_name);

   // Check the result
   $stat = stat($dirpath);
   print_r(posix_getpwuid($stat['uid']));
?> 

输出

这将产生以下结果:

Array ( 
   [name] => root 
   [passwd] => * 
   [uid] => 0 [gid] => 0 
   [gecos] => System Administrator 
   [dir] => /var/root 
   [shell] => /bin/sh 
)

注意

  • 在 Windows 平台上,此功能不可用。
  • 此函数无法处理远程文件,因为它无法访问文件系统。

总结

PHP 文件系统函数chown()可用于更改文件的所有者。通过赋予适当的所有权,可以更轻松地处理目录和文件。

php_function_reference.htm
广告