php怎么获取远程图片大小

不及物动词 其他 321

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    PHP可以通过以下几种方式来获取远程图片的大小:

    方法一:使用cURL库
    “`php
    function get_remote_image_size($url) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

    $data = curl_exec($ch);
    curl_close($ch);

    if ($data === false) {
    return false;
    }

    $content_length = 0;
    if (preg_match(‘/Content-Length: (\d+)/’, $data, $matches)) {
    $content_length = (int) $matches[1];
    }

    return $content_length;
    }

    $url = ‘http://example.com/image.jpg’;
    $size = get_remote_image_size($url);
    if ($size !== false) {
    echo ‘远程图片的大小是:’ . $size . ‘ 字节’;
    } else {
    echo ‘无法获取远程图片的大小’;
    }
    “`

    方法二:使用file_get_contents函数
    “`php
    function get_remote_image_size($url) {
    $data = file_get_contents($url, false, stream_context_create([
    ‘http’ => [
    ‘method’ => ‘HEAD’
    ]
    ]));

    $content_length = 0;
    if (isset($http_response_header) && preg_match(‘/Content-Length: (\d+)/’, $http_response_header[0], $matches)) {
    $content_length = (int) $matches[1];
    }

    return $content_length;
    }

    $url = ‘http://example.com/image.jpg’;
    $size = get_remote_image_size($url);
    if ($size !== false) {
    echo ‘远程图片的大小是:’ . $size . ‘ 字节’;
    } else {
    echo ‘无法获取远程图片的大小’;
    }
    “`

    方法三:使用getimagesize函数
    “`php
    function get_remote_image_size($url) {
    $info = getimagesize($url);
    if ($info !== false) {
    return $info[0];
    } else {
    return false;
    }
    }

    $url = ‘http://example.com/image.jpg’;
    $size = get_remote_image_size($url);
    if ($size !== false) {
    echo ‘远程图片的大小是:’ . $size . ‘ 字节’;
    } else {
    echo ‘无法获取远程图片的大小’;
    }
    “`

    以上是三种常用的获取远程图片大小的方法,可以根据实际情况选择适合自己的方法。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    获取远程图片大小可以使用PHP的curl库和getimagesize函数。下面是使用PHP代码获取远程图片大小的步骤:

    1. 使用curl库下载远程图片到本地临时文件:
    “`php
    $remoteImageUrl = ‘https://example.com/image.jpg’;
    $tempFilePath = ‘/path/to/temp/image.jpg’;

    $ch = curl_init($remoteImageUrl);
    $fp = fopen($tempFilePath, ‘wb’);
    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_exec($ch);
    curl_close($ch);
    fclose($fp);
    “`

    2. 使用getimagesize函数获取本地临时文件的大小:
    “`php
    $imageInfo = getimagesize($tempFilePath);
    $width = $imageInfo[0];
    $height = $imageInfo[1];
    $fileSize = filesize($tempFilePath); // 文件大小(以字节为单位)
    “`

    3. 删除临时文件:
    “`php
    unlink($tempFilePath);
    “`

    4. 处理获取到的图片大小数据:
    根据需要,可以将获取到的图片宽、高和大小信息存储到数据库中,或者直接进行业务逻辑处理。

    5. 错误处理:
    在下载远程图片和获取图片大小的过程中,可能会发生各种错误,如网络错误、图片不存在等。需要在代码中加入适当的错误处理机制,以确保程序的健壮性。例如可以使用try-catch块来捕获异常并进行相应的错误处理。

    以上是使用PHP代码获取远程图片大小的方法。可以根据具体需求进行相应的修改和扩展。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    获取远程图片大小的方式有很多种,可以通过不同的方法和操作流程来实现。下面将介绍两种常用的方法:通过HTTP头和通过CURL。

    1. 通过HTTP头

    通过HTTP头获取远程图片大小的方法比较简单,只需要发送一个HEAD请求获取响应的头部信息,其中包含了图片的大小信息。以下是具体的操作流程:

    1. 使用`get_headers()`函数发送一个HEAD请求,获取响应的头部信息。示例代码如下:

    “`php
    $url = ‘http://example.com/image.jpg’;
    $headers = get_headers($url, 1);
    “`

    2. 从响应的头部信息中提取图片的大小信息。通常情况下,可以通过`Content-Length`字段获取图片的大小。示例代码如下:

    “`php
    $imageSize = $headers[‘Content-Length’];
    “`

    2. 通过CURL

    使用CURL可以更方便地获取远程图片的大小。CURL是一个强大的开源库,可以进行各种网络操作。以下是通过CURL获取远程图片大小的操作流程:

    1. 初始化一个CURL会话,并设置相关的选项。示例代码如下:

    “`php
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, ‘http://example.com/image.jpg’);
    curl_setopt($curl, CURLOPT_NOBODY, true); // 只获取头部信息,不下载整个文件
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 将响应保存到变量中
    “`

    2. 执行CURL会话,并获取响应的头部信息。示例代码如下:

    “`php
    $response = curl_exec($curl);
    $headers = curl_getinfo($curl);
    “`

    3. 从响应的头部信息中提取图片的大小信息。同样,可以通过`Content-Length`字段获取图片的大小。示例代码如下:

    “`php
    $imageSize = $headers[‘download_content_length’];
    “`

    需要注意的是,以上方法都是获取图片的原始大小,单位为字节。如果需要将其转换为其他形式的大小(如KB或MB),可以使用相应的计算方法进行转换。

    以上就是两种常用的方式来获取远程图片大小的方法和操作流程。在实际应用中,根据具体的情况选择适用的方法即可。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部