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

  • 相关阅读:
    Trapping Rain Water
    Construct Binary Tree from Preorder and Inorder Traversal
    Flatten Binary Tree to Linked List
    Permutations II
    Unique Paths II
    Path Sum II
    Unique Binary Search Trees II
    evdev module-----uinput.py
    evdev module-----events.py
    evdev module-----device.py
  • 原文地址:https://www.cnblogs.com/zhangzhijian/p/7474535.html
Copyright © 2011-2022 走看看