开发者

php write file and set permission

开发者 https://www.devze.com 2023-02-15 04:28 出处:网络
I\'m trying to create a php file which I can edit straight away without manually set the permissions.

I'm trying to create a php file which I can edit straight away without manually set the permissions.

I'm trying this...

<?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);

?>

...it creates the file, but when I try to edit the file in my IDE it won't let me of course. I have to manually set the permission of the file created. Is there any way I can create the file and have the permission already set?

Thanks in advance

Mauro开发者_如何学编程


Yes, you can thanks to PHP CHMOD

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


Since this aspect wasn't covered in previous answers I'll add it here:

chmod() will only take a path string as the 1st argument. So you cannot try to pass to resource that was open with fopen(), in this case $fh.

You need to fclose() the resource and then run chmod() with the file path. So a proper practice would be storing the filePath in a variable and using that variable when calling fopen() rather than passing it a direct string in the first argument.

In the case of the example code in the answer this would simply mean running chmod($myfile, 0755) (the permission code is only an example and be different of course.)

full code after corrections:

<?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);
?>


Php has chmod, works just like the Linux version.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号