在之前也写过一些关于apns的事情,不过都没有深究。都是抄抄改改,写写弄弄,近日 在与人讨论时,人说纯中文可以发76个汉字左右。当时我就想了,这不应该啊。apns总长度不能超过256字节,76个汉字。json_encode一下。一个汉字8个字节,早就超了不知道多少了。还要组成payload。。难道不超吗?
然后看了一下别人的函数,原来是用了一个自定义的json_encode。看了他的自定义json_encode之后,突然想起,风雪之隅在他的博客上提到过,5.4的json_encode加了一些参数(参考: 让Json更懂中文(JSON_UNESCAPED_UNICODE)),于是看了一下。json_encode($str,JSON_UNESCAPED_UNICODE)。计算下来的长度与那个自定义的json_encode一样了。
自此,记录下来。推送的时候也可以多推几个汉字了。(仅限php5.4,之前的版本还是网上找自定义的json_encode函数吧,关键字:中文自定义 php json_encode ,或者直接看:http://yige.org/p/458)
早期关于APNS的文章 :
看到这个标题,你是不是会觉得很无聊?事实上,我是想表达另外的意思。从php5.2开始,很多操作都是支持streamwrapper的功能的,所以当有一个需求:从网上下载一张图片,存到本地,并使用正确的后缀名,就需要用到getimagesize了。
PHP代码
- $data = file_get_contents($url);
- file_put_contents('xxx',$data);
- $imageinfo = getimagesize(xxx);
- $extension = func($imageinfo);
- rename('xxx','xxx.???');
以前的逻辑可以是这样。但现在可以简化一下
PHP代码
- $data = file_get_contents($url);
- $imageinfo = getimagesize('data:image/;base64,'.base64_encode($data));
- $extension = func($imageinfo);
- file_put_contents('xxx.'.$extension , $data);
偷了个懒,代码扔在github上了。
用法也很简单:
$fetion = new PHPFetion('用户名','密码'); $fetion->send('对方手机','信息'); 会自动识别自己还是对方。(非好友不能发哦)
也实现了$fetion->multiSend,但我偷了个懒,直接循环用send发送了。
事实上,可以在刚登录的时候,利用group先将好友列表拉回来,然后就方便了。但觉得这样就复杂了。何必呢。。一般在用飞信的时候,也很少会用到群发功能吧。所以,我还是循环的send。黑黑
代码地址:https://github.com/neatstudio/yiiextension
欢迎围观
对于使用yii框架来说,如果使用bootstrap框架的话,现在有一个比较方便的使用途径:yiibooster。
官网地址是:http://yii-booster.clevertech.biz/
当然,我们都知道bootstrap几乎是不支持IE 6的。所以这时候,为了兼容IE6,还得冒出个:BSIE(鄙视IE),官方地址为:https://github.com/ddouble/bsie
有了这两样东西,开发起来是不是快了很多,至少你不用太关心页面是怎么做的了。而且变形,还没有那么夸张。更为可贵的是,你在手机上也能够正常浏览。
比如:http://photo.pinjian.net。就支持了手机浏览,只是界面难看了点罢了