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
(PHP 4, PHP 5, PHP 7, PHP 8)
octdec — Octal to decimal
Returns the decimal equivalent of the octal number
represented by the octal_string
argument.
octal_string
The octal string to convert.
Any invalid characters in octal_string
are silently ignored.
As of PHP 7.4.0 supplying any invalid characters is deprecated.
The decimal representation of octal_string
Version | Description |
---|---|
7.4.0 | Passing invalid characters will now generate a deprecation notice. The result will still be computed as if the invalid characters did not exist. |
Example #1 octdec() example
<?php
echo octdec('77') . "\n";
echo octdec(decoct(45));
?>
The above example will output:
63 45
Note:
The function can convert numbers that are too large to fit into the platforms int type, larger values are returned as float in that case.
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
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"?).
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.