php检测文件属性函数

有些同学特别好奇,检测文件属性用在什么地方。检测文件属性能用到的地方太多了。

我们来举例子:

    1.我们在做软件安装的时候,大家会发现如果文件存在了,就跳转到了其他的地方。

    2.如果在安装的过程当中,某些文件没有写入权限,就不让进行安装。

我们来举一个国内非常出名的软件,discuz的安装过程截图给大家看看:

document_2015-09-07_55eda1ec1ab58.png

上面的例子,就是典型的文件检测的用法。

我们来学习一下下面的一批函数。然后,我们来通过一个例子进行学习。

    bool file_exists ( $指定文件名或者文件路径)
    功能:文件是否存在。

    bool is_readable ( $指定文件名或者文件路径)
    功能:文件是否可读

    bool is_writeable ( $指定文件名或者文件路径)
    功能:文件是否可写

    bool is_executable ( $指定文件名或者文件路径)
    功能:文件是否可执行

    bool is_file ( $指定文件名或者文件路径)
    功能:是否是文件

    bool is_dir ( $指定文件名或者文件路径)
    功能:是否是目录

    void clearstatcache ( void )
    功能:清楚文件的状态缓存

上面的功能一看就清楚了。那实验,我们就来写这个最开始我们举的这个例子。

我们来讲第一个例子,文件锁。如果已经安装了,存在安装锁就提示已安装,否则就继续安装。

我们假设安装界面的网址是:install.php,安装的锁文件是install.lock。我们就可以检测install.lock文件是否存在。

<?php

if(file_exists('install.lock')){

   echo '已安装,请不要再次进行安装';
   exit;

}
?>

我们接下来做一个文件安装检测的实验来检测文件或目录是否有写入或者读取权限。如果没有则不能进行安装。

处理这件事情的思路如下:

    1.定义一批需要检测权限的数组

    2.可以检测是文件夹还是文件

    3.做一个标置位变量,如果标置位变量一旦为false则不显示下一步的安装

<?php

//可以定义一批文件是否存在
$files = [
   'config.php',
   'img/',
   'uploads/',
];

//定义标志位变量
$flag = true;
foreach($files as  $v){
   echo $v;

   //判断是文件还是文件夹

   if(is_file($v)){
       echo '是一个文件&nbsp;&nbsp;&nbsp;&nbsp;';
   }else if(is_dir($v)){
       echo '是一个文件夹&nbsp;&nbsp;&nbsp;&nbsp;';
   }

   if(is_readable($v)){
       echo ' 可读';
   }else{
        echo '<font color="red">不可读</font>';
   }

   if(is_writeable($v)){
       echo '可写';
   }else{
       echo '<font color="red">不可写</font>';
   }

   echo '<br />';
}

if($flag){
   echo '<a href="step1">下一步</a>';

}else{
    echo '不能进行安装';
}
?>

通过上面的例子,我们就做到了。实现PHP某个软件安装过程当中的安装检测。

也就是我们上面思路的实现。


继续学习
||
<?php //可以定义一批文件是否存在 $files = [ 'config.php', 'img/', 'uploads/', ]; //定义标志位变量 $flag = true; foreach($files as $v){ echo $v; //判断是文件还是文件夹 if(is_file($v)){ echo '是一个文件    '; }else if(is_dir($v)){ echo '是一个文件夹    '; } if(is_readable($v)){ echo ' 可读'; }else{ echo '<font color="red">不可读</font>'; } if(is_writeable($v)){ echo '可写'; }else{ echo '<font color="red">不可写</font>'; } echo '<br />'; } if($flag){ echo '<a href="step1">下一步</a>'; }else{ echo '不能进行安装'; } ?>
提交重置代码
章节
笔记
提问
课件
反馈
捐赠

php入门教程之一周学会PHP

  • 推荐课程
  • 评论
  • 问答
  • 笔记
  • 课件下载

关于is_readable和is_writeable函数

[最新 ringa_lee 的回答]首先,不建议使用中文文件名!因为中文会被 URL编码发送,到服务器端的时候虽然会解码,但是如果和你的编码不一致,就解不出来了。简单的说,URL中的中文 ,在常见的浏览器中,默认会以UTF-8编码进行编码后发送到服务器端!而在中文 windows环境的服务器中,解码URL的时候,却用的是gb2312编码进行解码的,这样就导致了没法得到你在地址栏里输入的中文原文!

时间:3年前

仅我

仅我

文件检测:bool file_exists() 文件是否存在 bool is_readbale()文件是否可读 bool is_writeable()文件是否可写

1年前 0

吒哪

吒哪

bool file_exists ( $指定文件名或者文件路径) 功能:文件是否存在。 bool is_readable ( $指定文件名或者文件路径) 功能:文件是否可读 bool is_writeable ( $指定文件名或者文件路径) 功能:文件是否可写 bool is_executable ( $指定文件名或者文件路径) 功能:文件是否可执行 bool is_file ( $指定文件名或者文件路径) 功能:是否是文件 bool is_dir ( $指定文件名或者文件路径) 功能:是否是目录 void clearstatcache ( void ) 功能:清楚文件的状态缓存

1年前 0

门前人海、

门前人海、

bool file_exists ( $指定文件名或者文件路径) 功能:文件是否存在。 bool is_readable ( $指定文件名或者文件路径) 功能:文件是否可读 bool is_writeable ( $指定文件名或者文件路径) 功能:文件是否可写 bool is_executable ( $指定文件名或者文件路径) 功能:文件是否可执行 bool is_file ( $指定文件名或者文件路径) 功能:是否是文件 bool is_dir ( $指定文件名或者文件路径) 功能:是否是目录 void clearstatcache ( void ) 功能:清楚文件的状态缓存

2年前 0

张桂维

张桂维

<?php $filename='install.lock'; if(is_file($filename)){ echo '是一个文件'; }else if(is_dir($filename)){ echo '是一个文件夹'; } if(file_exists($filename)){ echo '已存在'; }else{ echo '不存在'; } if(is_readable($filename)){ echo '可读'; }else{ echo '不可读'; } if(is_writable($filename)){ echo '可写'; }else{ echo '不可写'; } if(is_executable($filename)){ echo '可执行'; }else{ echo '<font color="red">不可执行</font>'; } ?>

2年前 0

黄二铭

黄二铭

is_file:是否是文件,is_dir是否是目录,is_readable是否可读,is_writeable是否可写,is_executable是否可执行。

3年前 0

fighting&it'sme

fighting&it'sme

我们来学习一下下面的一批函数。然后,我们来通过一个例子进行学习。 bool file_exists ( $指定文件名或者文件路径) 功能:文件是否存在。 bool is_readable ( $指定文件名或者文件路径) 功能:文件是否可读 bool is_writeable ( $指定文件名或者文件路径) 功能:文件是否可写 bool is_executable ( $指定文件名或者文件路径) 功能:文件是否可执行 bool is_file ( $指定文件名或者文件路径) 功能:是否是文件 bool is_dir ( $指定文件名或者文件路径) 功能:是否是目录 void clearstatcache ( void ) 功能:清楚文件的状态缓存 上面的功能一看就清楚了。那实验,我们就来写这个最开始我们举的这个例子。 我们来讲第一个例子,文件锁。如果已经安装了,存在安装锁就提示已安装,否则就继续安装。 我们假设安装界面的网址是:install.php,安装的锁文件是install.lock。我们就可以检测install.lock文件是否存在。 <?php if(file_exists('install.lock')){ echo '已安装,请不要再次进行安装'; exit; } ?> 我们接下来做一个文件安装检测的实验来检测文件或目录是否有写入或者读取权限。如果没有则不能进行安装。 处理这件事情的思路如下: 1.定义一批需要检测权限的数组 2.可以检测是文件夹还是文件 3.做一个标置位变量,如果标置位变量一旦为false则不显示下一步的安装 <?php //可以定义一批文件是否存在 $files = [ 'config.php', 'img/', 'uploads/', ]; //定义标志位变量 $flag = true; foreach($files as $v){ echo $v; //判断是文件还是文件夹 if(is_file($v)){ echo '是一个文件&nbsp;&nbsp;&nbsp;&nbsp;'; }else if(is_dir($v)){ echo '是一个文件夹&nbsp;&nbsp;&nbsp;&nbsp;'; } if(is_readable($v)){ echo ' 可读'; }else{ echo '<font color="red">不可读</font>'; } if(is_writeable($v)){ echo '可写'; }else{ echo '<font color="red">不可写</font>'; } echo '<br />'; } if($flag){ echo '<a href="step1">下一步</a>'; }else{ echo '不能进行安装'; } ?> 通过上面的例子,我们就做到了。实现PHP某个软件安装过程当中的安装检测。 也就是我们上面思路的实现。

3年前 0

fighting&it'sme

fighting&it'sme

1.我们在做软件安装的时候,大家会发现如果文件存在了,就跳转到了其他的地方。 2.如果在安装的过程当中,某些文件没有写入权限,就不让进行安装。 我们来举一个国内非常出名的软件,discuz的安装过程截图给大家看看

3年前 0

阿大

阿大

bool file_exists ( $指定文件名或者文件路径) 功能:文件是否存在。 bool is_readable ( $指定文件名或者文件路径) 功能:文件是否可读 bool is_writeable ( $指定文件名或者文件路径) 功能:文件是否可写 bool is_executable ( $指定文件名或者文件路径) 功能:文件是否可执行 bool is_file ( $指定文件名或者文件路径) 功能:是否是文件 bool is_dir ( $指定文件名或者文件路径) 功能:是否是目录 void clearstatcache ( void ) 功能:清楚文件的状态缓存

3年前 0

折印

折印

<?php $files=[ 'config.php', 'img/', 'uploads/' ]; //定义标志位变量 $flag=true; foreach($files as $v){ echo $v.'<br/>'; if(is_file($v)){ echo '是一个文件<br/>'; }elseif(is_dir($v)){ echo '是一个文件夹<br/>'; }else{ echo '该文件不存在<br/>'; } if(is_readable($v)){ echo '可读<br/>'; }else{ echo '<font color="red">不可读</font><br/>'; } if(is_writable($v)){ echo '可写</br/>'; }else{ echo '<font color="red">不可写</font><br/>'; } echo '<br/>'; } if($flag){ echo '<a href="step1">下一步</a></br/>'; }else{ echo '不能进行安装'; } ?>

3年前 0

课件暂不提供下载,工作人员正在整理中,后期请多关注该课程~