string 2 octal ?

bird

Guest
string 2 octal ?

вопрос на засыпку:

как преобразовать строку типа "0755" в int (octal) 0755. То биш само в себя :).

проблема в невозможности подставить данную строку в функцию chmod(). получается очень уж непредсказуемый результат. а она требует именно int.

прецендент:

читается конфиг, где расписаны права на папки и затем эти права назначаются. Но дело в том что при чтении все все получаемые значения масива - строки

почти риторический вопрос :) : что делать?
 

_RVK_

Новичок
Чего то я не понял... Если PHP сам преобразует типы, в чем проблема? string "0755" == int 0755
 

bird

Guest
все дело в том что в

chmod("/root", 0777);

и

chmod("/root", "0777");

не одно и то же. кто не верит - может попробовать :)))

2demiurg >

octdec("0755") === (int)493

а надо на выходе октал 0755
 

Demiurg

Guest
Diesel,
echo intval("0755") , "<br>";
echo octdec( "0755") , "<br>";
 

Demiurg

Guest
>а надо на выходе октал 0755
так это оно и есть.
 

tony2001

TeaM PHPClub
я одного не понял:
>Но дело в том что при чтении все все получаемые значения масива - строки
это как ?
$array['key'] = 0777;
и никаких строк..
 

bird

Guest
demiurg,
хочешь сказать что

chmod("/root", 0777);

и

chmod("/root", octdec("0777"));

одно и тоже???????????
 

Demiurg

Guest
>>Но дело в том что при чтении все все получаемые значения масива - строки
>это как ?

он наверно читает из текстового файла.
 

bird

Guest
2tony2001

test.conf listing:

/root = 0777
/home = 0777

читаем конфиг:

$ini = parse_ini_file("/home/test.conf");

print gettype($ini["/root"])

выводит "string"

вот так вот
 

tony2001

TeaM PHPClub
аа, я понял про текстовый файл.
но вариант Демиурга работает, попробуй.
 

_RVK_

Новичок
Наверное я не выспался, но всё равно не пойму... 0777=="0777" какая функции разница строка это или число?
 

Demiurg

Guest
у любой переменной есть тип и значение. поэтому для функции в общем случае есть разница какого типа параметры она принимает.

> 0777=="0777"
это не верно

>Да это даже в мануале написанно, но почему не сказанно...
самая загадочна фраза за сегодня.
 
Сверху