Number is octal?
Simple and easy:
<?php
function is_octal($x) {
return decoct(octdec($x)) == $x;
}
echo is_octal(077); // true
echo is_octal(195); // false
?>
Thanks
[]'s
octdec
(PHP 4, PHP 5)
octdec — 8진수를 10진수로 변환합니다.
설명
int octdec
( string $octal_string
)
octal_string 인수로 주어진 8진수에 해당하는 10진수를 반환합니다. 변환 가능한 가장 큰 숫자는 17777777777로, 10진수 2147483647에 해당합니다.
Example#1 octdec() 예제
<?php
echo octdec('77') . "\n";
echo octdec(decoct(45));
?>
위 예제의 출력은:
63 45
참고: decoct(), bindec(), hexdec(), base_convert().
octdec
contato at andersonfraga dot net
18-Aug-2008 01:30
18-Aug-2008 01:30
harry at disgruntledgoat dot com
27-Mar-2007 04:03
27-Mar-2007 04:03
Calling the sticky bit "text" is not erroneous: On UNIX back in 1974, it instructed the operating system to retain the text segment of the program in swap space after the process exited. This speeded subsequent executions by allowing the kernel to make a single operation of moving the program from swap to real memory.
11-Sep-2002 01:51
The 'S' flag for Unix file access rights is badly computed in the above sample.
If the corresponding 'x' bit (exec) is not set, and the 's' bit (setgid/setuid/sticky) is set, then the flag should not be displayed as and uppercase 'S', but as a lower case 's'. Also the sticky bit (mainly used for folders with public right access rights such as /tmp to protect against deletion by non owner) is badly named ("text"?).
meheler at searchbc dot com
25-Oct-2001 08:03
25-Oct-2001 08:03
This function and decoct work great when working with file permissions. For example:
<?php
$mode = octdec('4750');
$user['suid'] = ($mode & 04000);
$user['read'] = ($mode & 00400);
$user['write'] = ($mode & 00200);
$user['execute'] = ($mode & 00100);
$group['sgid'] = ($mode & 02000);
$group['read'] = ($mode & 00040);
$group['write'] = ($mode & 00020);
$group['execute'] = ($mode & 00010);
$other['text'] = ($mode & 01000);
$other['read'] = ($mode & 00004);
$other['write'] = ($mode & 00002);
$other['execute'] = ($mode & 00001);
$attrs = array('-','-','-','-','-','-','-','-','-','-');
if ($system['dir']) $attrs[0] = 'd';
if ($user['read']) $attrs[1] = 'r';
if ($user['write']) $attrs[2] = 'w';
if ($user['execute']) $attrs[3] = 'x';
if ($user['suid']) $attrs[3] = 'S';
if ($group['read']) $attrs[4] = 'r';
if ($group['write']) $attrs[5] = 'w';
if ($group['execute']) $attrs[6] = 'x';
if ($group['sgid']) $attrs[6] = 'S';
if ($other['read']) $attrs[7] = 'r';
if ($other['write']) $attrs[8] = 'w';
if ($other['execute']) $attrs[9] = 'x';
if ($other['text']) $attrs[9] = 'T';
echo '<pre>';
echo 'Mode Decimal: ' . $mode . "\n";
echo 'Mode Octal: ' . decoct($mode) . "\n";
echo 'Mode String: ' . implode('',$attrs)."\n";
echo '</pre>';
?>
Outputs:
Mode Decimal: 2536
Mode Octal: 4750
Mode String: -rwSr-x---
-Mike
