分类 代码分析 下的文章

一次灵异的数据排序问题

测试同学反馈说数据没有做排序,检查了下代码发现没有指定排序字段。
赶紧在PHP代码里加上,前端刷新后发现顺序还是不对,。
一开始以为是代码没传到测试环境导致,上测试环境上检查了下对应文件,代码已经更新了。

输出结果类似:

{
    "1002": {
        "xx": "xxxx", 
        "yy": "yyyy"
    }, 
    "1000": {
        "a": "aaa", 
        "b": "bbb"
    }
}

突然想到之前项目组同事说过js的排序问题,感觉是js自动做了排序。
跟同事确认了下,js会对带数字key的数组进行自动排序。

于是把PHP输出的数据结构改成没有key的就可以了,最终输出结果类似:

[
    {
        "xx": "xxxx", 
        "yy": "yyyy"
    }, 
    {
        "a": "aaa", 
        "b": "bbb"
    }
]

linux下查看一个目录下文件大小

开发中遇到“gzip: stdout: No space left on device"的错误,磁盘满了。

执行命令,查看磁盘当前情况。

df -h

磁盘结果

执行下面命令,查看data目录下的文件分布情况。

du -h --max-depth=1 /data

执行下面命令,删除占用最大目录的过期文件。

find /data/log -mtime +10 -name "*.*" | xargs -t -i unlink {}

访问不存在的页面时跳转到指定页面的nginx配置

当用户访问一个不存在的页面时,让其跳转到指定页面。

利用404页面设置实现

产品提到这个需求,第一个想到的是nginx的404页面设置。

error_page 404  /404.html # 这里改成指定页面地址

验证效果:

访问http://xxx.com/a(不存在的地址),直接返回了指定页面的内容。
但是地址没有变化,不满足需求。

利用rewrite跳转实现

if (!-e $request_filename) {
    rewrite ^/(.*)$ /mobile_solution.html last;
}

验证效果:

访问http://xxx.com/a(不存在的地址),直接返回了指定页面的内容。
跟上面的方法类似,不满足需求。

问了下运维同事,说这里要用redirect。

if (!-e $request_filename) {
    rewrite ^/(.*)$ /mobile_solution.html redirect;
}

再次验证,搞定。