邢栋博客

邢栋博客,Action博客,记录工作和生活中的点点滴滴

PHP 两个有序数组合并成一个有序数组
<?php

    $a = [1,3,5,7,9,11];

    $b = [2,4,6,8,10];

    function test_sort($a,$b){

        $c = [];
        $aCount = count($a);
        $bCount = count($b);
        $i = $j = 0;

        while($i < $aCount && $j < $bCount){
            if($a[$i] > $b[$j]){
                $c[] = $b[$j];
                $j++;
            }elseif($a[$i] < $b[$j]){
                $c[] = $a[$i];
                $i++;
            }else{
                $c[] = $a[$i];
                $c[] = $b[$j];
                $i++;
                $j++;
            }
        }

        while($i < $aCount){
            $c[] = $a[$i];
            $i++;
        }

        while($j < $bCount){
            $c[] = $a[$j];
            $j++;
        }

        return $c;
    }


    function test_sort2($a,$b){

        $c = [];
        $aCount = count($a);
        $bCount = count($b);
        $i = $j = 0;


        while($i < $aCount || $j < $bCount){

            if($i < $aCount && $j < $bCount){
                if($a[$i] > $b[$j]){
                    $c[] = $b[$j];
                    $j++;
                }elseif($a[$i] < $b[$j]){
                    $c[] = $a[$i];
                    $i++;
                }else{
                    $c[] = $a[$i];
                    $c[] = $b[$j];
                    $i++;
                    $j++;
                }
            }elseif($i < $aCount && $j >= $bCount){
                $c[] = $a[$i];
                $i++;
            }elseif($i >= $aCount && $j < $bCount){
                $c[] = $b[$j];
                $j++;
            }

        }

        return $c;

    }

    $res = test_sort2($a,$b);

    print_r($res);

正七迎鸡兔

正七迎鸡兔,

二八虎合猴,

三九蛇共猪,

四十龙合狗,

牛羊五十一,

鼠马六十二。

php下正则匹配大字符串失败问题
问题描述:

在使用php函数preg_match匹配大字符串的时候匹配失败,而删除一半数据,则匹配成功,

解决过程:

于是在匹配结束后,调用preg_last_error()函数,查看失败原因,返回的是6,6对应的错误原因是PREG_JIT_STACKLIMIT_ERROR,

原来当字符串太大的时候,栈空间满了,直接就出错了,于是在匹配前加一下代码

ini_set('pcre.jit', 0);


解决查找的资料

1、深悉正则(pcre)最大回溯/递归限制(https://www.laruence.com/2010/06/08/1579.html)
Mac下使用clion调试redis源码

1、先从github上下载源码
1)搜索 https://github.com/search?q=redis+clion
2)最好是选择别人配置好CMakeLists.txt的,不然自己配置也很麻烦


2、下载完成,开始配置
//选择一个想要调试的版本进行下载
wget https://github.com/htw0056/redis-3.0-annotated-cmake-in-clion/archive/master.zip
//解压
unzip redis-3.0-annotated-cmake-in-clion-master.zip
//重命名+拷贝
mv redis-3.0-annotated-cmake-in-clion-master redis-3.0
cp -R redis-3.0 redis-3.0-make

//编译
cd redis-3.0-make/src
make


3、打开clion软件,导入redis-3.0项目
1)搜索到saddCommand命令,打个断点,开启debug模式

image2020-12-9_20-56-1.png
4、进入到客户端服务器,执行sadd命令
1)进入到redis-3.0-make/src,开始执行命令
./redis-cli
sadd numbers 1 77777 xd
这个时候就打开clion软件一步一步往下走了

image2020-12-9_20-57-44.png

Mac下安装gdb证书
1、先按照csdn上面的这边文章进行添加证书,名称设为 code_gdbsign
https://blog.csdn.net/LU_ZHAO/article/details/104803399/

2、假如你的mac系统大于Mac OS X 10.14,则

vim gdb-entitlement.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.cs.allow-jit</key>
    <true/>
    <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
    <true/>
    <key>com.apple.security.cs.allow-dyld-environment-variables</key>
    <true/>
    <key>com.apple.security.cs.disable-library-validation</key>
    <true/>
    <key>com.apple.security.cs.disable-executable-page-protection</key>
    <true/>
    <key>com.apple.security.cs.debugger</key>
    <true/>
    <key>com.apple.security.get-task-allow</key>
    <true/>
</dict>
</plist>
</pre>

然后执行
codesign --entitlements gdb-entitlement.xml -fs code_gdbsign $(which gdb)

3、如果mac系统早于10.14,则执行以下命令即可


codesign -fs code_gdbsign $(which gdb)




Mac系统实现git命令补全
1、先安装brew,安装过的可以忽略
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2、安装bash-completion
brew install bash-completion

3、系统配置

下载此文件
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
然后复制到家目录
cp xxx/git-completion.bash ~/.git-completion.bash

vim ~/.bash_profile 加入以下代码
if [ -f ~/.git-completion.bash ]; then
   . ~/.git-completion.bash
fi

读取文件
source ~/.git-completion.bash

北京公积金使用证明

1、进入 https://grwsyw.gjj.beijing.gov.cn/ish/,登录进入


2、点击我的账户 - 异地贷款公积金缴存证明 - 输入你要办理的贷款地中心名称 ,如 济南住房公积金中心 ,然后点击  打印缴存证明 就可以了
北京公积金流水

1、进入 https://grwsyw.gjj.beijing.gov.cn/ish/ ,登录进入


2、点击我的账户 - 住房公积金业务信息 - 选择你要打印的日期 打印就可以了

优惠券
最新微语