zoukankan      html  css  js  c++  java
  • php如何判断文件是否存在,包括本地和远程文件

    当检查的文件是本地时用PHP自带的file_exists检查就行了,而此函数只能检查本地的函数是否存在,

    所以如果要检查远程的文件是否存在只能用其它的方法了。

    如果所服务器中php的配置开启了“allow_url_fopen = On”,即允许远端访问,那么也很简单,其实这个是php.ini中默认开启的,

    用fopen函数判断就行了,能打开说明存在

    如果allow_url_fopen = Off那么可以用socket通讯来解决

    下面写的一个通用函数my_file_exists来检查文件是否存在

    function my_file_exists($file)
    {
        if(preg_match('/^http:///',$file)){
            //远程文件
            if(ini_get('allow_url_fopen')){
                if(@fopen($file,'r')) return true;
            }
            else{
                $parseurl=parse_url($file);
                $host=$parseurl['host'];
                $path=$parseurl['path'];
                $fp=fsockopen($host,80, $errno, $errstr, 10);
                if(!$fp)return false;
                fputs($fp,"GET {$path} HTTP/1.1 
    host:{$host}
    
    ");
                if(preg_match('/HTTP/1.1 200/',fgets($fp,1024))) return true;
            }
            return false;
        }
        return file_exists($file);
    }

    现在就可以调用此函数来检查文件的存在性,而不用去考虑是远程还是本地文件,或者是否禁用了allow_url_open

  • 相关阅读:
    手动安装cockpit(linux web consol)
    fedora 安装apc smart750 UPS
    windows自动登录和域电脑自动登录域
    docker常用命令
    samba
    ETF:pcf文件制作
    ETF计算公司:现金差额
    ETF参数:现金替代标志
    ETF计算公式:IOPV
    ETF:现金替代标志
  • 原文地址:https://www.cnblogs.com/zhangzhijian/p/7474535.html
Copyright © 2011-2022 走看看