PHP.mk документација

fileperms

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.fileperms.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.fileperms.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
fileperms

Референца за `function.fileperms.php` со подобрена типографија и навигација.

function.fileperms.php

fileperms

(PHP 4, PHP 5, PHP 7, PHP 8)

filepermsГи добива дозволите за датотеката

= NULL

fileperms(string $filename): int|false

Ги добива дозволите за дадената датотека.

Параметри

filename

Патека до датотеката.

Вратени вредности

Враќа дозволите на датотеката како нумерички режим. Пониските битови на овој режим се исти како дозволите што се очекуваат од chmod(), меѓутоа на повеќето платформи вратената вредност ќе вклучува и информации за типот на датотеката дадена како filename. Примерите подолу покажуваат како да се тестира вратената вредност за специфични дозволи и типови датотеки на POSIX системи, вклучувајќи Linux и macOS.

За локални датотеки, специфичната вратена вредност е онаа на st_mode член на структурата вратена од C библиотеката stat() функција. Точно кои битови се поставени може да варираат од платформа до платформа, и се препорачува да се погледне документацијата на вашата специфична платформа ако е потребно парсирање на битовите што не се дозволи на вратената вредност.

Патеката до PHP скриптата што треба да се провери. false при неуспех.

Errors/Exceptions

Бидејќи типот на податоци integer во PHP е со знакот и многу платформи користат 32-битни integers, некои функции за датотечниот систем може да вратат неочекувани резултати за датотеки поголеми од 2GB. E_WARNING се емитува.

Примери

Пример #1 Прикажи дозволи како октална вредност

<?php
echo substr(sprintf('%o', fileperms('/tmp')), -4);
echo
substr(sprintf('%o', fileperms('/etc/passwd')), -4);
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

1777
0644

Пример #2 Прикажи целосни дозволи

<?php
$perms
= fileperms('/etc/passwd');

switch (
$perms & 0xF000) {
case
0xC000: // socket
$info = 's';
break;
case
0xA000: // symbolic link
$info = 'l';
break;
case
0x8000: // regular
$info = 'r';
break;
case
0x6000: // block special
$info = 'b';
break;
case
0x4000: // directory
$info = 'd';
break;
case
0x2000: // character special
$info = 'c';
break;
case
0x1000: // FIFO pipe
$info = 'p';
break;
default:
// unknown
$info = 'u';
}

// Owner
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
((
$perms & 0x0800) ? 's' : 'x' ) :
((
$perms & 0x0800) ? 'S' : '-'));

// Group
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
((
$perms & 0x0400) ? 's' : 'x' ) :
((
$perms & 0x0400) ? 'S' : '-'));

// World
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
((
$perms & 0x0200) ? 't' : 'x' ) :
((
$perms & 0x0200) ? 'T' : '-'));

echo
$info;
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

-rw-r--r--

Белешки

Забелешка: Имајте предвид дека резолуцијата на времето може да се разликува од еден датотечен систем до друг. clearstatcache() за повеќе детали.

Совети

Резултатите од оваа функција се кеширани. Погледнете some Од PHP 5.0.0, оваа функција може да се користи и со Поддржани протоколи и обвивки URL обвивки. Погледнете stat() за да се утврди кои обвивки поддржуваат

Види Исто така

  • chmod() - Ги менува режимот на датотеката
  • is_readable() - Проверува дали постои датотека или директориум
  • stat() - Дава информации за датотека

Белешки од корисници 4 белешки

coolmic на example точка com
12 години пред
Don't use substr, use bit operator
<?php
decoct(fileperms($file) & 0777); // return "755" for example
?>

If you want to compare permission
<?php
0755 === (fileperms($file) & 0777);
?>
admin на torntech dot com
пред 14 години
This may not be immediately apparent to some, but you can use octdec( $octal_value ) to match the permissions retrieved by file perms

<?php

//assumes file has 2770 permissions
$perm= fileperms( __FILE__ ); 
$bit = "102770";

printf( "%s\n", octdec( $bit ) );
printf( "%s\n", $perm);

?>
chris на ocproducts dot com
пред 6 години
Windows has a very different file permission model to Unix and integrates them only minimally.

Here's how Windows calculates the bitmask...

u+w/g+w/o+w is set based on whether the file has the read only flag.

u+r/g+w/o+w is always set.

u+x/g+x/o+x is set based on whether $filename is an inherently executable file (e.g. bat) or a directory.

Windows isn't integrating its ACLs at all.

Here's the source of all this: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/stat-functions?view=vs-2019 (but it doesn't provide many details)
paul2712 на gmail точка com
пред 18 години
Do not forget: clearstatcache();
==============================
 
When ever you make a:

mkdir($dstdir, 0770 ))

or a:

chmod($dstdir, 0774 ); 

You have to call:

clearstatcache();

before you can call:

fileperms($dstdir);
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.