php is_writable判断文件是否可写实例代码


Posted in PHP onOctober 13, 2016

php is_writable函数介绍

is_writable — 判断给定的文件名是否可写,该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。

语法:

bool is_writable  ( string $filename  )

如果文件存在并且可写则返回 TRUE 。filename 参数可以是一个允许进行是否可写检查的目录名。

记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件。不计入安全模式的限制。

参数:

filename 要检查的文件名称。

返回值:

如果文件 filename 存在并且可写则返回 TRUE 。

php is_writable实例

使用is_writable函数判断给定的文件是否可读:

<?php
$filename = "test.text";
if (is_readable($filename)) {
  echo "文件 $filename 可读";
} else {
  echo "文件 $filename 不可读";
}
?>

其实我们也可以自己写一个函数来判断文件是否可读,而不需要使用php内置函数is_writable,以下函数可用于替换php内置的is_writable函数,大家可以参考一下:

//可用于替换php内置的is_writable函数
function isWritable($filename){
  if(preg_match('/\/$/',$filename)){
    $tmp_file=sprintf('%s%s.tmp',$filename,uniqid(mt_rand()));
    return isWritable($tmp_file);
  }
  if(file_exists($filename)){
    //文件已经存在的话,使用读写方式打开
    $fp=@fopen($filename,'r+');
    if($fp){
      fclose($fp);
      return true;
    }
    else{
      return false;
    }
  }
  else{
    $fp=@fopen($filename,'w');
    if($fp){
      fclose($fp);
      unlink($filename);
      return true;
    }
    else{
      return false;
    }
  }
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
php sprintf()函数让你的sql操作更安全
Jul 23 PHP
PHP 定界符 使用技巧
Jun 14 PHP
PHP __autoload()方法真的影响性能吗?
Mar 30 PHP
php入门之连接mysql数据库的一个类
Apr 21 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
Jun 23 PHP
PHP调用Linux命令权限不足问题解决方法
Feb 07 PHP
Opcache导致php-fpm崩溃nginx返回502
Mar 02 PHP
php实现网页缓存的工具类分享
Jul 14 PHP
laravel学习教程之存取器
Jul 30 PHP
PHP 中使用ajax时一些常见错误总结整理
Feb 27 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
基于PHP实现用户登录注册功能的详细教程
Aug 04 PHP
基于PHP制作验证码
Oct 12 #PHP
实现PHP搜索加分页
Oct 12 #PHP
如何使用PHP给图片加水印
Oct 12 #PHP
php版微信数据统计接口用法示例
Oct 12 #PHP
php版微信js-sdk支付接口类用法示例
Oct 12 #PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
Oct 12 #PHP
如何使用php等比例缩放图片
Oct 12 #PHP
You might like
php MsSql server时遇到的中文编码问题
2009/06/11 PHP
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
ThinkPHP验证码使用简明教程
2014/03/05 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
2016/05/04 PHP
Laravel 关联模型-关联新增和关联更新的方法
2019/10/10 PHP
JavaScript 基础篇(一)
2012/03/30 Javascript
JavaScript 函数replace深入了解
2013/03/14 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
python计数排序和基数排序算法实例
2014/04/25 Python
python字典get()方法用法分析
2015/04/17 Python
用Python进行行为驱动开发的入门教程
2015/04/23 Python
django 修改server端口号的方法
2018/05/14 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
2018/06/14 Python
Python OpenCV处理图像之图像直方图和反向投影
2018/07/10 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
pandas DataFrame 交集并集补集的实现
2019/06/24 Python
Tensorflow:转置函数 transpose的使用详解
2020/02/11 Python
Python暴力破解Mysql数据的示例
2020/11/09 Python
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
澳洲本土太阳镜品牌:Quay Australia
2019/07/29 全球购物
广州某公司软件工程师面试题
2014/12/22 面试题
怎样声明一个匿名的内部类
2016/06/01 面试题
粗加工管理制度
2014/02/04 职场文书
课程改革实施方案
2014/03/16 职场文书
项目合作协议书
2014/09/23 职场文书
个人租房协议书(范本)
2014/10/14 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
2014年化验室工作总结
2014/11/21 职场文书