2018年11月

Visual Studio Code(VSCODE)设置语言为中文

默认情况下,Visual Studio Code 会拾取操作系统的显示语言,如果是不支持的语言环境,则使用英文(US)。

1. 安装中文(简体)语言包

链接:https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-zh-hans

1-1. 进入该网页后,点击页面中的“Install”按钮,然后不出意外会弹出一个对话框,如下图所示

QQ截图20181117083725.png

1-2. 如上图所示,打开 Visual Studio Code 后,会跳转到这个页面,然后你点击 Install 进行安装

QQ截图20181117083848.png

2. 设置

2-1. 等待语言包安装完成后,按 Ctrl + Shift + P,输入 Configure Display Language,然后按回车

[W_[2Z{6[F~NKS2GDVT0M$V.png

- 阅读剩余部分 -

PHP 获取 QQ群 bkn 参数

由于项目需求,需要获得 QQ 群成员的信息,所以便使用 Google 找到了这个开源项目:

GitHub 项目地址:https://github.com/nasaplayer/getCurrentQQGroupList

由于我只需要 bkn 的计算代码,所以我就提取出来了

这个计算方法的位置在:https://github.com/nasaplayer/getCurrentQQGroupList/blob/master/v3/getCurrentQQ.class.php
第 177 行
<?php

$skey = '@ziDp00luu';//这个 skey 总知道获取吧,不再累述
echo getBkn($skey);//正常的话,输出的是:500891986

//计算 bkn
function getBkn($skey) {
    $hash = 5381;
    for ($i = 0, $len = strlen($skey); $i < $len; ++$i){
        $hash +=($hash << 5) + charCodeAt($skey, $i);

    }
    return $hash & 2147483647;
}

function charCodeAt($str, $index){
    $char = mb_substr($str, $index, 1, 'UTF-8');
    $value = null;
    if (mb_check_encoding($char, 'UTF-8')){
        $ret = mb_convert_encoding($char, 'UTF-32BE', 'UTF-8');
        $value = hexdec(bin2hex($ret));
    }
    return $value;
}

JavaScript 获取地址栏 URL 相关信息汇总

下面以这个 URL 为例:

https://nowtime.cc/index.php?user=admin&passwd=admin

1. window.location.href 获取整个 URL 为字符串

$href = window.location.href;

console.log($href);//控制台 输出 https://nowtime.cc/index.php?user=admin&passwd=admin
alert($href);//返回 https://nowtime.cc/index.php?user=admin&passwd=admin

2. window.location.protocol 获取 URL 的协议部分

$protocol = window.location.protocol;

console.log($protocol );//控制台 输出 https:
alert($protocol );//返回 https:

3. window.location.host 获取 URL 的主机名部分

$host = window.location.host;

console.log($host);//控制台 输出 nowtime.cc
alert($host);//返回 nowtime.cc

4. window.location.port 取与 URL 关联的端口号码

$port = window.location.port;

console.log($port);
alert($port);

//返回:空字符(如果采用默认的80端口、添加了 :80),那么返回值并不是默认的80而是空字符)

5. window.location.pathname 获取与 URL 的路径部分

$pathname = window.location.pathname;

console.log($pathname);//控制台 输出 index.php
alert($pathname);//返回 index.php

6. window.location.search 获取 href 属性中跟在问号后面的部分

$search = window.location.search;

console.log($search);//控制台 输出 ?user=admin&passwd=admin
alert($search);//返回 ?user=admin&passwd=admin

7. window.location.hash 获取 href 属性中在井号“#”后面的部分

$hash = window.location.hash;

console.log($hash);
alert($hash);

//返回:空字符串,因为 URL 中没有

PHP 中文域名转码/编码 | 将 Unicode 域名转换为 IDNA ASCII 兼容格式

首先需要安装 Intl 扩展

  1. 如果你服务器装了宝塔面板,相应的 PHP 版本中,安装扩展(不会的自己百度
  2. 如果不是,请自己 Google、Bing、Bing 吧

使用

  1. 对域名编码 | 将 Unicode 域名转换为 IDNA ASCII 兼容格式

    <?php
    //如果你的 PHP版本 大于等于 7.2,必须用这个
    //因为我懒得在 PHP版本 小于 7.2 测试,所以不知道可不可行,行的话用这个
    echo idn_to_ascii('人民网.中国',IDNA_NONTRANSITIONAL_TO_ASCII,INTL_IDNA_VARIANT_UTS46);
    //输出结果:xn--gmq282eogn.xn--fiqs8s
    
    //如果你的 PHP版本 小于 7.1 用这个
    //PHP 大于等于 7.2 不要用这个!详情看:https://nowtime.cc/php/505.html
    echo idn_to_ascii('人民网.中国');
    //输出结果:xn--gmq282eogn.xn--fiqs8s
  2. 对域名解码 | 将 IDNA ASCII 兼容格式域名 转换为 Unicode 格式域名

    <?php
    //如果你的 PHP版本 大于等于 7.2,必须用这个
    //因为我懒得在 PHP版本 小于 7.2 测试,所以不知道可不可行,行的话用这个
    echo idn_to_utf8('xn--gmq282eogn.xn--fiqs8s',IDNA_NONTRANSITIONAL_TO_ASCII,INTL_IDNA_VARIANT_UTS46);
    //输出结果:人民网.中国
    
    //如果你的 PHP版本 小于 7.1 用这个
    //PHP 大于等于 7.2 不要用这个!详情看:https://nowtime.cc/php/505.html
    echo idn_to_utf8('xn--gmq282eogn.xn--fiqs8s');
    //输出结果:人民网.中国

PHP 报错:idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated

由于项目的需要,需要对中文域名转码(将 Unicode 域名转换为 IDNA ASCII 兼容格式),Google 查到使用 idn_to_ascii 函数可对中文域名(Unicode 域名)转换为 IDNA ASCII 兼容格式

我在 PHP 7.2.1 下运行 echo idn_to_ascii('人民网.中国'); 出现了一下错误

[root@izwz9a76txemslg5q0e3zaz ~]# php -v
PHP 7.2.11 (cli) (built: Nov  2 2018 09:15:43) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologie

[root@izwz9a76txemslg5q0e3zaz ~]# php -r "echo idn_to_ascii('人民网.中国');"
PHP Deprecated:  idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated in Command line code on line 1

Deprecated: idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated in Command line code on line 1

- 阅读剩余部分 -