浅析is_writable的php实现


Posted in PHP onJune 18, 2013

以下函数可用于替换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 相关文章推荐
Dedecms V3.1 生成HTML速度的优化办法
Mar 18 PHP
PHP 5.3新特性命名空间规则解析及高级功能
Mar 11 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
May 15 PHP
PHP中对用户身份认证实现两种方法
Jun 04 PHP
php常用Stream函数集介绍
Jun 24 PHP
使用GD库生成带阴影文字的图片
Mar 27 PHP
PHP类相关知识点实例总结
Sep 28 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
Oct 08 PHP
浅谈PHP中类和对象的相关函数
Apr 26 PHP
apache集成php7.3.5的详细步骤
Jun 20 PHP
PHP强制转化的形式整理
May 22 PHP
goto语法在PHP中的使用教程
Sep 17 PHP
解析mysql left( right ) join使用on与where筛选的差异
Jun 18 #PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
Jun 18 #PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
Jun 18 #PHP
解析PHP实现多进程并行执行脚本
Jun 18 #PHP
PHP实现多进程并行操作的详解(可做守护进程)
Jun 18 #PHP
解析php中static,const与define的使用区别
Jun 18 #PHP
解析htaccess伪静态的规则
Jun 18 #PHP
You might like
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
2015/04/20 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
php-beanstalkd消息队列类实例分享
2017/07/19 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
JQuery触发radio或checkbox的change事件
2012/12/18 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
2014/10/09 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
微信小程序实现的贪吃蛇游戏【附源码下载】
2018/01/03 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
[10:21]2018DOTA2国际邀请赛寻真——Winstrike
2018/08/11 DOTA
python中sys.argv参数用法实例分析
2015/05/20 Python
构建Python包的五个简单准则简介
2015/06/15 Python
python冒泡排序简单实现方法
2015/07/09 Python
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
Python数据库的连接实现方法与注意事项
2016/02/27 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
理解python中生成器用法
2017/12/20 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
Python 从subprocess运行的子进程中实时获取输出的例子
2019/08/14 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
如何实现更换Jupyter Notebook内核Python版本
2020/05/18 Python
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
邻里守望志愿服务活动方案
2014/08/15 职场文书
教师党员自我评议不足范文
2014/10/19 职场文书
锅炉工岗位职责
2015/02/13 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
vue+element ui实现锚点定位
2021/06/29 Vue.js