分类 PHP 下的文章

TP6下使用chunk分块批量处理数据时,使用多字段分组时错误

数据量太大,使用TP6中chunk分块批量处理数据,而且需要使用多字段分组后批量处理。

问题分析:

使用 mysql 原生查询后,发现分组后的数据量有132298 rows。

使用chunk进行批量处理,发现一共处理了130398 rows。一共少处理了1900 行数据。

查看 chunk 源码,并打印关键逻辑

 

可以看出,chunk中的第二次开始查询下一批数据时,是根据 $lastId 来进行了排序后查找,chunk 这个方法,传入的分组条件,也就是 $column ,最好是一个确定唯一的条件。默认会使用主键。像这样如果多字段group by后,存在多个部分字段重复的情况,也就不建议使用 chunk 方法了。

解决办法:

 

CryptoJS中AES加密与PHP7的相互转换

js中加密代码如下:

php中相应代码如下:

特别注意 bin2hex 、hex2bin 这个函数,

hex2bin() 函数把十六进制值的字符串转换为 ASCII 字符。

bin2hex() 函数把 ASCII 字符的字符串转换为十六进制值。

用 Guzzlehttp 发送 gzip 压缩过的 json 数据,post 请求

 

An another FPM instance seems to already listen on /Users/***/.valet/valet.sock

Mac 环境下,使用 brew-php-switcher 将 PHP 版本由 5.6 切换为 7.0 后,重启 php-fpm 服务报错:

阅读剩余部分 –

Composer 命令失效,输出一堆问号?

这两天突然发现 Mac 下的 composer 失效了,所有的 composer 命令都输出一堆问号?如下:

Google 到头发都白了,也没查到任何相关的资料。

今天查看 composer 官网 http://docs.phpcomposer.com/00-intro.html#System-Requirements ,看到系统要求的那一项的时候,才意识到会不会是自己的 php 版本问题。

运行 Composer 需要 PHP 5.3.2+ 以上版本。一些敏感的 PHP 设置和编译标志也是必须的,但对于任何不兼容项安装程序都会抛出警告。

由于最近在学习商派的 ecstore ,PHP 版本要求过低,使用 homebrew 安装了 php5.3 版本,具体查看本地 php 环境后,是 5.3.29。

在尝试切换本地 php 环境为 5.6 之后,再次输入 composer 命令,发现完美运行了,那么说,版本其实也是支持的,那就是版本里面的 设置问题了,具体是哪些设置问题,无力深究,抓紧时间升级把,毕竟现在都是 php7 时代了。


Later equals never , just do now !

为什么纯 PHP 文件一般没有 ‘?>’ 结尾标识

答: 如果文件内容是纯 PHP 代码,最好在文件末尾删除 PHP 结束标记。这可以避免在 PHP 结束标记之后万一意外加入了空格或者换行符,会导致 PHP 开始输出这些空白,而脚本中此时并无输出的意图。

以上,来自 php 官方手册 http://php.net/manual/zh/language.basic-syntax.phptags.php ,没事多看看手册。


Later equals never , just do now !