web-dev-qa-db-ja.com

ファイル許可とCHMOD:PHPでファイル作成時に777を設定する方法?

存在しない場合に最初に新しいファイルとして作成されるファイルを保存するときのファイル権限に関する質問。

さて、これはすべてうまくいき、保存されたファイルはモード644

ファイルをモードとして保存するには、ここで何を変更する必要がありますか777

ヒント、手がかり、または回答をありがとうございました。私がここに含めた関連があると私が思うコード:

/* write to file */

   self::writeFileContent($path, $value);

/* Write content to file
* @param string $file   Save content to wich file
* @param string $content    String that needs to be written to the file
* @return bool
*/

private function writeFileContent($file, $content){
    $fp = fopen($file, 'w');
    fwrite($fp, $content);
    fclose($fp);
    return true;
}
12
Sam

PHPにはbool chmod(string $filename, int $mode )という組み込み関数があります

http://php.net/function.chmod

private function writeFileContent($file, $content){
    $fp = fopen($file, 'w');
    fwrite($fp, $content);
    fclose($fp);
    chmod($file, 0777);  //changed to add the zero
    return true;
}
25
thescientist

chmod() を使用して、必要な権限を手動で設定するだけです。

private function writeFileContent($file, $content){
    $fp = fopen($file, 'w');
    fwrite($fp, $content);
    fclose($fp);

    // Set perms with chmod()
    chmod($file, 0777);
    return true;
}
6

既存のファイルの権限を変更したい場合は、 chmod (変更モード)を使用します。

$itWorked = chmod ("/yourdir/yourfile", 0777);

すべての新しいファイルに特定の権限を付与する場合は、umodeの設定を確認する必要があります。これは、デフォルトの変更を標準モードに適用するプロセス設定です。

減法です。つまり、umode022の場合、デフォルトの権限は755777 - 022 = 755)になります。

しかし、これらのオプションについてverybothについて慎重に考える必要があります。そのモードで作成されたファイルは、変更から完全に保護されません。

2
paxdiablo