whatshot爬取60秒读懂世界数据生成图片开源

@Ta 08-28 22:47发布,08-28 22:50修改 2204点击

图片样子
说明:simhei.ttf,和 fy.TTF 是字体文件,自己随便百度下载一个就行
http://cm.danran0.cc/60.php
1.jpg
代码

<?php
$ymd=date("Ymd_H");
if(file_exists("./day/day$ymd.png")) {
    header('Content-Type: image/png');
    echo file_get_contents("./day/day$ymd.png");
    die();
}
//=========普通配置区=============
//字体宽度
$n=18;
//字体
//创建图片大小
$img = imagecreate(550, 3080);
//给图片分配颜色
imagecolorallocate($img,243, 242, 238);
//========常量区===================
//星期
$week=date("w");
$week=date("w");
$wstr=array("星期日","星期一","星期二","星期三","星期四","星期五","星期六")[$week];
$wcolor=array(
    imagecolorallocate($img, 236, 99, 47),
    imagecolorallocate($img, 242, 78, 81),
    imagecolorallocate($img, 251, 176, 62),
    imagecolorallocate($img, 0, 193, 234),
    imagecolorallocate($img, 100, 172, 46),
    imagecolorallocate($img, 96, 99, 230),
    imagecolorallocate($img, 252, 77, 132))[$week];
//日期
$month=date("m月d日");
$year=date("Y年");
//一句数据
$yiju=array(
    "[一言]心坚石也穿",
    "[一言]志当存高远",
    "[一言]在这里放弃的话,比赛就结束了。",
    "[一言]一息尚存,不容稍懈。",
    "[一言]好!吃到老,玩到老。",
    "[一言]善于发问的人,知识丰富",
    "[一言]悲伤教会了我喜悦。",
    "[一言]握不住的沙,不如扬了它。",
    "[一言]熬夜对身体不好,建议通宵。",
    "[一言]做好人没希望,做坏人不擅长。",
    "[一言]学海无涯,回头是岸。",
    "[一言]吃的苦中苦,才知白辛苦。",
    "[一言]人生两件事,走路与识人。",
    "[一言]人之所以能,是相信能。",
    "[毒鸡汤]这世上只有和好,没有如初。",
    "[毒鸡汤]好看的人千千万,整过容的一大半。",
    "[毒鸡汤]忍无可忍,就重新再忍。",
    "[毒鸡汤]只要新欢足够好,哪有旧爱忘不了。",
    "[毒鸡汤]吃不了自律的苦,就得吃平庸的苦。",
    "[毒鸡汤]女票突然变瘦了,多半是漏气了。",
    "[毒鸡汤]是好久不见,还是,视而不见。",
    "[毒鸡汤]只有不快乐的人,才想知道未来。",
    "[毒鸡汤]垃圾,就是放错了位置的资源。",
    "[毒鸡汤]有缘千里来相会,无缘倒也省话费。",
    "[毒鸡汤]今日不肯埋头,明日何以抬头。",
    "[毒鸡汤]高考完不要撕书,还有可能复读。",
    "[毒鸡汤]谁人背后不说人,谁人背后无人说。",
    "[毒鸡汤]静若瘫痪,动若癫痫。",
    "[毒鸡汤]贫穷和自卑让我低下头,打开书。",
    "[彩虹屁]热爱可抵漫长岁月",
    "[彩虹屁]若深情不能对等,愿爱得更多的人是我。",
    "[彩虹屁]未经允许,擅自特别喜欢你,不好意思了",
    "[彩虹屁]我肩上有风,风上是闪烁的星群",
    "[彩虹屁]什么是诗,诗就是你。",
    "[彩虹屁]我做事十拿九稳,现在只差你一吻。",
    "[古诗]天涯地角有穷时,只有相思无尽处",
    "[古诗]愿君多采撷,此物最相思",
    "[古诗]昨夜闲潭梦落花,可怜春半不还家",
    "[古诗]空里流霜不觉飞,汀上白沙看不见",
    "[古诗]不知江月待何人,但见长江送流水",
    "[古诗]白云一片去悠悠,青枫浦上不胜愁",
    "[古诗]鸿雁长飞光不度,鱼龙潜跃水成文",
    "[古诗]江畔何人初见月,江月何年初照人",
    "[古诗]江天一色无纤尘,皎皎空中孤月轮",
    "[古诗]不知乘月几人归,落月摇情满江树",
    "[古诗]此时相望不相闻,愿逐月华流照君",
    "[古诗]谁家今夜扁舟子,何处相思明月楼",
    "[古诗]用我三生烟火,换你一世迷离",
    "[古诗]我自是年少,韶华倾负",
    "[古诗]两情若是久长时,又岂在朝朝暮暮",
    "[古诗]欲把相思说似谁,浅情人不知",
    "[古诗]遥知兄弟登高处,遍插茱萸少一人",
)[rand(0,50)];
//========函数区===================
function strN($str, $num)
{
    $str=str_replace("&#34;",'"',$str);
    preg_match_all("/./u", $str, $arr);//将所有字符转成单个数组
    $strstr = '';
    $width = 0;
    $arr = $arr[0];
    foreach ($arr as $key => $string) {
        $strlen = strlen($string);//计算当前字符的长度,一个字母的长度为1,一个汉字的长度为3
        if ($strlen == 3) {
            $width += 1;
        } else {
            $width += 0.5;
        }
        $strstr .= $string;
        //计算当前字符的下一个
        if (array_key_exists($key + 1, $arr)) {
            $_strlen = strlen($arr[$key + 1]);
            if ($_strlen == 3) {
                $_width = 1;
            } else {
                $_width = 0.5;
            }
            if ($width + $_width > $num) {
                $width = 0;
                $strstr .= "\n";
            }
        }
    }
    return $strstr;
}

function get_constellation(){
    $month=date("m");
    $date=date("d");
    $constellations = array(

            '水瓶座', '双鱼座', '白羊座', '金牛座', '双子座', '巨蟹座',

            '狮子座', '处女座', '天秤座', '天蝎座', '射手座', '摩羯座'

    );
    if( $date <= 22 ){

        if( 1 != $month ){

            $constellation = $constellations[$month - 2];

        }else{

            $constellation = $constellations[11];

        }

    }else{
        $constellation = $constellations[$month - 1];

    }
    return $constellation;

}

//==========代码区===================
$history="[历史上今天]".json_decode(file_get_contents("https://idays-cdn.2q10.com/app/idays/on_this_day"),true)[date('Y-m-d')][3]['content'];
$str=json_decode(file_get_contents("https://www.zhihu.com/api/v4/columns/c_1261258401923026944/items"),true)['data'][0]['content'];
$pm ="/<p>([0-9]{1,2}、.*?)<\/p>/";
$arr =[];
preg_match_all($pm, $str, $arr);
$arr=$arr[1];
$str="";
foreach($arr as $key=>$value){
    if(strlen($value)>2){
        $str=$str.strN($value,$n)."\n\n";
    }
}
$str=$str.strN($history,$n)."\n";
$darr=json_decode(file_get_contents("http://tools.2345.com/frame/api/GetLunarInfo?date=$ymd"),true);


//设置字体颜色
$black = imagecolorallocate($img, 0, 0, 0);


$blue =imagecolorallocate($img, 98,113,228);
$white =imagecolorallocate($img, 255,255,255);
$red =imagecolorallocate($img, 225, 36, 77);


//画入背景,写入星期
imagefilledrectangle($img, 10, 10, 540, 190, $wcolor);
imagettftext($img, 80, 0, 15, 105, $white, "se.TTF", $wstr);
imagefilledrectangle($img, 10, 3050, 540, 125, $wcolor);
imagefilledrectangle($img, 13, 3047, 537, 175, $white);
imagettftext($img, 14, 0, 15, 140, $white, "se.TTF", $darr['html']['nongli']." 五行".$darr['html']['wuxing']." ".get_constellation());
imagettftext($img, 50, 0, 335, 70, $white, "simhei.ttf", $year);
imagettftext($img, 30, 0, 350, 110, $white, "simhei.ttf", $month);
//写入版权
//imagettftext($img, 11, 0, 320, 90, $white, $font, "@AnglerS");
//写入新闻

imagettftext($img, 30, 0, 155, 215, $black, "fy.TTF", "60秒读懂世界");
imagettftext($img, 30, 0, 154, 215, $black, "fy.TTF", "60秒读懂世界");
imagettftext($img, 21, 0, 16, 265, $black, "fy.TTF", $str);
imagettftext($img, 21, 0, 17, 265, $black, "fy.TTF", $str);
imagettftext($img, 14, 0, 15, 165, $white, "se.TTF", $yiju);
//imagettftext($img, 10, 0, 425, 1270, $black, $font, "版权所属:AnglerS");

//输出图片
imagepng($img,"day/day$ymd.png");
imagedestroy($img);
//发送头信息
header('Content-Type: image/png');
echo file_get_contents("./day/day$ymd.png");

小米8高配版(五颜六色)

回复列表(12)
添加新回复
回复需要登录

[聊天-摸鱼] 姜辰:所有单位在干活,而我在一边摸鱼