Xel*_*akz 5 php permissions chmod octal
我的代码就像
$perm = "0777"; //this is fetch from the database
chmod("myFolder/", $perm);
Run Code Online (Sandbox Code Playgroud)
但$ perm的值不是八进制,我怎样才能将变量的数据类型更改为八进制?甚至一种替代方法也可以
如上所述,没有八进制数字类型.并且chmod函数接收第二个参数作为整数.隐式转换$perm并不假设该数字是八进制的.因此,您需要使用适当的函数将"八进制字符串"转换为整数.
只需使用octdec功能
$perm = "0777"; //this is fetch from the database
chmod("myFolder/", octdec($perm));
Run Code Online (Sandbox Code Playgroud)
或者是intval
chmod("myFolder/", intval($perm, 8));
Run Code Online (Sandbox Code Playgroud)
PS
var_dump('0644' == 0644); // bool(false)
var_dump(intval('0644') == 0644); // bool(false)
var_dump(decoct('0644') == 0644); // bool(false)
var_dump(octdec('0644') == 0644); // bool(true)
var_dump(intval('0644', 8) == 0644); // bool(true)
Run Code Online (Sandbox Code Playgroud)
Bla*_*aat -1
八进制不是一种类型。整数是类型。
您想要将字符串转换为 int,并且由于该字符串以零开头,因此它将是一个八进制整数。
为此使用intval :
chmod('myFolder/', intval($perm));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1327 次 |
| 最近记录: |