参考:
http://www.myhack58.com/Article/html/3/7/2012/36142_6.htm
http://blog.csdn.net/jasontome/article/details/7215468