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 相关文章推荐
PHP4与PHP5的时间格式问题
Feb 17 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 PHP
php的curl封装类用法实例
Nov 07 PHP
php使用递归计算文件夹大小
Dec 24 PHP
PHP、Python和Javascript的装饰器模式对比
Feb 03 PHP
浅谈COOKIE和SESSION区别
Jul 19 PHP
简单了解PHP编程中数组的指针的使用
Nov 30 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
May 16 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
Jun 13 PHP
PHP二维数组矩形转置实例
Jul 20 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
Sep 18 PHP
thinkphp框架使用JWTtoken的方法详解
Oct 10 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
PHP5.0对象模型探索之抽象方法和抽象类
2006/09/05 PHP
网站当前的在线人数
2006/10/09 PHP
php 遍历数据表数据并列表横向排列的代码
2009/09/05 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
php命令行用法入门实例教程
2014/10/27 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
Dom在ajax技术中的作用说明
2010/10/25 Javascript
jQuery 定时局部刷新(setInterval)
2010/11/19 Javascript
jQuery中需要注意的细节问题小结
2011/12/06 Javascript
JS的Document属性和方法小结
2013/09/17 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
深入理解node.js http模块
2018/01/24 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
Vue前端项目部署IIS的实现
2020/01/06 Javascript
linux服务器快速卸载安装node环境(简单上手)
2021/02/22 Javascript
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
[08:38]DOTA2-DPC中国联赛 正赛 VG vs Elephant 选手采访
2021/03/11 DOTA
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
TensorFlow如何实现反向传播
2018/02/06 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
python中列表的切片与修改知识点总结
2019/07/23 Python
Python使用python-docx读写word文档
2019/08/26 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
python如何删除列为空的行
2020/07/17 Python
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
小学信息技术教学反思
2014/02/10 职场文书
媒矿安全生产承诺书
2014/05/23 职场文书
综合测评个人总结
2015/03/03 职场文书
采购员工作总结范文
2015/08/12 职场文书
升学宴家长答谢词
2015/09/29 职场文书
Python time库的时间时钟处理
2021/05/02 Python
Vue3中的Refs和Ref详情
2021/11/11 Vue.js