Home > php教程 > PHP源码 > PHP检测远端文件是否存在

PHP检测远端文件是否存在

PHP中文网
Release: 2016-05-25 17:10:04
Original
1103 people have browsed it

php代码

<?php
/*
 函数:remote_file_exists
 功能:判断远程文件是否存在
 参数: $url_file -远程文件URL
 返回:存在返回true,不存在或者其他原因返回false
*/
function remote_file_exists($url_file){
    //检测输入
    $url_file = trim($url_file);
    if (empty($url_file)) { return false; }
    $url_arr = parse_url($url_file);
    if (!is_array($url_arr) || empty($url_arr)){return false; }
 
    //获取请求数据
    $host = $url_arr[&#39;host&#39;];
    $path = $url_arr[&#39;path&#39;] ."?".$url_arr[&#39;query&#39;];
    $port = isset($url_arr[&#39;port&#39;]) ?$url_arr[&#39;port&#39;] : "80";
 
    //连接服务器
    $fp = fsockopen($host, $port, $err_no, $err_str,30);
    if (!$fp){ return false; }
 
    //构造请求协议
    $request_str = "GET ".$path."HTTP/1.1";
    $request_str .= "Host:".$host."";
    $request_str .= "Connection:Close";
 
    //发送请求
    fwrite($fp,$request_str);
    $first_header = fgets($fp, 1024);
    fclose($fp);
 
    //判断文件是否存在
    if (trim($first_header) == ""){ return false;}
    if (!preg_match("/200/", $first_header)){
        return false;
    }
 
    return true;
}
?>
Copy after login

函数描述及例子

<?
    //测试代码
    $str_url = &#39;http://127.0.0.2/viewarticle.php?id=119617&#39;;
    $exits = remote_file_exists($str_url);
    echo $exists ? "Exists" : "Not exists";
?>
Copy after login

方法一(需要开启allow_url_fopen):

<?php
    $url = "http://cn.wordpress.org/wordpress-3.3.1-zh_CN.zip";
    $fileExists = @file_get_contents($url, null, null, -1, 1) ? true : false;
    echo $fileExists; //返回1,就说明文件存在。
?>
Copy after login

方法二(需要服务器支持Curl组件):

<?php
function check_remote_file_exists($url) {
    $curl = curl_init($url); // 不取回数据
    curl_setopt($curl, CURLOPT_NOBODY, true);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, &#39;GET&#39;); // 发送请求
    $result = curl_exec($curl);
    $found = false; // 如果请求没有发送失败
    if ($result !== false) {
 
        /** 再检查http响应码是否为200 */
        $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
        if ($statusCode == 200) {
            $found = true;
        }
    }
    curl_close($curl);
 
    return $found;
}
 
$url = "http://cn.wordpress.org/wordpress-3.3.1-zh_CN.zip";
echo check_remote_file_exists($url); // 返回1,说明存在。
 
?>
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Latest Issues
php data acquisition?
From 1970-01-01 08:00:00
0
0
0
PHP extension intl
From 1970-01-01 08:00:00
0
0
0
How to learn php well
From 1970-01-01 08:00:00
0
0
0
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template