php写文件和设置权限

时间:2011-03-07 22:05:42

标签: php file-permissions

我正在尝试创建一个php文件,我可以直接编辑而无需手动设置权限。

我正在尝试这个......

<?php

$var = '<?php $mycontent = new Content(); echo $mycontent->block($p_name);?>';

$myFile = "testFile.php";

$fh = fopen($myFile, 'w+') or die("can't open file");

$stringData = $var;

fwrite($fh, $stringData);

fclose($fh);

?>

...它创建了文件,但当我尝试在IDE中编辑文件时,它当然不会让我。我必须手动设置创建的文件的权限。有什么办法可以创建文件并且已经设置了权限吗?

提前致谢

莫罗

3 个答案:

答案 0 :(得分:13)

是的,你可以感谢PHP CHMOD

// Read and write for owner, read for everybody else
chmod("/somedir/somefile", 0644);

答案 1 :(得分:3)

由于先前的答案未涵盖此方面,因此我将其添加在这里:

chmod()仅将路径字符串作为第一个参数。因此,您无法尝试传递到使用fopen()打开的资源,在本例中为$fh

您需要fclose()资源,然后使用文件路径运行chmod()。因此,一种适当的做法是将filePath存储在变量中,并在调用fopen()时使用该变量,而不是在第一个参数中将其传递为直接字符串。

对于答案中的示例代码,这仅表示运行chmod($myfile, 0755)(权限代码仅是示例,当然会有所不同。)

更正后的完整代码:

<?php

$var = '<?php $mycontent = new Content(); echo $mycontent->block($p_name);?>';

$myFile = "testFile.php";

$fh = fopen($myFile, 'w+') or die("can't open file");

$stringData = $var;

fwrite($fh, $stringData);

fclose($fh);


// Here comes the added chmod:
chmod($myFile, 0755);
?>

答案 2 :(得分:1)

Php有chmod,就像Linux版本一样。