Tag Archives: memcache

php memcache 客户端的一个隐秘问题

发现用 php 的 memcache 扩展的时候,没有区分键里的 “_” 和 “ ” 。想起来 memcache 协议里,键是不能用空白的,一定是 php 的客户端做了什么处理。去看了下源代码,果然……

#define MMC_PREPARE_KEY(key, key_len)
    php_strtr(key, key_len, “trn “, “____”, 4);

php 默默地就把这些个空白字符给替换掉了,而且这个替换操作没在手册里提到。用不会引起歧义的方式替换或者干脆抛一个错,不给用带空白的字符做键都会更好。就这么不做声地替换了很可能就会引起一些隐秘的错误。