php中判断文件空目录是否有读写权限

Example #1 is_writable() 例子

 代码如下 复制代码

<?php
$filename = 'test.txt';
if (is_writable($filename)) {
  echo 'The file is writable';
} else {
  echo 'The file is not writable';
}
?> 

上面的函数有一个问题就是filename 必需。规定要检查的文件  ,必须是文件啊,目录不可判断,下面我们来判断空目录。

实例1

该功能非常常用,特别在一些需要生成静态文件的项目中,一个目录是否可以,关乎到是否对该目录有创建文件删除文件的权限

 代码如下 复制代码

/*
  问题出现:如何检查一个目录是否可写,如何目录下还有目录和文件,那么都要检查
   
  思路:
   (1)首先先写出检查空目录是否可写的算法:
         在该目录中生成一个文件,如果不能生成,表明该目录没有写的权限
   
   (2)使用递归的办法来进行检查
  
  代码实现:
 */
  set_time_limit(1000);
  function check_dir_iswritable($dir_path){
  $dir_path=str_replace('\','/',$dir_path);
  $is_writale=1;
  if(!is_dir($dir_path)){
    $is_writale=0;
    return $is_writale;
  }else{
   $file_hd=@fopen($dir_path.'/test.txt','w');
   if(!$file_hd){
    @fclose($file_hd);
    @unlink($dir_path.'/test.txt');
    $is_writale=0;
    return $is_writale;
   }
   $dir_hd=opendir($dir_path);
   while(false!==($file=readdir($dir_hd))){
    if ($file != "." && $file != "..") {
     if(is_file($dir_path.'/'.$file)){
      //文件不可写,直接返回
      if(!is_writable($dir_path.'/'.$file)){
       return 0;
      } 
     }else{
      $file_hd2=@fopen($dir_path.'/'.$file.'/test.txt','w');
      if(!$file_hd2){
       @fclose($file_hd2);
       @unlink($dir_path.'/'.$file.'/test.txt');
       $is_writale=0;
       return $is_writale;
      }
      //递归
      $is_writale=check_dir_iswritable($dir_path.'/'.$file);
     }
    }
   }
  }
  return $is_writale;
  }

上面实例主要是fopen去在目录创建文件或在文件中写内容,这样就可以判断目录的读写权限了。

时间: 2024-11-05 21:53:41

php中判断文件空目录是否有读写权限的相关文章

php中判断文件空目录是否有读写权限的函数代码_php技巧

is_writable用来处理,记住 PHP 也许只能以运行 webserver 的用户名(通常为 \'nobody\')来访问文件.不计入安全模式的限制. Example #1 is_writable() 例子 复制代码 代码如下: <?php $filename = 'test.txt'; if (is_writable($filename)) { echo 'The file is writable'; } else { echo 'The file is not writable'; }

PHP中判断文件存在使用is_file还是file_exists?_php技巧

判断文件存在用is_file还是file_exists? 在写程序时发现在判断文件是否存在时,有两种写法,有的人用了is_file,有的人用了file_exists,用哪个更好或者说更合适呢? 看了这篇PHP中file_exists与is_file,is_dir的区别的说法基本明白,PHP的 file_exists = is_dir + is_file. 写程序验证一下: 分别执行1000次,记录所需时间. 文件存在(当前目录) 复制代码 代码如下: is_file:0.4570ms file_

php中判断文件存在是用file_exists还是is_file的整理_php技巧

看了这篇PHP中file_exists与is_file,is_dir的区别的说法基本明白,PHP的 file_exists = is_dir + is_file. 写程序验证一下: 分别执行1000次,记录所需时间. 文件存在(当前目录) is_file:0.4570ms file_exists:2.0640ms 文件存在(绝对路径3层/www/hx/a/) is_file:0.4909ms file_exists:3.3500ms 文件存在(绝对路径5层/www/hx/a/b/c/) is_f

Go语言编程中判断文件是否存在是创建目录的方法_Golang

判断文件是否存在os.IsExists()函数和os.IsNotExists(),他们的函数的原形是func IsExist(err error) bool func IsNotExist(err error) bool 都是传入一个err返回bool 这里注意了 err已经定义好了 复制代码 代码如下:   /*  var (      ErrInvalid    = errors.New("invalid argument")      ErrPermission = errors

C++中判断文件是否存在

判断文件  代码如下 复制代码 #include<fstream.h>void main(){ ofstream f("c:\test.txt"); //打开文件test.txt,用于写,若文件不存在就先创建它 } 例  代码如下 复制代码 #include <iostream> #include <fstream> using namespace std; #define FILENAME "stat.dat" int main

Delphi中判断文件是否为文本文件的函数_Delphi

在自己编写文本文件读取函数的时候,你首先会遇到的第一个问题就是:对于给定的一个文件名,怎么知道它所代表磁盘文件的确是文本文件?这里有一个很简单的方法:把给定的那个文件看作是无类型的二进制文件,然后顺序地读出这个文件的每一个字节,如果文件里有一个字节的值等于0,那么这个文件就不是文本文件:反之,如果这个文件中没有一个字节的值是0的话,就可以判定这个文件是文本文件了.这是原理,下面看看在Delphi 中怎样编程来实现它-- 复制代码 代码如下: function IsTextFile(FileNam

如何在shell脚本中判断文件或者文件夹是否存在?

1:查找文件夹 如果文件夹存在,则打印一句存在,否则打印不存在 这里的话可以自由加一些指令. if [ test -d 文件夹名称 ] ; then echo "文件夹存在!" else echo "文件夹不存在!" fi 2:查找文件 如果文件存在,则打印一句存在,否则打印不存在 这里的话也可以自由加一些指令. if [ -f file.txt ]; then echo "文件存在!" else echo "文件不存在!"

Python判断文件和文件夹是否存在的方法

  这篇文章主要介绍了Python判断文件和文件夹是否存在的方法,本文还讲解了判断是否为文件或者目录的方法.os.path.lexist的作用.FTP中判断文件或目录是否存在等内容,需要的朋友可以参考下 一.python判断文件和文件夹是否存在.创建文件夹 代码如下: >>> import os >>> os.path.exists('d:/assist') True >>> os.path.exists('d:/assist/getTeacherLi

文件读写-求救…c++怎么将一个txt文件里的汉字读写到另一个新建文件中?

问题描述 求救-c++怎么将一个txt文件里的汉字读写到另一个新建文件中? 中文要怎么读啊-都是乱码,一行中文 饴糖:耛糖,胶饴,读到:就停止了,而且前面读的是乱码 解决方案 信息从一个txt文件传输到另一个txt文件的过程.中间是用WAV文件来传送第一个文件的信息的二进制码.(在MATLAB中)读一个文件里的某个值,然后写到另外一个文件内. 解决方案二: 设置读写文件时的编码格式为utf8 解决方案三: 一个汉字占两个字节,所以,一次要读两个字节,然后再判断文件是否结束. 解决方案四: 置读写