偷得浮生半日闲

拳头说书: 76 分钟看完《三体》全集


全程看完,基本符合小说剧情,喜欢《三体》的人可以看看。

宇宙很大,生活更大。

CentOS7 Tableau-server 安装记录


官方建议
CPU 不低于 8 核
内存最少 8G (低于 8G 无法安装)
硬盘空间建议不低于 50G

Learn more

PHP 里 switch case 只做松散比较


https://www.v2ex.com/t/398773
这种混搭使用 switch 的坑还不止一个,比如下面这段代码输出结果是 “ this is 2 ”

<?php

$string="2string";

switch($string)
{
    case 1:
        echo "this is 1";
        break;
    case 2:
        echo "this is 2";
        break;
    case '2string':
        echo "this is a string";
        break;
}
?>

switch case 只进行松散比较

php 的松散比较 “==” 在判断值之前会自动的进行类型转换,如果想连类型都判断的话就要用到严格比较 “===”

参见:
http://php.net/manual/zh/control-structures.switch.php
松散比较、严格比较参见:
http://php.net/manual/zh/types.comparisons.php#types.comparisions-loose

Trust


https://www.sekai.co/trust/

群晖 ffmpeg 插件


操作环境 DSM6.1

群晖自带的 Vidoe Station 在播放部分格式视频的时候会出现无法解码等相关字样。

在网上搜索后从社区里下载 ffmpeg 套件解决了这个问题。

在套件中心的设置里选择套件来源,新增一个 SynoCommunity 的包地址。
名称: SynoCommunity
位置: http://packages.synocommunity.com

添加完在套件中心里会多出一个社群的分类,在里面找到 ffmpeg 的套件,安装好就可以了。

如果安装不了可以在
https://guillaume.smaha.net/syno/
下载对应的 spk 包,然后在套件中心里选择手动安装。

参考:https://www.chiphell.com/thread-1589917-1-1.html

ESXi 6.5


上周末闲来无事在家里安装了 ESXi 。

家里两台机子一台装了 windows 日常使用,另一台装了 NAS ,可是现在还需要一台机子装 Linux 使用,机子不足只能想到使用虚拟机的方法。因为可能涉及到远程使用,所以必须长时间待机。

于是打算在 windows 里安装虚拟机再装个 Linux ,可是这样的话两台电脑同时待机功耗实在是有点大,所以心想把 NAS 也装在虚拟机里好了。一顿操作之后虚拟机是装好了,可是在局域网里传文件的速度实在是低还不如光钎下载速度快,遂放弃。

后来找到了 ESXi 。本着还年轻要多折腾的心态,于是开始了 ESXi 的安装

Learn more

WordPress 中英文混排


中英文之间加个空格会提高内容的可阅读性,可我还没有完全的养成这种习惯,有时候不自觉的就会中英文连在一起。于是搜索了下,看看有没有可以自动在中英文之间加空格的办法,网上千篇一律,几乎都是用 css+js 还要在 html 里加 class 的方法。

正好在弄 TTIM 主题,就用正则表达式写了一段代码。

//中英文混排
function auto_space($content){
 $content = preg_replace('/([\x80-\xff])(\w+)/', '${1} ${2}', $content);
 $content = preg_replace('/(\w+)([\x80-\xff])/', '${1} ${2}', $content);
 return $content;
}
add_filter("the_title", "auto_space", 200);
add_filter("the_excerpt", "auto_space", 200);
add_filter("the_content", "auto_space", 200);

把这段代码加到主题的 function.php 文件里就可以了,比起加 class 、 css 、 js 要方便些。

林俊杰——《我怀念的》


来源:Youtube

翻唱只服老牌实力歌手

用淘宝的 IP 地址库,把 IP 地址并转换成真实地址


此处用的淘宝的 IP 地址库 http://ip.taobao.com/service/getIpInfo.php?ip=XXXX

$url = 'http://ip.taobao.com/service/getIpInfo.php?ip=' . $ip;
//$ip 为用户的 IP 地址,须自己定义获取。
$ip=json_decode(file_get_contents($url));
if((string)$ip->code=='1'){
 echo "false";
}else{
    $data = (array)$ip->data;
    if($ip == null || $ip == "") {
        return "Query false";
    } else {
        if((string)$ip->code=='1') {
            echo "Query false";
        }
        $data = (array)$ip->data;
        $desc = "";
        if($data['country'] != '' && $data['country'] != "undefined"){
            $desc .= $data['country'];
        }
        if($data['area'] != '' && $data['area'] != "undefined"){
            $desc .= " " . $data['area'];
        }
        if($data['region'] != '' && $data['region'] != "undefined"){
            $desc .= " " . $data['region'];
        }
        if($data['city'] != '' && $data['city'] != "undefined"){
            $desc .= " " . $data['city'];
        }
        if($data['county'] != '' && $data['county'] != "undefined") {
            $desc .= " " . $data['county'];
        }
        if($data['isp'] != '' && $data['isp'] != "undefined") {
            $desc .= " " . $data['isp'];
        }
        if($desc == "" || $desc == "undefined") {
            $desc = "未知";
        }

        echo $desc;
    }
}

这个方法有个弊端,如果服务器连接淘宝服务器慢了会导致页面加载变慢,尤其是多个 IP 需要同时处理的时候。

于是经过改良把 file_get 换成 curl_get 并设置超时时间。

$ch = curl_init();
$url = 'http://ip.taobao.com/service/getIpInfo.php?ip=' . $ip;
//$ip 为用户的 IP 地址,须自己定义获取。
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);//设定超时时间为 3 秒
$ip = curl_exec($ch);
curl_close($ch);
$ip=json_decode($ip);
if($ip == null || $ip == ""){
    echo "获取信息超时";
}else{
    if((string)$ip->code=='1'){
        echo "Query false";
    }
    $data = (array)$ip->data;
    $desc = "";
    if($data['country'] != '' && $data['country'] != "undefined"){
        $desc .= $data['country'];
    }
    if($data['area'] != '' && $data['area'] != "undefined"){
        $desc .= " " . $data['area'];
    }
    if($data['region'] != '' && $data['region'] != "undefined"){
        $desc .= " " . $data['region'];
    }
    if($data['city'] != '' && $data['city'] != "undefined"){
        $desc .= " " . $data['city'];
    }
    if($data['county'] != '' && $data['county'] != "undefined") {
        $desc .= " " . $data['county'];
    }
    if($data['isp'] != '' && $data['isp'] != "undefined") {
        $desc .= " " . $data['isp'];
    }
    if($desc == "" || $desc == "undefined")
    {
        $desc = "未知";
    }

    echo $desc;
}

改良后加载速度变得快得多,也不会出现 file_get 可能出现的错误。

这短代码就是我在 not ss 上用的加载 IP 地址的代码,有时候会出现超时就直接加载出“获取信息超时”的字样了,当然建议是把加载的数据存储在数据库里,下次查询的时候直接在数据库里读取,效果会更好。