![]() Join Up! 99841 members and counting! |
|
|||
BitMasks: Emulate Unix Permissions in PHP
conbributed and written by Eric Potvin
Bitmasking is a very useful method to emulate Unix-style file permissions (read/write/execute for example). What's nice about a PHP implementation is that you can configure your own bitmasks and use them for any kind of permissions in your scripts and applications. The implementation is relatively simple as well.
After you have your permissions scheme, you can apply it wherever you want. Let's use user permissions as an example. Say you wanted to create a user that had permissions to read and delete a log file. Using the above definitions, you would set the user's permission to "9". So, how do you properly decode that permission and apply it to the user? This can be easily acheived by using the following function:
What this function does is to break down the permission ($mask - the bit mask) into its components that are powers of 2 and return them in an array. If you did a print_r() of the above functions return with our example of "9" you would get:
Now that you have your array of permissions, you could use the "in_array" function to check if a user has permission to perform a requested action. Take a look at this sample code:
That's it! A simple, elegant, often-needed solution to a common problem. Original Article appeared at: http://www.gen-x-design.com/archives/bitmasks-emulate-unix-permissions-in-php
|