PHP Doku:: Liefert die Zugriffsrechte einer Datei - function.fileperms.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDateisystemrelevante ErweiterungenDateisystemDateisystem-Funktionenfileperms

Ein Service von Reinhard Neidl - Webprogrammierung.





(PHP 4, PHP 5)

filepermsLiefert die Zugriffsrechte einer Datei


int fileperms ( string $filename )

Gibt die Zugriffsrechte einer Datei zurück, oder FALSE wenn ein Fehler auftrat.

Diese Funktion ist nicht für remote Dateien geeignet, die zu prüfende Datei muss über das Dateisystem des Servers verfügbar sein.

Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe clearstatcache() für weitere Einzelheiten.

7 BenutzerBeiträge:
- Beiträge aktualisieren...
fmaz008 at gmail dot com
15.12.2010 23:19
If you want to test if a file have the permission requirement (let say prior to do a chmod, avoiding doing useless chmod), you can do this:

= 0644;
$actualPerms = fileperms($file);
$actualPerms < $wantedPerms)
chmod($file, $wantedPerms);
sviscaino123 at hotmail dot fr
15.06.2010 21:22
Here is a small function I made :
I was bored and I thought it could be useful.

mixed mkperms( string $perms [, bool return_as_string = false [, string $filename ] ] )
Returns permissions given a string in literal format and a filename.
If the file name is omitted, the permissions that the function will return are based on 000-permissions.
If return_as_string is set to true, the result will be output as a 644 format string. Otherwise it will return a string converted to base-10 for chmod.


echo mkperms('u+r', true), "\n"; // 400
echo mkperms('u+rwx,g+rw,o+x', true), "\n"; // 761

touch('myfile.txt'); // Create a file with any permissions
chmod('myfile.txt', mkperms('u=rwx,g=x,o=rw')); // myfile.txt is now at -rwx--xrw-

// Make a file and give it full permissions
chmod('somefile.txt', 0777);
mkperms('g-w,o-rw', true, 'somefile.txt'); // 751
echo mkperms('u=rwx,g-r,o=-', true, 'somefile.txt'); // 730
// This way you can apply permissions to files
chmod('somefile.txt', mkperms('u=rwx,g-r,o=-', false, 'somefile.txt')); // somefile.txt is now at -rwx-wx---

PS : sorry I had to put it on pastebin, or else it just made the note way too long.
jchris dot fillionr at kitware dot com
2.04.2009 12:11
Since the output of decoct( fileperms('.') ) is of the form: 40644

It seems the previous example is wrong, instead you should understand:

To get permissions formatted as "644":
echo substr(decoct( fileperms('.') ), 2);

To get permissions formatted  as "0644":
echo substr(decoct( fileperms('.') ), 1);
MartinAngermeier at gmx dot net
29.10.2008 21:37
An easy way to calculate fileperms to chmod is this:


Displays 666 or 777 (depends on chmod set).


Displays 0666 or 0777 and refers immediately to the number set with chmod();
10.07.2007 11:21
If you only want the permissions (lowest three octal numbers) you can use a bitwise AND to mask the bits:

($file) & 511;
paul2712 at gmail dot com
2.06.2007 18:08
Do not forget: clearstatcache();
When ever you make a:

mkdir($dstdir, 0770 ))

or a:

chmod($dstdir, 0774 );

You have to call:


before you can call:

chinello at gmail dot com
25.04.2007 6:43
On Linux (not tested on Windows), if you want a chmod-like permissions, you can use this function:

function file_perms($file, $octal = false)
file_exists($file)) return false;

$perms = fileperms($file);

$cut = $octal ? 2 : 3;

substr(decoct($perms), $cut);

Using it:

$ touch
$ chmod 0754
echo file_perms(''); // prints: 754
echo file_perms('', true); // prints 0754

PHP Powered Diese Seite bei
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)