php怎么判断远程图片是否存在-PHP问题

资源魔 33 0

php判别近程图片能否存正在的办法:

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
}

fsockopen版:

 $url = "http://www.百度.com/img/百度_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>";
    print_r($headers);

经过http状态码来判别文件能否存正在,比方,呼应 302,301,404等都为没有存正在,假如是200,304,等能够视为文件存正在。

fopen()办法:

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

    if( @fopen( $url, 'r' ) )
    {
        echo 'File Exits';
    }
    else
    {
        echo 'File Do Not Exits';
    }
    ?>

CURL办法:

<?php
    $url2 = 'http://www.test.com/test.jpg';

    $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 '文件没有存正在';
    }
    ?>

保举:php效劳器

以上就是php怎样判别近程图片能否存正在的具体内容,更多请存眷资源魔其它相干文章!

标签: php 图片 php教程 php故障解决 php使用问题

抱歉,评论功能暂时关闭!