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数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
Nov 07 PHP
php检测网页是否被百度收录的函数代码
Oct 09 PHP
浅谈php函数serialize()与unserialize()的使用方法
Aug 19 PHP
php防止网站被刷新的方法汇总
Dec 01 PHP
php校验表单检测字段是否为空的方法
Mar 20 PHP
php开发微信支付获取用户地址
Oct 04 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
Mar 25 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
May 05 PHP
thinkPHP框架中执行事务的方法示例
May 31 PHP
浅谈PHP封装CURL
Mar 06 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
Dec 04 PHP
浅谈php常用的7大框架的优缺点
Jul 20 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实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
2015/02/02 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
jQuery.validate 常用方法及需要注意的问题
2013/03/20 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
AngularJs页面筛选标签小功能
2016/08/01 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
Vue插件打包与发布的方法示例
2018/08/20 Javascript
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
2018/09/25 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
JavaScript实现点击切换功能
2021/01/27 Javascript
[46:20]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
Python 搭建Web站点之Web服务器与Web框架
2016/11/06 Python
一个基于flask的web应用诞生(1)
2017/04/11 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
详解Python字符串切片
2019/05/20 Python
python基础教程之while循环
2019/08/14 Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
2020/01/08 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
python global和nonlocal用法解析
2020/02/03 Python
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
Farnell德国:电子元器件供应商
2018/07/10 全球购物
美国礼品卡交易网站:Cardpool
2018/08/27 全球购物
美国电子产品主要品牌的授权在线零售商:DataVision
2019/03/23 全球购物
十八届三中全会个人学习材料
2014/02/13 职场文书
销售顾问岗位职责
2014/02/25 职场文书
股份合作协议书范本
2014/04/14 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
四年级数学上册教学计划
2015/01/20 职场文书
兼职安全员岗位职责
2015/02/15 职场文书