PHP爆出隐藏十几年的核弹级RCE(php2shell),无需认证、应用代码执行前就触发。本文从RINIT时序、session.upload_progress、悬空指针到堆伪造,拆解UAF如何一步步变成远程代码执行。
with 8 CommentsYac 3.0 发布, 进一步优化了单机 PHP 共享内存缓存的核心读写路径:引入 Inline 存储,让短 key 携带短字符串和 double 值时不必分配 values block;用 Versioned Snapshot 降低读路径协调成本;通过 Memory Epoch 在可证明数据稳定时跳过 CRC-32C,并保留必要的校验 fallback;同时统一内部 serializer,并新增 Yac::has() 等 API。基准测试中,Yac 3.0 相比 2.4.2 在 6B 到 8KB 的匹配负载中几何平均吞吐提升 42.3%,常见小值路径最高提升 95.4%。
with 0 CommentYac 2.4.0 来了。起因是博客缓存被空数组挤爆:WordPress 的搜索负缓存和 Akismet 的 cron 会写入大量没人读的空数组,持续吃 values 内存还引发 recycle 误伤。这个版本最大的改动是 embedded values——小标量直接编码进 slot 的指针字,不再写 values 区;另有 LZ4 替换 FastLZ(解压快 ~3.5x)、get() 支持 $default、dump() 支持分页与逐条 hits/atime 统计。混合负载读取提升 70%,我的博客 values 内存从 23.5M 降到 12.4M。
with 6 CommentsWechatian 是一款 Obsidian 插件,直接双向打通微信和Obsidian知识库,不需要第三方服务:微信发来的文字、图片、文章链接自动剪藏进Obsidian知识库;往obsidian wechatian发件箱写文件即可经腾讯 ilink 网关发出微信消息。无任何第三方中转,任何会写文件的程序都能发微信给你。简单配置就可以让AI Agent 干完活直接微信通知你,再也不用守着电脑等待。
with 7 Comments让 DeepSeek V4 Pro 给 yaconf 1.2.0 做 compact 存储:随机读快40%、内存省16%——但一次 git 操作弄丢了几百行核心代码。快很重要,稳更重要。
with 2 Comments唯一因实现困难而放弃维护的项目 Taint,被 Qwen3.8 复活:2亿 Token、406 元、约5小时,完成这个 XSS/注入检测扩展的 PHP8 适配。
with 6 CommentsPHP8 alpha2发布了,最近引入了一个新的关键字:match, 这个关键字的作用跟switch有点类似。
这个我觉得还是有点意思,match这个词也挺好看,那么它是干啥的呢?
with 73 CommentsPHP的类名,函数,方法名是不区分大小写的,也就是说无论你怎么定义函数名,实际上在引擎层面查找的时候都是会统一转换成小写形式来做的。 也就是说strtolower的应用是非常普遍的。
当然,PHP也做了很多的设计来避免对字符串做过多的字符串小写操作,比如如果我们在PHP代码中写下:
CamelFunc();
这样的函数调用的时候, PHP会在编译时刻就把CamelFunc全部小写,然后存储在原始字面量之后(PHP-5.4 literals)。
with 9 Comments


PHP 8新特性之Attributes(注解)
PHP8的Alpha版本,过几天就要发布了,其中包含了不少的新特性,今天呢,我想谈谈Attributes,为啥呢, 是昨天我看到很多群在转发一个文章,叫做《理解PHP8中的Attributes》,说实在的,这篇文章应该是直接从英文翻译过来的,写的晦涩难懂,很多同学看完以后表示,看的一头雾水,不知道在说啥。
于是我想,就用一篇文章来简单说说这是个啥。