浅析is_writable的php实现

yipeiwu_com5年前PHP代码库
以下函数可用于替换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错误日志 display_errors与log_errors的区别

display_errors 错误回显,一般常用语开发模式,但是很多应用在正式环境中也忘记了关闭此选项。错误回显可以暴露出非常多的敏感信息,为攻击者下一步攻击提供便利。推荐关闭此选项。...

php中文语义分析实现方法示例

php中文语义分析实现方法示例

本文实例讲述了php中文语义分析实现方法。分享给大家供大家参考,具体如下: 最近公司有个需求要做文章关键词提取,发现有个波森语义分析,还不错,把其http接口封装了一下, 发布到pack...

Ubuntu中支持PHP5与PHP7双版本的简单实现

前言 最近在编写一个工具的时候,使用了PHP命名空间特性,在命名空间中如果想引用常量、函数,需要PHP5.6以上的版本,但我阿里云 ECS 上安装的版本是PHP 5.5.9,由于 ECS...

php知道与问问的采集插件代码

最近发现知道和问问小偷的版本越来越多了!! 看过一个百度小偷的网站也达到了pr6。收录十万多!! 在经过 荐礼啦 四十天的实践之后 发现百度对这个确实挺友好的。 从网站访问来看 很多也是...

PHP设计模式之观察者模式定义与用法示例

本文实例讲述了PHP设计模式之观察者模式定义与用法。分享给大家供大家参考,具体如下: <?php /** * Interface Observable * defi...