易截截图软件、单文件、免安装、纯绿色、仅160KB

Memcached中Perl序列化存储的对象PHP无法读取的解决

Perl Memcached的客户端序列化对象采用的是Storable模块的nfreeze方法,而这个方法又调用了c扩展的do_store方法;反序列化使用的是Storable模块的thaw方法,而这个方法又是调用的c扩展的do_retrieve方法。
而在PHP中,进行的却是serialize和unserialize操作。造成了无法正常读取的结果。
Perl存储一个('a', 'c')数组的引用,
命令行获取的结果如下:
用二进制编辑器查看存储的结果如下:
在PHP中memcache客户端gzuncompress和unserialize函数处理前可以得到存储的数据,打印出来如下图所示:
和上面二进制编辑器查看的结果是一致的。
memcached的官方文档:http://code.google.com/p/memcached/wiki/FAQ
里也提到
由此可以看到,在不同语言的客户端访问memcached,由于对象序列化算法不一致,造成无法直接的进行读取和解析。
比较好的办法是通过通用的格式例如JSON、YAML进行存储和读取,或者调用服务,或者采用Thrift、Gearman这样的跨语言平台来解决。
但是对于已有的数据,有没有可以直接访问的办法呢?
(未完待续)


相关文档:

40个迹象表明你还是php菜鸟


你是PHP菜鸟,如果你:
1. 不会利用如phpDoc
这样的工具来恰当地注释你的代码
2. 对优秀的集成开发环境如Zend Studio
或Eclipse PDT
视而不见
3. 从未用过任何形式的版本控制系统,如Subclipse
4. 不采用某种编码与命名标准

,以及通用约定,不能在项目开发周期里贯彻落实
5. 不使用统一开发方式
6. 不转 ......

PHP的安装以及配置

安装以及配置
1.       安装Apache-2.2.4(Apache_Dir=D:\myspace\Apache-2.2.4)
2.       解压安装PHP-5.2.11(PHP_Dir=D:\myspace\PHP-5.2.11)
3.       找到PHP-5.2.11下的php.ini-dist,改名为php.ini
4.  &nb ......

php特殊字符过滤

1、过滤标签(HTML):strip_tags()
例如:
<?php
$text = '<?php ?><p>Test paragraph.</p><!-- Comment -
-> <a href=http://topic.csdn.net/u/20090311/09/"#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";
// 允许使用<p>和<a>
echo stri ......

php PDO 链接 mysql 最简单 实例

define("DB_SERVER","127.0.0.1");
define("DB_PORT",3306);
define("DB_CATALOG","uab");
define("DB_USERID","root");
define("DB_PASSWORD","");
$dsn="mysql:host=".DB_SERVER.";port=".DB_PORT.";dbname=".DB_CATALOG;
self::$__PDO=new PDO($dsn, DB_USERID, DB_PASSWORD);
//support long connection
self:: ......

php 程序运行时间 计算

/**
* 获得当前时间的毫秒数,用户检测页面的执行时间
*
* @author cjz
* @date Thu Apr 09 15:05:55 CST 2009
*
* @return float(毫秒数)
*/
function myGetMicrotime()
{
list($usec,$sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号