downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

pi> <mt_srand
[edit] Last updated: Fri, 18 May 2012

view this page in

octdec

(PHP 4, PHP 5)

octdecOctal to decimal

Description

number octdec ( string $octal_string )

Returns the decimal equivalent of the octal number represented by the octal_string argument.

Parameters

octal_string

The octal string to convert

Return Values

The decimal representation of octal_string

Changelog

Version Description
Since 4.1.0 The function can now convert numbers that are too large to fit into the platforms integer type, larger values are returned as float in that case.

Examples

Example #1 octdec() example

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

The above example will output:

63
45

See Also



pi> <mt_srand
[edit] Last updated: Fri, 18 May 2012
 
add a note add a note User Contributed Notes octdec
cubbo at quakenet dot php 18-Feb-2009 05:49
Hi, this is an attempt to explain octdec().

There is one bug, if input is not octal, it doesn't return a proper decimal.

<?php

$octal
= (int) "764";

function
octal_to_decimal($int)
    {               
       
$data = integer;
       
$i = (strlen($int) - 1);   
       
$parse_int = str_split($int);
        foreach(
$parse_int as $value)
            {
               
$data += (int)($value * pow(8, $i));
               
$i--;
            }       
        return
$data;
    }
/**
*    explanation of the PHP function octdec()
*/
print octal_to_decimal($octal) . "<br />";

/**
*    the PHP function octdec()
*/
print octdec($octal);

?>
contato at andersonfraga dot net 18-Aug-2008 01:30
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
harry at disgruntledgoat dot com 27-Mar-2007 03: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
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

 
show source | credits | sitemap | contact | advertising | mirror sites