排查 ES 查询问题:深入了解 json_encode() 函数

在使用 Elasticsearch 时,有时候会需要通过某个字段批量查询数据,比如通过用户 ID 批量获取用户信息,DSL 语句如下: { "query": { "bool": { "must": [ { "terms": { "user_id": ["123", "456"] } } ] } } } 在 PHP 中,通常会使用数组来构造 DSL 语句,然后调用 json_encode() 函数将数组转成 JSON 字符串。 ...

2022-06-02 · 3 分钟 · 1459 字

Yar 源码阅读笔记:消息编码模块

前言 在 上一篇文章 中,我们知道了 Yar 通信协议的格式及作用,还提到了在 Yar 客户端发送请求前和收到响应后,需要先对数据进行编码与解码才能继续进一步操作。 今天我们来了解一下,Yar 中的消息编码模块是怎样实现的。 ...

2021-12-23 · 8 分钟 · 3967 字

PHP 7.1 使用 json_encode 函数造成浮点类型数据出现精度问题

新项目用的 PHP 7.1.13 版本,在使用过程中发现 浮点类型 数据经过 json_encode 之后会出现精度问题。 举个例子: $data = [ 'stock' => '100', 'amount' => 10, 'price' => 0.1 ]; var_dump($data); echo json_encode($data); 输出结果: array(3) { ["stock"]=> string(3) "100" ["amount"]=> int(10) ["price"]=> float(0.1) } { "stock":"100", "amount":10, "price":0.10000000000000001 } 网上说可以通过调整 php.ini 中 serialize_precision (序列化精度) 的大小来解决这个问题。 ...

2018-07-10 · 1 分钟 · 416 字