文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
8.5 检测文件属性函数
有些同学特别好奇,检测文件属性用在什么地方。检测文件属性能用到的地方太多了。
我们来举例子:
- 我们在做软件安装的时候,大家会发现如果文件存在了,就跳转到了其他的地方。
- 如果在安装的过程当中,某些文件没有写入权限,就不让进行安装。
我们来举一个国内非常出名的软件,discuz 的安装过程截图给大家看看:
上面的例子,就是典型的文件检测的用法。
我们来学习一下下面的一批函数。然后,我们来通过一个例子进行学习。
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;
}
?>
我们接下来做一个文件安装检测的实验来检测文件或目录是否有写入或者读取权限。如果没有则不能进行安装。
处理这件事情的思路如下:
- 定义一批需要检测权限的数组
- 可以检测是文件夹还是文件
- 做一个标置位变量,如果标置位变量一旦为 false 则不显示下一步的安装
<?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 某个软件安装过程当中的安装检测。
也就是我们上面思路的实现。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论