0

PHP: Windows で 777 ファイルを chmod すると、33060 に変換されます。33060 を 777 に変換する関数を作成したいです。このように

function convertperm($num) {
//do something
}

そして使用:

echo convertperm(33060); //return 777

手伝って頂けますか。ありがとうございました!

4

1 に答える 1

0

この関数は入力から許可ビットを 8 進数で返すので、Windows のファイル許可が Unix と同じように機能する場合、次のように機能します。

function convertperm($num) {
    return 0777 & decoct($num);
}

ただし、Windows は Unix ではありません。取得する実行権限はstat 、ファイル名の拡張子によって異なります。の Windows バージョンはchmod 、ファイルを読み取り/書き込みまたは読み取り専用にするためにのみ使用できます。「読み取り」権限を削除することはできません。また、Windows には Unix のユーザー グループの概念が存在しないため、「所有者」、「グループ」、または「その他」に対する個別の権限はありません。

たとえば33060、上記の関数 return の444場合、読み取り専用権限を示します。理論上パーミッションを 777 に設定していた場合、666 に戻るはずです (Windows の chmod は実行ビットを無視します)。そのため、おそらくバグが原因です。を呼び出すときは、chmod必ず 8 進定数を使用してください。

chmod($filename, 0777);
于 2013-09-15T11:25:55.293 に答える