octdec

(PHP 3, PHP 4, PHP 5)

octdec -- Octal to decimal

Description

number octdec ( string octal_string )

Returns the decimal equivalent of the octal number represented by the octal_string argument. The largest number that can be converted is 17777777777 or 2147483647 in decimal. As of PHP 4.1.0, this function can also convert larger numbers. It returns float in that case.

Пример 1. octdec() example

<?php
echo octdec('77') . "\n";
echo
octdec(decoct(45));
?>

Результат выполнения данного примера:

63
45

See also: decoct(), bindec(), hexdec(), and base_convert().



octdec
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
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

<mt_srandpi>
 Last updated: Tue, 15 Nov 2005