Maison > développement back-end > Problème PHP > Comment déterminer si une image distante existe en php

Comment déterminer si une image distante existe en php

Libérer: 2023-02-27 21:30:01
original
3473 Les gens l'ont consulté

Comment déterminer si une image distante existe en php

Méthode PHP pour déterminer si une image distante existe :

function file_exists($url) {
$curl = curl_init($url);
// 不取回数据
curl_setopt($curl, CURLOPT_NOBODY, true);
// 发送请求
$result = curl_exec($curl);
$found = false;
// 如果请求没有发送失败
if ($result !== false) {
// 再检查http响应码是否为200
}
Copier après la connexion

version fsockopen :

 $url = "http://www.baidu.com/img/baidu_sylogo1.gif";

    $info = parse_url($url);
    $fp = fsockopen($info['host'], 80,$errno, $errstr, 30);
    fputs($fp,"GET {$info['path']} HTTP/1.1\r\n");
    fputs($fp, "Host: {$info['host']}\r\n");
    fputs($fp, "Connection: close\r\n\r\n");
    $headers = array();
    while(!feof($fp)) {
    $line = fgets($fp);
    if($line != "\r\n") {
    $headers[] = $line;
    }else {
    break;
    }
    }

    echo "<pre class="brush:php;toolbar:false">";
    print_r($headers);
Copier après la connexion

Utilisez le code d'état http pour déterminer si l'image distante le fichier existe, par exemple, les réponses 302, 301, 404, etc. signifient toutes que le fichier n'existe pas. S'il s'agit de 200, 304, etc., cela peut être considéré comme le fichier existe.

Méthode fopen() :

<?php
    $url = &#39;http://www.test.com/images/test.jpg&#39;;

    if( @fopen( $url, &#39;r&#39; ) )
    {
        echo &#39;File Exits&#39;;
    }
    else
    {
        echo &#39;File Do Not Exits&#39;;
    }
    ?>
Copier après la connexion

Méthode CURL :

<?php
    $url2 = &#39;http://www.test.com/test.jpg&#39;;

    $ch = curl_init();
    $timeout = 10;
    curl_setopt ($ch, CURLOPT_URL, $url2);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

    $contents = curl_exec($ch);
    //echo $contents;
    if (preg_match("/404/", $contents)){
        echo &#39;文件不存在&#39;;
    }
    ?>
Copier après la connexion

Recommandé : serveur php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal