PHP 文件权限

时间:2018-11-15 15:08:46  来源:igfitidea点击:

在本教程中,我们将学习如何处理PHP文件权限,包括检查和更改文件权限。

文件权限指定您可以对系统中的特定文件做什么,例如,读取、写入或执行文件。

注意,PHP自动在后台授予适当的权限。例如,如果您创建一个用于写入的新文件,PHP将自动授予您读写权限。

此外,PHP还提供了一些有用的函数来检查和更改文件权限。

PHP检查文件权限

PHP提供了三个有用的函数,方便你检查文件权限:

  • is_readable()如果你有权限读取文件,则返回true,否则返回false。
  • is_writeable()如果你有权限写入文件,则返回true,否则返回false。
  • is_executable()如果允许您执行文件,返回true,否则返回false。

让我们看例子:

<?php 
$fn = './test.text';
 
$msg = is_readable($fn) ? $msg = '文件可读': $msg = '文件不可读';
echo $msg . '<br/>';
 
$msg = is_writable($fn) ? $msg = '文件可写' : $msg = '文件不可写';
 
echo $msg . '<br/>';
 
$msg = is_executable($fn) ? $msg = '文件是可执行的' : $msg = '文件是不可执行的';
 
echo $msg . '<br/>';

除了这些函数之外,PHP还提供了fileperms()函数,该函数返回一个整数,该整数表示在特定文件上设置的权限。

<?php 
$fn = './test.txt';
$fp = fileperms($fn);
 
echo substr(sprintf('%o', $fp), -4); //0666

PHP更改文件权限

要更改文件权限或模式,可以使用chmod()函数。

首先,需要传入要设置权限的文件的名称。其次,需要指定所需的权限。
如果权限设置成功,chmod()函数将返回true,否则将返回false。

文件权限由包含三个数字的八进制数表示:

第一个数字指定文件的所有者可以对文件做什么。
第二个数字指定文件的所有者组可以对文件做什么。
第三位数字指定每个人可以对文件做什么。

下表说明了代表特定用户(用户、用户组或每个人)访问权限的每个数字的值:

权限
0读写执行权限都没有
1只能执行
2只能写
3能够写和执行
4只读
5可以读和执行
6可以读写
7可以读写和执行

例如,要设置一个权限,只有创建者或所有者可以读写文件,其他人只能读取文件,我们可以使用以下代码:

<?php 
$fn = './test.txt';
chmod($fn, 0644);

注意,我们将0放在644之前,要求PHP将其解释为八进制数。