MENU

【PHP】随机二次元图片接口API

October 8, 2018 • Read: 579 • 技术杂谈

随机图片API调用实现

今早在浏览自己博客的时候,发现谷歌浏览器的小绿锁没了,很不爽。看了一下,是因为主题默认调用的缩略图接口非SSL,左找右找没找到合适api,但是却发现了另外一个接口,所以决定索性自己封装一个。

小绿锁.png

接口地址:https://acg.toubiec.cn/

封装方法:调用返回图片地址、再 header跳转一下,很简单。

Ps:可能是因为调用的人比较多吧,感觉速度有点慢;等有空用Python爬一下,自己彻底做一个。

封装成品:https://qzone.club/api/random_img.php

本页博文第一张图即调用,刷新就会改变。

实现代码:

<?php
/*
 * Author:小珏
 * Uptime:2018-10-8,11:36
 * 博客地址:https://qzone.work/
 * 接口地址:https://acg.toubiec.cn/
 */
$api = 'https://acg.toubiec.cn/random?return=json';
$ret = json_decode ( get_curl ( $api, $data ), true );
header ( "Location:" . $ret ['acgurl'] );

function get_curl($url, $post = 0, $referer = 0, $cookie = 0, $header = 0, $ua = 0, $nobaody = 0) {
    $ch = curl_init ();
    curl_setopt ( $ch, CURLOPT_URL, $url );
    curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
    curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, false );
    $httpheader [] = "Accept:*/*";
    $httpheader [] = "Accept-Encoding:gzip,deflate,sdch";
    $httpheader [] = "Accept-Language:zh-CN,zh;q=0.8";
    $httpheader [] = "Connection:close";
    curl_setopt ( $ch, CURLOPT_HTTPHEADER, $httpheader );
    if ($post) {
        curl_setopt ( $ch, CURLOPT_POST, 1 );
        curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post );
    }
    if ($header) {
        curl_setopt ( $ch, CURLOPT_HEADER, true );
    }
    if ($cookie) {
        curl_setopt ( $ch, CURLOPT_COOKIE, $cookie );
    }
    if ($referer) {
        if ($referer == 1) {
            curl_setopt ( $ch, CURLOPT_REFERER, 'http://m.qzone.com/infocenter?g_f=' );
        } else {
            curl_setopt ( $ch, CURLOPT_REFERER, $referer );
        }
    }
    if ($ua) {
        curl_setopt ( $ch, CURLOPT_USERAGENT, $ua );
    } else {
        curl_setopt ( $ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" );
    }
    if ($nobaody) {
        curl_setopt ( $ch, CURLOPT_NOBODY, 1 );
    }
    curl_setopt ( $ch, CURLOPT_ENCODING, "gzip" );
    curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
    $ret = curl_exec ( $ch );
    curl_close ( $ch );
    return $ret;
}
?>