Hướng dẫn how can i give permission to a file in php? - làm cách nào tôi có thể cấp quyền cho một tệp trong php?

Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu cách xử lý các quyền của tệp PHP, bao gồm kiểm tra và thay đổi quyền của tệp.: in this tutorial, you will learn how to deal with PHP file permissions, including checking and changing file permissions.

Quyền tệp Chỉ định những gì người dùng có thể làm với một tệp, ví dụ: đọc, viết hoặc thực thi nó. Lưu ý rằng PHP tự động & nbsp; cấp các quyền thích hợp đằng sau hậu trường.

Ví dụ: nếu bạn & nbsp; tạo một tệp mới để viết, PHP sẽ tự động cấp quyền đọc và ghi.

PHP cung cấp một số chức năng hữu ích để kiểm tra và thay đổi quyền của tệp.

Kiểm tra quyền tệp

PHP có ba chức năng tiện dụng kiểm tra quyền tệp:

  • Hàm is_readable() Trả về true nếu tệp tồn tại và có thể đọc được; Nếu không, nó trả về false.
  • Hàm is_writable() Trả về true nếu tệp tồn tại và có thể ghi; Nếu không, nó trả về false.
  • Hàm

    $permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

    Code language: HTML, XML (xml)
    0 Trả về true nếu tệp tồn tại và thực thi; Nếu không, nó trả về false.

Hãy cùng xem ví dụ sau:

$filename = 'readme.txt'; $functions = [ 'is_readable', 'is_writable', 'is_executable' ]; foreach ($functions as $f) { echo $f($filename) ? 'The file ' . $filename . $f : ''; }

Code language: HTML, XML (xml)

Bên cạnh các chức năng đó, PHP cũng cung cấp hàm

$permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

Code language: HTML, XML (xml)
3 trả về một số nguyên, đại diện cho các quyền được đặt trên một tệp cụ thể. Ví dụ:

$permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

Code language: HTML, XML (xml)

Thay đổi quyền tệp

Để thay đổi quyền hoặc chế độ Tệp, bạn sử dụng hàm

$permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

Code language: HTML, XML (xml)
4:

chmod ( string $filename , int $permissions ) : bool

Code language: PHP (php)

Hàm

$permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

Code language: HTML, XML (xml)
4 có hai tham số:

  • $permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

    Code language: HTML, XML (xml)
    6 là tệp mà bạn muốn thay đổi quyền.
  • $ Tham số Quyền bao gồm ba thành phần số octal chỉ định các hạn chế truy cập cho chủ sở hữu, nhóm người dùng trong đó chủ sở hữu và mọi người khác trong chuỗi này.

Hàm

$permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

Code language: HTML, XML (xml)
4 trả về true khi thành công hoặc false khi thất bại.

Đối số quyền được biểu thị bằng một số bát phân chứa ba chữ số:

  • Digit đầu tiên chỉ định những gì chủ sở hữu của tệp có thể đọc, ghi hoặc thực thi tệp.
  • Chữ số thứ hai chỉ định nhóm người dùng trong đó chủ sở hữu có thể đọc, viết hoặc thực thi tệp.
  • Chữ số thứ ba chỉ định những gì mọi người khác có thể đọc, viết hoặc thực thi tệp.

Bảng sau đây minh họa giá trị của mỗi chữ số thể hiện quyền truy cập cho người dùng cụ thể (chủ sở hữu, nhóm người dùng hoặc mọi người khác):

Giá trịSự cho phép
0 không thể đọc, viết hoặc thực hiện
1 Chỉ có thể thực thi
2 chỉ có thể viết
3 có thể viết và thực thi
4 Chỉ có thể đọc
5 có thể đọc và thực thi
6 có thể đọc và viết
7 có thể đọc, viết và thực hiện

Ví dụ sau đây đặt quyền mà chủ sở hữu duy nhất có thể đọc và ghi tệp, mọi người khác chỉ có thể đọc tệp:

$filename = './readme.txt'; chmod($filename, 0644);

Code language: HTML, XML (xml)

Lưu ý rằng chúng tôi đặt

chmod ( string $filename , int $permissions ) : bool

Code language: PHP (php)
0 trước

chmod ( string $filename , int $permissions ) : bool

Code language: PHP (php)
1 để hướng dẫn PHP coi nó là một số bát phân.

Bản tóm tắt

  • Sử dụng is_readable(), is_writable(),

    $permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

    Code language: HTML, XML (xml)
    0 để kiểm tra xem một tệp có tồn tại và có thể đọc được, có thể ghi và thực thi không.
  • Sử dụng chức năng

    $permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

    Code language: HTML, XML (xml)
    4 để đặt quyền cho một tệp.

Bạn có thấy hướng dẫn này hữu ích không?

(Php 4, Php 5, Php 7, Php 8)

Chmod - Thay đổi chế độ tệpChanges file mode

Sự mô tả

CHMOD (Chuỗi

$permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

Code language: HTML, XML (xml)
6, Int

chmod ( string $filename , int $permissions ) : bool

Code language: PHP (php)
7): Bool
(string

$permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

Code language: HTML, XML (xml)
6
, int

chmod ( string $filename , int $permissions ) : bool

Code language: PHP (php)
7
): bool

Thông số

chmod ( string $filename , int $permissions ) : bool

Code language: PHP (php)
8

Đường dẫn đến tệp.

chmod ( string $filename , int $permissions ) : bool

Code language: PHP (php)
9

Lưu ý rằng

chmod ( string $filename , int $permissions ) : bool

Code language: PHP (php)
9 không tự động được coi là giá trị bát phân, vì vậy để đảm bảo hoạt động dự kiến, bạn cần tiền tố

chmod ( string $filename , int $permissions ) : bool

Code language: PHP (php)
9 với số 0 (0). Các chuỗi như "G+W" sẽ không hoạt động đúng.

$filename = './readme.txt'; chmod($filename, 0644);

Code language: HTML, XML (xml)
2

Tham số

chmod ( string $filename , int $permissions ) : bool

Code language: PHP (php)
9 bao gồm ba thành phần số octal chỉ định các hạn chế truy cập cho chủ sở hữu, nhóm người dùng mà chủ sở hữu đang ở và cho mọi người khác theo thứ tự này. Một thành phần có thể được tính toán bằng cách thêm các quyền cần thiết cho cơ sở người dùng mục tiêu đó. Số 1 có nghĩa là bạn cấp quyền thực thi, số 2 có nghĩa là bạn tạo tệp có thể ghi, số 4 có nghĩa là bạn có thể đọc được tệp. Thêm các số này để chỉ định các quyền cần thiết. Bạn cũng có thể đọc thêm về các chế độ trên các hệ thống UNIX với 'Man 1 Chmod' và 'Man 2 Chmod'.man 1 chmod' and 'man 2 chmod'.

$filename = './readme.txt'; chmod($filename, 0644);

Code language: HTML, XML (xml)
4

Trả về giá trị

Trả về true khi thành công hoặc false về thất bại.true on success or false on failure.

Errors/Exceptions

Sau khi thất bại, một

$filename = './readme.txt'; chmod($filename, 0644);

Code language: HTML, XML (xml)
7 được phát ra.

$filename = './readme.txt'; chmod($filename, 0644);

Code language: HTML, XML (xml)
7
is emitted.

Ghi chú

Ghi chú::

Người dùng hiện tại là người dùng mà PHP chạy. Nó có thể không phải là cùng một người dùng bạn sử dụng để truy cập shell hoặc ftp bình thường. Chế độ chỉ có thể được thay đổi bởi người dùng sở hữu tệp trên hầu hết các hệ thống.

Lưu ý: Hàm này sẽ không hoạt động trên các tệp từ xa vì tệp cần được kiểm tra phải có thể truy cập thông qua hệ thống tệp của máy chủ.: This function will not work on remote files as the file to be examined must be accessible via the server's filesystem.

Xem thêm

  • Chown () - Thay đổi chủ sở hữu tệp
  • CHGRP () - Thay đổi nhóm tệp
  • fileperms () - Nhận quyền tệp
  • stat () - cung cấp thông tin về một tệp

Có phương pháp

12 năm trước

$filename = './readme.txt'; chmod($filename, 0644);

Code language: HTML, XML (xml)
8

$filename = './readme.txt'; chmod($filename, 0644);

Code language: HTML, XML (xml)
9

is_readable()0

is_readable()1

is_readable()2

is_readable()3

is_readable()4

is_readable()5

is_readable()6

is_readable()7

Geoff W ¶

12 năm trước

is_readable()8

is_readable()9

true0

true1

is_readable()7

Geoff W ¶

pmichaud tại pobox dot com ¶

true3

true4

true5

19 năm trước

is_readable()7

Không tại No dot es ¶

true7

1 năm trước

Chris at Ocproducts Dot Com ¶

true8

true9

false0

is_readable()7

2 năm trước

Ẩn danh ¶

false2

false3

false4

false5

13 năm trước

Alex tại Fidesign Dot Com ¶

false6

17 năm trước

Paul có thể tại Squirrel Mail org ¶

false7

false8

false9

is_writable()0

14 năm trước

Imoldgreg tại o2 dot co dot uk ¶

is_writable()1

is_writable()2

is_writable()3

is_writable()4

is_readable()7

15 năm trước

Andrey P.

is_writable()6

is_writable()7

is_writable()8

is_writable()9

true0

true1

true2

is_readable()7

11 năm trước

Paul có thể tại Squirrel Mail org ¶

true4

true5

true6

true7

14 năm trước

Imoldgreg tại o2 dot co dot uk ¶

true8

true9

false0

15 năm trước

Andrey P.

false1

false2

false3

false4

false5

false6

is_readable()7

11 năm trước

Ẩn danh ¶

false8

false9

$permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

Code language: HTML, XML (xml)
00

$permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

Code language: HTML, XML (xml)
01

13 năm trước

Imoldgreg tại o2 dot co dot uk ¶

$permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

Code language: HTML, XML (xml)
02

$permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

Code language: HTML, XML (xml)
03

$permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

Code language: HTML, XML (xml)
04

$permissions = fileperms('readme.txt'); echo substr(sprintf('%o', $permissions), -4); //0666

Code language: HTML, XML (xml)
05

Làm thế nào tôi có thể cho phép một thư mục trong PHP?

Bạn có thể sử dụng hàm chmod ().Lưu câu trả lời này.use chmod() function. Save this answer.

Những gì nên là quyền cho các tệp PHP?

PHP để người dùng có thể đọc và viết, nhóm đọc.Thay đổi quyền sở hữu của tập tin ...
Chủ sở hữu 6 sẽ là người tải lên các tệp ..
Nhóm 4 sẽ là người phục vụ tập tin.Biến Apache thành một thành viên nhóm ..
Không ai 0 có nghĩa là không người dùng nào khác có thể đọc tệp này ..

Việc sử dụng CHMOD 777 là gì?

Một số ví dụ về quyền tệp: 777 - Tất cả đều có thể đọc/ghi/thực thi (truy cập đầy đủ).755 - Chủ sở hữu có thể đọc/ghi/thực thi, nhóm/người khác có thể đọc/thực thi.644 - Chủ sở hữu có thể đọc/viết, nhóm/người khác chỉ có thể đọc.