recherche
Maisonphp教程PHP源码PHP检测远端文件是否存在

PHP检测远端文件是否存在

May 25, 2016 pm 05:10 PM
php检测

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;
}
?>

函数描述及例子

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

方法一(需要开启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,就说明文件存在。
?>

方法二(需要服务器支持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,说明存在。
 
?>
Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel