LMLPHP后院

Apache泛解析与二级域名冲突解决技术

maybe yes 发表于 2015-12-07 09:42

首先,最近真的太忙了,想说真的是哔了狗了。忙的每天在干一些在我看来很没有意义也完全没有价值的东西,谁又不是呢?这就是现实与理想的差距。

前一阵子将网站搬到了美国的 VPS 上,虽然非常慢,但是优化的比较好,感觉不到很慢。搬迁过去后,感觉管理起来方便多了,不放在虚拟主机上的好处就是管理方便,不会为了功能的局限而产生了一些畸形的代码。

在配置虚拟主机时,也碰到了一些问题,由于本站有很多二级域名,并且有部分二级指向的是同一个目录,也就是共用一个配置文件,并且网站又得支持泛解析,导致了某些二级域名被泛解析跳转到了 www 主站。为了解决这个问题,了解了一番 Apache 的配置文件加载策略,发现配置文件的名称跟内容并没有强制的关联,并且解析顺序和加载顺序一致,这样修改配置文件的名称就可以解决问题了。

代码分享解决Laravel中MySQL WhereIn之too many placeholders技术

maybe yes 发表于 2015-11-30 13:11

MySQL 执行的时候 WhereIn 太多的 ID 参数,导致 PDO 报错。解决方法,分批量执行,然后将结果合并。

下面以 range 函数做了一个简单的例子,计算 1 到 100 的加法。


public function cu(){
    $arr = range(1, 100);
    $cl = function ($part_ids) {
        return array_sum($part_ids);
    };
    $re = $this->portionExecute($cl, $arr);
    var_dump($re);
    $re = $this->portionExecute($cl, $arr, 10);
    var_dump($re);
}

public function portionExecute($closureJob, $dataArr, $portion_count = 1000){
    $result = [];
    if(count($dataArr) > $portion_count) {
        for ($i = 0, $c = ceil(count($dataArr)/$portion_count); $i < $c; $i++){
            $part_ids = array_slice($dataArr, $i*$portion_count, $portion_count);
            $result[] = $closureJob($part_ids);
        }
    } else {
        $result = $closureJob($dataArr);
    }
    return $result;
}

解决Linux之Gnome主题下Rime输入法默认中文问题技术

maybe yes 发表于 2015-11-29 15:54

今天终于解决了让我感觉最蛋疼的问题,Rime 输入法默认中文的问题,让我痛苦了好久。一直以来都没有时间去解决这个问题,今天(2015/11/29)周日来公司加班抽空搞定了。

没有解决这个问题,是因为我对 ArchLinux 不熟悉,对 Gnome 不熟悉,对 Rime,IBus and Fcitx 也不熟悉,导致我根本不知道怎么去搜索这个问题。推荐我使用 Arch 的同事也不鸟我,导致我不太愿意问人家,问过的人也大多不熟悉这个。当我在百度,Google 搜索 “ArchLinux Gnome input method default status”, “ArchLinux Gnome input method con't remember default status”,“ArchLinux Gnome 如何记住输入法状态”,“如何解决 ArchLinux Gnome 输入法默认是中文” 等等,没有找到我想要的答案。不过 Google 给的答案比较好,让我去 Arch 的 Wiki 下去找答案,看着他们网站上密密麻麻的小小的英文字母,实在是累,不过当我认真的看完了 Rime 的文档后,发现底部有个链接 Rime IME Wiki at Github [https://github.com/rime/home/wiki]。然后通过这个链接,在 Github 上找到答案,解决了问题。

Linux下打包文件分片文件保存读取操作技术

maybe yes 发表于 2015-11-28 22:50

打包文件,使用 zip 命令,需要安装。

zip zipName.zip -r /home/myfolder/needToZip

把文件分片,切割文件,使用 split 命令。

split --bytes=50M needToSplitFile.zip splitPiecesFolder/piecesPrefix_

读取分片文件,使用 cat 命令。

cat piecesPrefix_* > outputFile.zip

文本文件按照行分割。

split -l 1000 textFileName prefixNewSplit_

改变分片的大小。

重拾Linux之AWK命令之简单统计技术

maybe yes 发表于 2015-11-28 22:37

awk 命令在很早就接触过,当时感觉它还算是蛮难的,感觉能够很熟练使用 awk 命令的人都应该算是高手了。很久不用了,感觉全忘记了,但是再次拾起来也是蛮快的事情。记得之前用它写过一个打印出文件夹下每个文件名,大小,MD5 值的命令。

使用 awk 偶尔做一些简单的统计什么的还是比较快的,但是一旦复杂了,就比较鸡肋。感觉一个人如果熟练的话,使用 PHP,或者使用 LMLPHP 也一样非常快速的可以实现自己想要的功能。

awk 默认以空格分开,可以指定分隔符,每一行的分隔部分使用 $0, $1 ... 来表示。可以使用变量数组,算是一个很简单的语法了。

如下示例,求出某一列中相同的字符串的出现的次数:

2024-12-22 20:11:52 1734869512 0.006235