Karp 的技术博客
协议
Webscocket pong 包 php 踩坑实例

故事背景是这样的. 我要接入某安的 webscocket推送服务, 但这个服务要求接到ping后10分钟内必须返回一个pong 包.
因为之前没用过php 的 ping-pong 包, 所以以为pong 就是 send 字符串 pong 就可以了, 某安的文档中也没有 pong包示例.

编程语言
PHP 还原科学计数法
/**
 * 还原科学计数法
 */
public function scToNum($num)
{
    $num = floatval($num);
    $parts = explode('E', $num);
    if (count($parts) != 2) {
        return $num;
    }
    $exp = abs(end($parts)) + 3;
    $decimal = number_format($num, $exp);
    $decimal = rtrim($decimal, '0');

    $toNumber = rtrim($decimal, '.');

    return implode('', explode(',', $toNumber));
}

数据库
PHP 使用 Redis 的 GEO 命令

Redis 提供了 GEO 数据类型和一组命令,用于存储和操作地理位置数据。通过 GEO 命令,您可以存储地理坐标、计算距离、查找附近的地点等。以下是如何在 PHP 中使用 Redis 的 GEO 命令的示例。

编程语言
PHP 实现跳表

跳表(Skip List)是一种用于有序元素集合的数据结构,支持快速的插入、删除和搜索操作。它通过多层链表来实现 O(log n) 的平均时间复杂度。

编程语言
PHP array_multisort — 对多个数组或多维数组进行排序

PHP array_multisort — 对多个数组或多维数组进行排序