PHP 还原科学计数法
发表于|更新于|编程语言
/** |
文章作者: Leon
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Leon!
相关推荐
2015-10-30
PHP 多进程开发中常用的PCNTL常用的函数
PHP进程控制函数库(PCNTL),使php能在类unix系统中实现跟c一样的创建子进程、使用exec函数执行程序、处理信号等功能。 PCNTL使用ticks来作为信号处理机制(signal handle callback mechanism),可以最小程度地降低处理异步事件时的负载。Tick 是一个在代码段中解释器每执行N条低级语句就会发生的事件,这个代码段需要通过declare来指定。php多进程开发中常用的PCNTL常用的函数列表如下: 1. pcntl_alarm ( int $seconds )设置一个$seconds秒后发送SIGALRM信号的计数器 2. pcntl_signal ( int $signo , callback $handler [, bool $restart_syscalls ] )为$signo设置一个处理该信号的回调函数。下面是一个隔5秒发送一个SIGALRM信号,并由signal_handler函数获取,然后打印一个“Caught SIGALRM”的例子: 3. pcntl_exec ( string $path [, array $a...
2019-11-06
PHP 使用 Redis 的 GEO 命令
Redis 提供了 GEO 数据类型和一组命令,用于存储和操作地理位置数据。通过 GEO 命令,您可以存储地理坐标、计算距离、查找附近的地点等。以下是如何在 PHP 中使用 Redis 的 GEO 命令的示例。 1. 安装 PHP Redis 扩展首先,确保您已经安装了 PHP 的 Redis 扩展。可以通过 Composer 安装: composer require predis/predis 或者,如果您使用的是 PHP 扩展,可以通过以下命令安装: sudo pecl install redis 2. 连接到 Redis在 PHP 中连接到 Redis 服务器: require 'vendor/autoload.php'; // 如果使用 Composer$redis = new Predis\Client(); // 或者使用 Redis 扩展: new Redis(); 3. 使用 GEO 命令3.1 添加地理位置使用 GEOADD 命令添加地理位置: // 添加地理位置$redis->geoadd('locations...

2023-12-26
[踩坑] Swoole 抛错 记录
近期遇到三个swoole 的抛错日志, 很头疼 有的有解释 有的并没有, 但总体也算是解决了问题. [2023-11-21 19:44:02<.978122> #9118.2] WARNING del (ERRNO 800): failed to delete events[430], it has already been removed[2023-11-21 22:17:28<.225417> *19693.61] WARNING Worker_discard_data (ERRNO 1007): [2] ignore data[1272 bytes] received from session#15689[2023-11-18 09:15:07 *22844.90] WARNING send_blocking(:206): send 40 bytes failed, Error: Resource temporarily unavailable[11] 问题如上 3种抛错, 数据都是swoole抛错日志, 需要注意的是 : 在Swoole 日...
2025-05-30
PHP 报错 “Error while sending STMT_PREPARE packet” 故障分析与排查经验
🧩 问题背景在某日凌晨,线上服务的 PHP 日志中频繁出现如下报错: \[01-May-2024 06:07:27 Asia/Shanghai] PHP Warning: Error while sending STMT\_PREPARE packet. PID=26439 该错误由 mysqli->prepare() 方法抛出,影响到了部分数据库相关的服务逻辑。 📌 初步分析方向根据历史经验和网上资料,造成该错误的可能性较多,主要包括: MySQL 连接超时 数据库连接数过多 max_allowed_packet 配置过小 wait_timeout 超时断开连接 网络波动 数据库崩溃或 mysqld 崩溃重启 PHP 连接实例未关闭或未重连 🧪 运维排查流程(DBA 配合)运维同学按以下顺序排查和调整配置: ✅ 检查并调整 MySQL 参数: max_allowed_packet增大至 64M,防止 SQL 包体积过大造成 STMT_PREPARE 失败。 wait_timeout 和 interactive_timeout从默认 28800 秒(8...
2023-12-26
PHP Warning: simplexml_load_string(): Entity: line 6: parser error : Input is not proper UTF-8, indicate encoding
[13-Dec-2023 14:48:48 Asia/Shanghai] PHP Warning: simplexml_load_string(): ^ in Library/Supervisor/Client.php on line 777[13-Dec-2023 14:48:50 Asia/Shanghai] PHP Warning: simplexml_load_string(): Entity: line 6: parser error : Input is not proper UTF-8, indicate encoding !Bytes: 0xAA 0xE5 0xA4 0x84 in Library/Supervisor/Client.php on line 777[13-Dec-2023 14:48:50 Asia/Shanghai] PHP Warning: simplexml_load_string(): <value><string> Library/Supervisor/Client.php ...
2016-07-18
PHP写时复制技术
PHP写时复制技术在本篇博客中,我们将探讨PHP中的写时复制(Copy-on-Write)技术,它是一种内存管理技术,用于提高性能和减少内存开销。 什么是写时复制?写时复制是一种延迟复制的策略,在内存管理中被广泛使用。它允许多个变量共享相同的内存块,直到其中一个变量尝试修改其值时,才会进行实际的复制操作。 具体而言,当一个变量尝试修改被共享的内存块时,系统会创建该内存块的副本,并将修改应用于副本,而不是原始的内存块。这样,原始内存块和其他变量仍然保持不变,只有修改的副本被修改。这种延迟复制的方式可以节省内存开销,特别是在存在大量共享数据的情况下。 PHP中的写时复制PHP在内部使用写时复制技术来管理变量的复制和修改过程。主要涉及以下两种情况: 1. 数组的写时复制在PHP中,当一个数组被赋值给另一个变量时,实际上并没有进行数组的复制。相反,两个变量将共享相同的内存块,直到其中一个变量尝试修改数组时,才会进行实际的复制操作。 考虑以下示例: $array1 = [1, 2, 3];$array2 = $array1; 在这个例子中,$array1和$array2共享相同的内存...
评论
公告
记录技术实践,分享学习与思考。



