php怎么获取微信文章图片尺寸

worktile 其他 67

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在PHP中,可以通过使用CURL库和正则表达式来获取微信文章中的图片尺寸。下面是获取微信文章图片尺寸的步骤:

    1. 构建HTTP请求:使用CURL库发送HTTP请求,并设置请求的URL为微信文章的链接。

    2. 获取页面内容:通过CURL库发送HTTP请求获取微信文章页面的HTML内容。

    3. 提取图片URL:使用正则表达式从HTML内容中提取出文章中的图片URL。

    4. 发送HTTP请求获取图片:将提取到的图片URL作为新的HTTP请求的URL,使用CURL库发送HTTP请求获取图片的内容。

    5. 获取图片尺寸:通过GD库或者ImageMagick库对获取到的图片内容进行解码,并获取图片的尺寸信息。

    下面是一个简单的示例代码,展示了如何获取微信文章图片尺寸:

    “`php
    ]+src=”([^”]+)”/i’, $html, $matches);

    // 遍历提取到的图片URL
    foreach ($matches[1] as $imageUrl) {
    // 发送HTTP请求获取图片内容
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $imageUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $imageContent = curl_exec($ch);
    curl_close($ch);

    // 使用GD库解码图片并获取尺寸信息
    $image = imagecreatefromstring($imageContent);
    $width = imagesx($image);
    $height = imagesy($image);

    // 打印图片尺寸
    echo “图片尺寸:$width x $height\n”;
    }
    }

    // 调用函数获取微信文章图片尺寸
    getWeChatArticleImageSize(“https://example.com/wechat-article”);
    ?>
    “`

    在上面的代码中,我们首先使用CURL库发送HTTP请求获取微信文章页面的HTML内容。然后通过正则表达式提取出文章中的图片URL。接下来,我们再次使用CURL库发送HTTP请求获取图片的内容。最后,使用GD库对获取到的图片内容进行解码,并获取图片的尺寸信息。最终,我们打印出图片的尺寸。

    请注意,上述代码仅为示例用途,实际应用中可能需要对异常情况进行处理,并根据实际需求进行适当的优化。另外,如果要获取多个文章的图片尺寸,可以将上述代码放入循环中实现。

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

    要获取微信文章图片的尺寸,可以使用PHP的图片处理库GD库来实现。以下是使用PHP获取微信文章图片尺寸的步骤:

    1. 使用PHP的curl库向微信公众平台的接口发送请求,获取文章内容的JSON数据。可以使用以下代码发送请求并获取JSON数据:

    “`php
    $url = ‘https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET’;
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);

    $jsonData = json_decode($response, true);
    “`

    2. 解析JSON数据,获取文章中的图片URL。微信文章的图片URL一般存储在`img`标签的`data-src`属性中。可以使用以下代码获取图片URL:

    “`php
    $articleContent = $jsonData[‘content’];
    $doc = new DOMDocument();
    $doc->loadHTML(‘‘ . $articleContent);
    $xpath = new DOMXPath($doc);
    $images = $xpath->query(“//img”);

    $imagesUrl = array();
    foreach ($images as $image) {
    $imageUrl = $image->getAttribute(‘data-src’);
    array_push($imagesUrl, $imageUrl);
    }
    “`

    3. 使用GD库获取图片尺寸。GD库是PHP的一个图像处理库,可以用来处理图片。可以使用以下代码获取图片尺寸:

    “`php
    foreach ($imagesUrl as $imageUrl) {
    $imageInfo = getimagesize($imageUrl);
    $width = $imageInfo[0];
    $height = $imageInfo[1];

    // 输出图片尺寸
    echo “图片宽度:”.$width.”,图片高度:”.$height.”
    “;
    }
    “`

    4. 完整的代码示例:

    “`php
    $url = ‘https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET’;
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);

    $jsonData = json_decode($response, true);

    $articleContent = $jsonData[‘content’];
    $doc = new DOMDocument();
    $doc->loadHTML(‘‘ . $articleContent);
    $xpath = new DOMXPath($doc);
    $images = $xpath->query(“//img”);

    $imagesUrl = array();
    foreach ($images as $image) {
    $imageUrl = $image->getAttribute(‘data-src’);
    array_push($imagesUrl, $imageUrl);
    }

    foreach ($imagesUrl as $imageUrl) {
    $imageInfo = getimagesize($imageUrl);
    $width = $imageInfo[0];
    $height = $imageInfo[1];

    // 输出图片尺寸
    echo “图片宽度:”.$width.”,图片高度:”.$height.”
    “;
    }
    “`
    将APPID和APPSECRET替换为实际的值即可。通过上述步骤,即可获取到微信文章中每张图片的尺寸信息。注意,在使用GD库获取图片尺寸之前,确保服务器已经安装了GD库,并且开启了相关扩展。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    要获取微信文章中的图片尺寸,可以通过以下步骤进行操作:

    1. 获取微信文章中的图片URL
    使用微信公众号管理后台提供的接口,可以获取到微信文章中的图片URL。可以通过调用接口获取到文章内容,然后使用正则表达式或其他方法来提取出文章中的图片URL。

    2. 发起HTTP请求获取图片信息
    使用PHP的curl库或其他HTTP请求库发起请求,传入图片URL,获取到图片的二进制数据。这个过程中需要注意设置请求头,包括User-Agent和Referer。可以参考以下示例代码:

    “`php
    function get_image_info($url)
    {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $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);
    curl_setopt($ch, CURLOPT_USERAGENT, “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3”);
    curl_setopt($ch, CURLOPT_REFERER, “https://www.example.com”);
    $response = curl_exec($ch);
    $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
    $header = substr($response, 0, $header_size);
    $info = curl_getinfo($ch);
    curl_close($ch);

    return $info;
    }

    // 示例用法
    $image_url = “https://example.com/image.jpg”;
    $image_info = get_image_info($image_url);
    “`

    通过调用上述方法,可以获取到图片的相关信息,包括图片的尺寸。

    3. 解析图片信息
    上一步中获取到的图片信息是一个包含各种数据的数组,其中包含了图片的尺寸信息。我们可以通过访问该数组的`[0][‘size_download’]`、`[0][‘download_content_length’]`和`[0][‘content_length_download’]`等属性来获取图片的尺寸信息。示例如下:

    “`php
    $image_width = $image_info[0][‘size_download’];
    $image_height = $image_info[0][‘download_content_length’];
    “`

    注意,根据微信的特性,有时候图片的尺寸信息可能无法直接获取,这时可以尝试更换User-Agent和Referer等请求头的参数,或者使用其他方法来获取图片的尺寸信息。

    以上就是获取微信文章图片尺寸的简要步骤,在实际应用中可能还需要处理一些异常情况和错误处理,代码中也可以加入缓存机制来提高性能。需要根据实际需求进行进一步的开发和调试。

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

400-800-1024

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

分享本页
返回顶部