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重新实现PHP脚本引擎内置函数
Mar 06 PHP
ezSQL PHP数据库操作类库
May 16 PHP
openPNE常用方法分享
Nov 29 PHP
ThinkPHP视图查询详解
Jun 30 PHP
PHP队列用法实例
Nov 05 PHP
PHP安装memcached扩展笔记
May 28 PHP
详解Laravel视图间共享数据与视图Composer
Aug 04 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
Dec 23 PHP
PHP小程序支付功能完整版【基于thinkPHP】
Mar 26 PHP
php无限极分类实现方法分析
Jul 04 PHP
laravel 去掉index.php伪静态的操作方法
Oct 12 PHP
Laravel 类和接口注入相关的代码
Oct 15 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实现的仿阿里巴巴实现同类产品翻页
2009/12/11 PHP
php笔记之:php数组相关函数的使用
2013/04/26 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
php实现webservice实例
2014/11/06 PHP
php查询及多条件查询
2017/02/26 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
更正确的asp冒泡排序
2007/05/24 Javascript
JavaScript之IE的fireEvent方法详细解析
2013/11/20 Javascript
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
JS给Textarea文本框添加行号的方法
2015/08/20 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
使用Angular CLI进行单元测试和E2E测试的方法
2018/03/24 Javascript
Vue插件打包与发布的方法示例
2018/08/20 Javascript
vue 左滑删除功能的示例代码
2019/01/28 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
如何利用javascript接收json信息并进行处理
2020/08/06 Javascript
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
Django 使用logging打印日志的实例
2018/04/28 Python
python实现名片管理系统
2018/11/29 Python
解决pycharm的Python console不能调试当前程序的问题
2019/01/20 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
公司离职证明标准样本
2014/10/05 职场文书
先进工作者推荐材料
2014/12/23 职场文书
常务副总经理岗位职责
2015/02/02 职场文书
社区节水倡议书
2015/04/29 职场文书
个人催款函范文
2015/06/24 职场文书
工作服管理制度范本
2015/08/06 职场文书
大学班长竞选稿
2015/11/20 职场文书
MySQL数据库实验实现简单数据库应用系统设计
2022/06/21 MySQL