PHP 排序模式 SORT_NUMERIC / SORT_STRING / SORT_NATURAL 详解

PHP 的排序函数提供了如下几种排序模式:

  • SORT_REGULAR - 将项目按照通常方法比较(不修改类型)
  • SORT_NUMERIC - 按照数字大小比较
  • SORT_STRING - 按照字符串比较
  • SORT_LOCALE_STRING - 根据当前的本地化设置,按照字符串比较。它会使用 locale 信息,可以通过 setlocale() 修改此信息。
  • SORT_NATURAL - 以字符串的"自然排序",类似 natsort()
  • SORT_FLAG_CASE - 可以组合 (按位或 OR) SORT_STRING 或者 SORT_NATURAL 大小写不敏感的方式排序字符串。

...

分类至 PHP
0条评论

nginx 做 websocket 代理

首先,在 nginx.conf 的 http{ } 段添加:

map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

然后,在 server{ } 段添加:

location /wss/  {
    proxy_pass http://127.0.0.1:9501/;
    proxy_http_version 1.1;    
    proxy_connect_timeout 4s;
    proxy_read_timeout 60s;
    proxy_send_timeout 60s;
    proxy_set_header Upgrade $http_upgrade;    
    proxy_set_header Connection "Upgrade";    
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

 

分类至 杂项
0条评论

MYSQL中的int(11)到底代表什么意思?

对于int类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用的int(11)代表什么意思,很长时间以来我都以为这代表着限制int的长度为11位,直到有天看到篇文章才明白,11代表的并不是长度,而是字符的显示宽度,在字段类型为int时,无论你显示宽度设置为多少,int类型能存储的最大值和最小值永远都是固定的...

分类至 MySQL
0条评论

如何在图片中加入压缩文件

简单来说就是利用copy命令。
copy /b src.jpg + src.rar dest.jpg
其中,src.jpg与dest.jpg显示的图像是一样的,当你将dest.jpg的后缀修改为rar,dest.rar解压的内容与src.rar的内容一致。

原理:
图片格式,例如jpg,bmp都是文件头设置好文件的类型以及文件长度,所以其后面的冗余不会被读出。 rar格式很特别,它运行时是先寻找rar文件的起始位置(因此可以排除开头的冗余),然后读取其后的所有data作为文件体。 所以图片在前,rar在后,则他们可以独立的读取出来。

分类至 杂项
0条评论

composer命令介绍之install和update及其区别

composer 是 php 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。

然而,对于如何『安装他们』,新手可能并不清楚。网上的答案有的说 composer install,有的说composer update,而这两者似乎都能成功把依赖下载下来并安装好,那么他们究竟有何区别呢?

分类至 PHP
0条评论

命令行技巧:使用 find 和 xargs 查找和处理文件

find 是日常工具箱中功能强大、灵活的命令行程序之一。它如它名字所暗示的:查找符合你指定条件的文件和目录。借助 -exec-delete 之类的参数,你可以让它对找到的文件进行操作。

在命令行提示系列的这一期中,你将会看到 find 命令的介绍,并学习如何使用内置命令或使用 xargs 命令处理文件。

分类至 Linux
1条评论

linux增加虚拟内存

1. 建立虚拟内存

找一个较大的空间

df -h

建立swap文件,大小2G

dd if=/dev/zero of=swapfile bs=1024000 count=2000

2. 启用虚拟内存

将swap文件设置为swap分区文件

mkswap swapfile

激活swap,启用分区交换文件

swapon swapfile

注意:insecure permissions 0644, 0600 suggested.

chmod 600 swapfile

分类至 Linux
0条评论

移动端调试vConsole

平时web开发时,在手机上,如果是要看控制台信息,都需要alert弹窗,这样很不友好.还会阻拦进程。

通过vConsole.js 重写console方法,实现了类似于微信小程序的移动端调试效果。

具体使用方法也很简单

<script src="http://wechatfe.github.io/vconsole/lib/vconsole.min.js?v=3.2.0"></script>
<script>
    // init vConsole
    var vConsole = new VConsole();
    console.log('Hello world');
</script>

vConsole 项目地址:https://www.npmjs.com/package/vconsole 

分类至 杂项
0条评论

PHP 运算符“...”

PHP 5.6.x 以后的版本增加了“...”运算符,功能如下。

1. 使用 ... 运算符定义变长参数函数

现在可以不依赖 func_get_args(), 使用 ... 运算符 来实现 变长参数函数

<?php
function f($req, $opt = null, ...$params) {
    // $params 是一个包含了剩余参数的数组
    printf('$req: %d; $opt: %d; number of params: %d'."\n",
           $req, $opt, count($params));
}

f(1);
f(1, 2);
f(1, 2, 3);
f(1, 2, 3, 4);
f(1, 2, 3, 4, 5);
?>

以上例程会输出:

$req: 1; $opt: 0; number of params: 0
$req: 1; $opt: 2; number of params: 0
$req: 1; $opt: 2; number of params: 1
$req: 1; $opt: 2; number of params: 2
$req: 1; $opt: 2; number of params: 3

2. 使用 ... 运算符进行参数展开

在调用函数的时候,使用 ... 运算符, 将 数组 和 可遍历 对象展开为函数参数。 在其他编程语言,比如 Ruby中,这被称为连接运算符。

<?php
function add($a, $b, $c) {
    return $a + $b + $c;
}

$operators = [2, 3];
echo add(1, ...$operators);
?>

以上例程会输出:

6

3. PHP 7.4 打包内部数组

PHP 7.4.0 使用 ... 可以打包内部数组,跟 es6 的语法很像:

<?php
$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon'];
// ['banana', 'orange', 'apple', 'pear', 'watermelon'];
?>

 

分类至 PHP
0条评论