我正在尝试创建一个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中编辑文件时,它当然不会让我。我必须手动设置创建的文件的权限。有什么办法可以创建文件并且已经设置了权限吗?
提前致谢
莫罗
答案 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版本一样。