分类 编程及辅助 下的文章

资源:L2Dwidget 二次元前端插件


使用方法:

如下面代码一样,在HTML的head头内或body尾部引入L2Dwidget.js即可在页面中引入动画。

<script src="https://eqcn.ajz.miesnfu.com/wp-content/plugins/wp-3d-pony/live2dw/lib/L2Dwidget.min.js"></script> 
<script src="https://eqcn.ajz.miesnfu.com/wp-content/plugins/wp-3d-pony/live2dw/lib/L2Dwidget.0.min.js"></script> 
<script>
  L2Dwidget.init({ 
  "model": {jsonPath:"https://unpkg.com/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json","scale": 1 }, 
  "display": { "position": "left", "width": 150, "height": 300,"hOffset": 0, "vOffset": -20 }, 
  "mobile": { "show": true, "scale": 0.5 }, 
  "react": { "opacityDefault": 0.7, "opacityOnHover": 0.2 } });
</script>

其中,model内的jsonPath对应的就是动画模型的json文件地址,不同模型,显示不同图形。

可选模型有:

模型类型url
小帅哥https://unpkg.com/live2d-widget-model-chitose@1.0.5/assets/chitose.model.json
萌娘https://unpkg.com/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json
小可爱(女)https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json
小可爱(男)https://unpkg.com/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json
初音https://unpkg.com/live2d-widget-model-miku@1.0.5/assets/miku.model.json
z16https://unpkg.com/live2d-widget-model-z16@1.0.5/assets/z16.model.json
黑猫https://unpkg.com/live2d-widget-model-hijiki/assets/hijiki.model.json

等有时间放到宝塔插件上去(但是最近良哥说插件无大bug不给与审核)。。。。


PHP封装: html转pdf文件 mPDF 使用


mpdf中文开发使用文档附demo实例

官网URL:http://www.mpdf1.com/mpdf/index.php
github:https://github.com/mpdf/mpdf
官方开发手册,英文的:http://www.mpdfonline.com/repos/mpdfmanual.pdf
网页版 https://mpdf.github.io/

安装

官方安装方法是通过composer and its packagist package mpdf/mpdf.

$ composer require mpdf/mpdf

mPDF8中文乱码问题的修复

'autoScriptToLang' => true,
'autoLangToFont' => true,
'useSubstitutions' => true,

示例

$html = <<<EOF
<h3 style="text-align: center;">
    <strong>demo测试</strong>
</h3>
<table>
    <tbody>
        <tr class="firstRow">
            <td width="299" valign="top" style="word-break: break-all;">
                1
            </td>
            <td width="299" valign="top" style="word-break: break-all;">
                2
            </td>
            <td width="299" valign="top" style="word-break: break-all;">
                1
            </td>
            <td width="299" valign="top">
                12
            </td>
        </tr>
        <tr>
            <td width="299" valign="top" style="word-break: break-all;">
                3
            </td>
            <td width="299" valign="top" style="word-break: break-all;">
                1
            </td>
            <td width="299" valign="top" style="word-break: break-all;">
                213
            </td>
            <td width="299" valign="top" style="word-break: break-all;"></td>
        </tr>
    </tbody>
</table>
<p>
    <img src="https://w7file.0cms.vip/images/82/2020/11/BxUV9v9v94E4qVXDqqdB4UX5buxEvK.png" alt="4bc48dd8700da94c923706015368c2d.png" style="max-width: 100%"/>
</p>
<p>
    的空间神佛案件多发卡迪夫安家费哦按实际的发家史的方法论叫阿里打开激发了四道口附近阿拉山口大家法律上的开发啊手动阀手动阀安抚安抚阿斯蒂芬阿斯蒂芬阿斯顿发士大夫阿斯蒂芬阿斯蒂芬阿斯顿阿道夫
</p>
EOF;
        $mpdf = new \Mpdf\Mpdf(['mode'=>'utf-8','format'=>'A4','useSubstitutions'=>true,'useAdobeCJK'=>true,'autoScriptToLang'=>true,'autoLangToFont'=>true,'mgl'=>15,'mgr'=>15,'mgt'=>16,'mgb'=>16,'mgh'=>9,'mgf'=>9, 'orientation'=>'P']);
        $mpdf->WriteHTML($html);
        $mpdf->Output('mpdf.pdf',"D");

最终效果

微信截图_20201118165819.png


Superbench.sh:一键脚本测试 VPS 性能


使用这个脚本,可以一键测试搬瓦工 VPS 各种性能,包括 VPS 基本信息,硬盘读写速度,到国内各个地区的下载速度等。与 bench.sh 相比,这个脚本主要是在测速方面做了改动。

一、Superbench.sh 使用方法

使用方法:

wget -qO- http://tool.bug-maker.com/superbench/superbench_git.sh | bash

或者线上的版本

wget -qO- sb.oldking.net | bash

测试结果如下所示:

微信截图_20200918111246.png


QQ群Hook机器人API


妈耶,QQ群出了个机器人的hook,那不得赶紧的用上,想想都美滋滋啊,这样以后通知啥的用hook不就完事了。
这部扎心了么,今天突然退群了,完了 hook是不是用不了了啊

<?php

/**
 * Class QQ_HOOK_ROBOT
 * author 猪在天上飞
 * date 2020/04/13
 * update 2020/04/13
 */
class QQ_HOOK_ROBOT
{
    public static $_instance;
    public static $httpApi;
    public static $message;

    /**
     * @param $array
     */
    public static function setApi($array)
    {
        //hookrobot_api build
        self::$httpApi = $array["api"] . "?" . http_build_query($array["query"]);
        self::init();
    }

    /**
     * 初始化
     * 看腾讯hookrobot后续会新加啥
     */
    public static function init()
    {
        //这样是为了兼容后续腾讯hookrobot会增加参数
        self::$message = array(
            "content" => array()
        );
    }

    /**
     * 设置单实例
     * @param QQ_HOOK_ROBOT $hook
     */
    public static function set(QQ_HOOK_ROBOT $hook)
    {
        self::$_instance = $hook;
    }

    /**
     * 获取单实例
     * @return QQ_HOOK_ROBOT
     */
    public static function get()
    {
        if (empty(self::$_instance)) {
            die("Exception: Single instance is not set");
        }
        return self::$_instance;
    }

    /**
     * @param $msg
     * @param int $type 目前是0,可能后续腾讯hookrobot会有新增加
     */
    public static function setMsg($msg, $type = 0)
    {
        self::$message["content"][] = array(
            "type" => $type,
            "data" => $msg
        );
    }

    /**
     * 发送
     * 第一个是http代号,测试出一直是500
     * 第二个是api返回的内容,现在一直是null
     * @return array
     */
    public static function send()
    {
        $json = json_encode(self::$message);
        // encode 后,就初始化msg
        self::init();
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_URL, self::$httpApi);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_HTTPHEADER,
            array(
                'Content-Type: application/json; charset=utf-8',
                'Content-Length: ' . strlen($json)
            )
        );
        ob_start();
        curl_exec($ch);
        $return_content = ob_get_contents();
        
        ob_end_clean();
        return array(
            curl_getinfo($ch, CURLINFO_HTTP_CODE),
            $return_content
        );
    }
}

// hookrobot  new 对象,set 单实例
$hook = new QQ_HOOK_ROBOT();
$hook->setApi(
    array(
        //hookrobot_api
        "api" => "https://app.qun.qq.com/cgi-bin/api/hookrobot_send",
        //这样做是为了后续腾讯hookrobot更新的新参数
        "query" => array(
            // 这里是 key,自己改成自己群hook的key
            "key" => "a8ce943a6fd7d48626538a306a74fea1e8fdf9ba"
        )
    )
);
QQ_HOOK_ROBOT::set($hook);

//调用方法 1

//这里添加消息内容  可以多次调用
QQ_HOOK_ROBOT::setMsg("test 1");
QQ_HOOK_ROBOT::setMsg("test 2");

// 最后,添加消息完后,发送
//QQ_HOOK_ROBOT::send();

//或则 打印返回的内容
var_dump(QQ_HOOK_ROBOT::send());


//调用方法 2
// 可以获取hookrobot单实例,类比上面的set
$hook = QQ_HOOK_ROBOT::get();
$hook->setMsg("get test 1");
$hook->setMsg("get test 2");
$hook->send();