好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php 检查文件或目录是否存在代码总结 - php文件操

php 检查文件或目录是否存在代码总结

检查文件或目录是否存在,我们使用了php中常用的函数file_exists,这个函数就可以实现我想要的功能,下面是一个简单的检查文件是否存在的实例代码:

<?php  $filename  =  '/path/to/foo.txt' ;    if  ( file_exists ( $filename )) {       echo   "The file $filename exists" ;  }  else  {       echo   "The file $filename does not exist" ;  }  ?> 

如果文件存在,执行该 PHP 文件的显示结果是:

The file C:blablaphphello.txt exists.

如果文件不存在,执行该 PHP 文件的显示结果是:

The file C:blablaphphello.txt does not exist.

你也可以用file_exists 函数测试某个目录是否存在,示例代码如下:

if  ( file_exists ( "C:\blabla\php" ))    { echo   "yes" ;}  else     { echo   "no" ;} 

实例,代码如下:

/**    * 文件或目录权限检查函数    *    * @access          public    * @param           string  $file_path   文件路径    * @param           bool    $rename_prv  是否在检查修改权限时检查执行rename()函数的权限    *    * @return          int     返回值的取值范围为{0 <= x <= 15},每个值表示的含义可由四位二进制数组合推出。    *                          返回值在二进制计数法中,四位由高到低分别代表    *                          可执行rename()函数权限、可对文件追加内容权限、可写入文件权限、可读取文件权限。    */   function  file_mode_info( $file_path )  {       /* 如果不存在,则不可读、不可写、不可改 */        if  (! file_exists ( $file_path ))      {           return  false;      }       $mark  = 0;       if  ( strtoupper ( substr (PHP_OS, 0, 3)) ==  'WIN' )      {           /* 测试文件 */            $test_file  =  $file_path  .  '/cf_test.txt' ;           /* 如果是目录 */            if  ( is_dir ( $file_path ))          {               /* 检查目录是否可读 */                $dir  = @opendir( $file_path );               if  ( $dir  === false)              {                   return   $mark ;  //如果目录打开失败,直接返回目录不可修改、不可写、不可读               }               if  (@readdir( $dir ) !== false)              {                   $mark  ^= 1;  //目录可读 001,目录不可读 000               }              @ closedir ( $dir );               /* 检查目录是否可写 */                $fp  = @ fopen ( $test_file ,  'wb' );               if  ( $fp  === false)              {                   return   $mark ;  //如果目录中的文件创建失败,返回不可写。               }               if  (@fwrite( $fp ,  'directory access testing.' ) !== false)              {                   $mark  ^= 2;  //目录可写可读011,目录可写不可读 010               }              @fclose( $fp );              @unlink( $test_file );               /* 检查目录是否可修改 */                $fp  = @ fopen ( $test_file ,  'ab+' );               if  ( $fp  === false)              {                   return   $mark ;              }               if  (@fwrite( $fp ,  "modify test.rn" ) !== false)              {                   $mark  ^= 4;              }              @fclose( $fp );               /* 检查目录下是否有执行rename()函数的权限 */                if  (@rename( $test_file ,  $test_file ) !== false)              {                   $mark  ^= 8;              }              @unlink( $test_file );          }           /* 如果是文件 */            elseif  ( is_file ( $file_path ))          {               /* 以读方式打开 */                $fp  = @ fopen ( $file_path ,  'rb' );               if  ( $fp )              {                   $mark  ^= 1;  //可读 001               }              @fclose( $fp );               /* 试着修改文件 */                $fp  = @ fopen ( $file_path ,  'ab+' );               if  ( $fp  && @fwrite( $fp ,  '' ) !== false)              {                   $mark  ^= 6;  //可修改可写可读 111,不可修改可写可读011...               }              @fclose( $fp );               /* 检查目录下是否有执行rename()函数的权限 */                if  (@rename( $test_file ,  $test_file ) !== false)              {                   $mark  ^= 8;              }          }      }       else       {           if  (@ is_readable ( $file_path ))          {               $mark  ^= 1;          }           if  (@ is_writable ( $file_path ))          {               $mark  ^= 14;          }      }       return   $mark ;  } 

PHP判断目录是否存在,代码如下:

/****************************************************        * 将xml数据流,写入到xml文件        * @param $xmlData        * @return bool|string        */        function  writeXmlFile( $xmlData )      {           $time  = time();  //获取时间戳,用于给文件命名            $path  = dirname( __FILE__ );  //获取当前绝对路径            $path  = substr_replace( $path ,  "" ,  stripos ( $path ,  "actions\data" ));  //将此文件所在的固有路径替换成空            $path  .=  "xmlFiles\" ;  //存放目录名              /*判断目标目录是否存在,不存在则新建*/            if (! is_dir ( $path ))          {               mkdir ( $path );  //新建目录           }             /*记录完整路径和文件名*/            $filePathAndName  =  $path . $time . ".xml" ;             /*打开文件,文件名为<时间戳> + <.xml>*/            $fp  =  fopen ( $filePathAndName ,  "w" );           if (! $fp )          {               return  false;          }             /*写入文件流*/            $flag  = fwrite( $fp ,  $xmlData );           if (! $flag )          {               return  false;          }            fclose( $fp );             return   $filePathAndName ;      } 

查看更多关于php 检查文件或目录是否存在代码总结 - php文件操的详细内容...

  阅读:77次