【问题标题】:php write file and set permissionphp写入文件并设置权限
【发布时间】:2011-07-10 16:42:11
【问题描述】:

我正在尝试创建一个无需手动设置权限即可立即编辑的 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 中编辑文件时,它当然不会让我这样做。我必须手动设置创建文件的权限。有什么方法可以创建文件并设置权限吗?

提前致谢

毛罗

【问题讨论】:

    标签: php file-permissions


    【解决方案1】:

    Php 有chmod,和 Linux 版本一样工作。

    【讨论】:

      【解决方案2】:

      是的,感谢PHP CHMOD

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

      【讨论】:

      • 非常感谢,但我什么时候把它放在我的代码中?对不起我的无知! :]
      【解决方案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);
      ?>
      

      【讨论】:

        猜你喜欢
        • 2017-09-27
        • 2015-12-31
        • 2012-06-12
        • 1970-01-01
        • 2015-10-18
        • 1970-01-01
        • 2011-11-14
        • 2015-11-24
        • 2017-05-15
        相关资源
        最近更新 更多