美高梅4858-美高梅4858mgm-[官方网站]

各大图床 API

百度

//百度識圖的接口
func UploadToBaidu(img []byte, imgInfo string) string {
    body := new(bytes.Buffer)
    w := multipart.NewWriter(body)
    contentType := w.FormDataContentType()
    name := utils.GetFileNameByMimeType(imgInfo)
    file, _ := w.CreateFormFile("Filedata", name)
    _, _ = file.Write(img)
    _ = w.WriteField("file", "multipart")
    _ = w.Close()
    req, _ := http.NewRequest("POST", "https://api.uomg.com/api/image.baidu", body)
    req.Header.Set("Content-Type", contentType)
    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    data, _ := ioutil.ReadAll(resp.Body)
    baidu := bed.BaiduResp{}
    err := json.Unmarshal([]byte(string(data)), &baidu)
    if err != nil {
        logging.AppLogger.Error("Upload To Baidu fail", zap.Error(err))
        return ""
    }
    return string(baidu.ImgUrl)
}

奇虎360(Qihoo)

func UploadToQihoo(img []byte, imgInfo string, imgType string) string {
    url := "http://st.so.com/stu"
    name := utils.GetFileNameByMimeType(imgInfo)

    file := &utils.FormFile{
        Name:  name,
        Key:   "upload",
        Value: img,
        Type:  imgType,
    }
    var header map[string]string
    data := utils.FormPost(file, url, header)
    var re = regexp.MustCompile(`(?m)data-imgkey="(.*)"`)
    imgKey := re.FindAllStringSubmatch(data, -1)[0][1]
    url = "https://ps.ssl.qhmsg.com/" + imgKey
    return url
}

网易严选(NetEasy)

func UploadToNetEasy(img []byte, imgInfo string, imgType string) string {
    url := "http://you.163.com/xhr/file/upload.json"
    name := utils.GetFileNameByMimeType(imgInfo)

    file := &utils.FormFile{
        Name:  name,
        Key:   "file",
        Value: img,
        Type:  imgType,
    }
    var header map[string]string
    data := utils.FormPost(file, url, header)
    netEasy := bed.NetEasyResp{}

    _ = json.Unmarshal([]byte(data), &netEasy)
    return netEasy.Data[0]
}

京东(JD)

func UploadToJd(img []byte, imgInfo string, imgType string) string {
    url := "https://search.jd.com/image?op=upload"
    name := utils.GetFileNameByMimeType(imgInfo)

    file := &utils.FormFile{
        Name:  name,
        Key:   "file",
        Value: img,
        Type:  imgType,
    }
    var header map[string]string
    data := utils.FormPost(file, url, header)
    var pre = regexp.MustCompile(`(?m)ERROR`)

    if !pre.MatchString(data) {
        var re = regexp.MustCompile(`(?m)\("(.*)"\)`)
        imgFix := re.FindAllStringSubmatch(data, -1)[0][1]
        url = "https://img" + strconv.Itoa(rand.Intn(3)+11) + ".360buyimg.com/img/" + imgFix
        return url
    } else {
        return ""
    }

}

掘金(JueJin)

func UploadToJueJin(img []byte, imgInfo string, imgType string) string {
    url := "https://cdn-ms.juejin.im/v1/upload?bucket=gold-user-assets"
    name := utils.GetFileNameByMimeType(imgInfo)

    file := &utils.FormFile{
        Name:  name,
        Key:   "file",
        Value: img,
        Type:  imgType,
    }
    var header map[string]string
    data := utils.FormPost(file, url, header)
    juejin := bed.JueJinResp{}
    _ = json.Unmarshal([]byte(data), &juejin)

    //神奇三斷言 : )
    reJ, _ := juejin.D.(map[string]interface{})
    urls, _ := reJ["url"].(map[string]interface{})
    httpUrl, _ := urls["https"].(string)
    return httpUrl
}

阿里(Ali)

func UploadToAli(img []byte, imgInfo string, imgType string) string {
    url := "https://kfupload.alibaba.com/mupload"
    name := utils.GetFileNameByMimeType(imgInfo)

    file := &utils.FormFile{
        Name:  name,
        Key:   "file",
        Value: img,
        Type:  imgType,
    }
    //var header map[string]string
    data := utils.AliFormPost(file, url)
    ali := bed.AliResp{}
    _ = json.Unmarshal([]byte(data), &ali)
    return ali.Url
}

[2020年] 修复 Windows10 计算机上的 BAD SYSTEM CONFIG INFO 错误

有2种解决办法

1. 重装系统

2. 修复 Windows 注册表文件

当您进入欢迎屏幕以单击下一步,然后单击窗口左下角的修复计算机。然后单击 “疑难解答” > “高级选项” > “命令提示符”。
美高梅4858mgm,一旦打开命令提示符窗口,按照给出的顺序逐个实行以下命令:

CD C:\Windows\System32\config
ren C:\Windows\System32\config\DEFAULT DEFAULT.old
ren C:\Windows\System32\config\SAM SAM.old
ren C:\Windows\System32\config\SECURITY SECURITY.old
ren C:\Windows\System32\config\SOFTWARE SOFTWARE.old
ren C:\Windows\System32\config\SYSTEM SYSTEM.old

完成这些后,按给定的顺序逐个输入这些,按照给出的顺序逐个实行以下命令:

copy C:\Windows\System32\config\RegBack\DEFAULT C:\Windows\System32\config\
copy C:\Windows\System32\config\RegBack\SAM C:\Windows\System32\config\
copy C:\Windows\System32\config\RegBack\SECURITY C:\Windows\System32\config\
copy C:\Windows\System32\config\RegBack\SYSTEM C:\Windows\System32\config\
copy C:\Windows\System32\config\RegBack\SOFTWARE C:\Windows\System32\config\

最后,键入exit以关闭“命令提示符”窗口。然后重启即可

- 阅读剩余部分 -

2 行代码搞定给你的网页加 黑暗模式(夜间模式)开关

Darkmode.Js

?黑暗模式/夜间模式,只需要几秒钟就可以给你的网站添加这个功能

美高梅4858已经添加,你可以看到网站左下方有个小按钮,你点击 Ta 预览以下效果吧!

该库使用 CSS mix-blend-mode 来将暗模式带入您的任何网站。只需复制粘贴该片段,您将获得一个小部件以打开和关闭暗模式。您也可以不使用窗口小部件而以编程方式使用它。该插件是轻量级的,内置于?? VanillaJS 中。默认情况下,它也使用 localstorage,因此您的上一次设置将被记住!

特点

  • 窗口小部件自动显示
  • 保存用户选择
  • 如果操作系统偏好的主题为深色,则自动显示Darkmode(如果浏览器支撑prefers-color-scheme)
  • 可以以编程方式使用而无需小部件

WordPress 插件

如果您使用的是 Wordpress,则可能需要看看基于 Darkmode.js 的这些插件:
  • https://wordpress.org/plugins/blackout-darkmode-widget/
  • https://wordpress.org/plugins/darkmode/

简单方法(使用JSDelivr CDN)

只需将此代码添加到您的 html 页面:

<script src="none"></script>
<script>new Darkmode().showWidget();</script>

高级调用参数:

- 阅读剩余部分 -

PHP 解析抖音短视频无水印源码(非调用 Ta 人接口解析)

Gitee 地址(不是我写的):https://gitee.com/uxqq/dyapi

我已经部署好的(我自己做了改动):https://api.nowtime.cc/v1/douyin/videoParse?url=视频链接
例如:https://api.nowtime.cc/v1/douyin/videoParse?url=https://v.douyin.com/sD6Wyk

返回结果:

{
  "code": 200,
  "msg": "获取成功",
  "data": {
    "title": "马斯克Boring企业开发地下立体交通隧道,系统智能管理,将让无间隔跟车成为可能#马斯克 #boring隧道",
    "img": "https://p9-dy.byteimg.com/img/tos-cn-p-0015/ec7c7768c516479489f8e6d62435bf95_1581734295~c5_300x400.jpeg?from=2563711402_large",
    "videourl": "http://v5-dy.ixigua.com/0cdda091045c66f99f261844772abf9d/5e4773a0/video/tos/hxsy/tos-hxsy-ve-0015/7a26bfc1603340cd981e76bca7906a91/?a=1128&br=0&bt=507&cr=0&cs=0&dr=0&ds=6&er=&l=2020021511290501001203410423F11F5A&lr=&qs=0&rc=amx2c2RzNXlvczMzOmkzM0ApaTNnOWkzZGQ5NzM5OWc6M2dxXzAvNl4wZjBfLS0xLS9zcy9gYy1iMi82YTUwYDReYjA6Yw%3D%3D&vl=&vr="
  }
}

PHP 代码:

<?php
header('Access-Control-Allow-Origin:*');
header('Content-type:application/json; charset=utf-8');
error_reporting(0);
if(!array_key_exists('url',$_REQUEST))exit(error("缺少参数"));
$url =@$_REQUEST;
preg_match("/http:\/\/v.douyin.com\/\S+/",$url['url'],$res);
if (!$res)exit(error("请检查你输入的链接"));
function error($str){
    return json_encode([
        "code"=>-1,
        "msg"=>$str
    ],JSON_UNESCAPED_UNICODE);
}
function curl($url, $getinfo=false)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_NOBODY, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, false);
    curl_setopt($ch, CURLOPT_TIMEOUT, 3600);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    curl_setopt($ch, CURLOPT_ENCODING, '');
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('User-Agent:Mozilla/5.0 (苹果; CPU 苹果 OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'));
    if($getinfo){
        curl_exec($ch);
        $data = curl_getinfo($ch,CURLINFO_EFFECTIVE_URL);
    }else{
        $data = curl_exec($ch);
    }
    curl_close($ch);
    return $data;
}
preg_match_all("/itemId: \"([0-9]+)\"|dytk: \"(.*)\"/", curl($res[0]), $res, PREG_SET_ORDER);
if(!@$res[0][1] || !@$res[1][2])exit(error("数据异常"));
$arr = json_decode(curl("https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={$res[0][1]}&dytk={$res[1][2]}"));
exit(json_encode([
    "code"=>1,
    "msg"=>"获取成功",
    "data"=>[
        'title'    => $arr->item_list[0]->desc,
        'img'      => $arr->item_list[0]->video->cover->url_list[0],
        'videourl' => curl($arr->item_list[0]->video->play_addr->url_list[0], true)
    ]
],JSON_UNESCAPED_UNICODE));

Cloudreve 屏蔽 ThinkPHP 核心文件,防止被人恶意攻击

根据 ThinkPHP 的默认配置,index.php 入口文件本应在 public/index.php 的,但是 Cloudreve 直接将它移动到程序根目录,ThinkPHP 框架 的所有文件都暴露在公网下,如果 ThinkPHP 出现什么漏洞,攻击者可以直接对其进行攻击

为了避免这种,我想到了两种方法

一种是使用 Nginx URL重写(伪静态)进行屏蔽:

这里屏蔽掉了 ThinkPHP 核心文件及一些安装文件,保证其不会暴露在公网中
location ~ ^/(extend|application|thinkphp|CloudreveInstaller|vendor|extend)/*.*$
{
        return 404;
}

location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md|composer.lock|mysql.sql|deploy.sh|composer.json)
{
        return 404;
}

另一种是将 index.php 移动到 public 下

这个移动之后有许多地方需要更改,我嫌麻烦,没去弄

XML 地图 | Sitemap 地图