php判断远程文件是否存在

Posted 铁猛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php判断远程文件是否存在相关的知识,希望对你有一定的参考价值。

php判断本地文件是否存在可以简单的使用is_file就可以实现。但是在部分情况下会检测远程文件是否存在,实现方式如下

1、可以使用fsocketopen,通过返回的状态码判断

2、使用curl,通过通过返回的状态码判断

3、可以直接通过get_headers的方法来判断状态码

以上方法是在远程url没有重定向的前提下,如果有重定向通过以下方法可以实现

<?php
$url = ‘http://www.baidu.com/link?url=77I2GJqjJ4zBBpC8yDF8xDhiqDSn1JZjFWsHhEoSNd85PkV8Xil-rckpQ8_kjGKNNq‘;
function fileExists($url){
    stream_context_set_default(
        array(
            ‘http‘ => array(
                ‘timeout‘ => 5,
            )
        )
    );
    $header = get_headers($url,1);
    if(strpos($header[0],‘200‘)){
        return true;
    }
    if(strpos($header[0],‘404‘)){
        return false;
    }
    if (strpos($header[0],‘301‘) || strpos($header[0],‘302‘)) {
        if(is_array($header[‘Location‘])) {
            $redirectUrl = $header[‘Location‘][count($header[‘Location‘])-1];
        }else{
            $redirectUrl = $header[‘Location‘];
        }
        return fileExists($redirectUrl);
    }
}

var_dump(fileExists($url));

 

以上是关于php判断远程文件是否存在的主要内容,如果未能解决你的问题,请参考以下文章

php如何判断远程文件是否存在

PHP 判断远程文件是否存在

PHP判断远程图片或文件或url是否存在-180

PHP利用get_headers()函数判断远程的url地址是否有效

判断远程主机文件是不是存在

用shell判断远程主机上是否存在某个文件