PHP 发送飞信消息
来源:互联网 发布:mac有steam吗 编辑:程序博客网 时间:2024/05/15 13:11
实例结构:
实例下载:
http://url.cn/ORl1Gw
1. demo.php
<?php// 获取天气数据$w = json_decode( file_get_contents('http://www.weather.com.cn/data/cityinfo/101280601.html') ) ;$wi = $w->weatherinfo;$str = "【{$wi->city}】".date('Y-m-d').' 天气: ';$str.= "{$wi->weather}, {$wi->temp1}-{$wi->temp2}";// 开始发送飞信require_once('PHPFetion.class.php');header ( "Content-Type:text/html; charset=utf-8" );$fetion = new PHPFetion('18898927320', 'c*****00');$rs = $fetion->send('18898927320', $str);if(strpos($rs,'200')){ echo '发送成功';}else{ echo '发送失败';}
2. PHPFetion.class.php
<?php/** * PHP飞信发送类 * * @author quanhengzhuang <blog.quanhz.com> * @version 1.5.0 */class PHPFetion{ /** * 发送者手机号 * @var string */ protected $_mobile; /** * 飞信密码 * @var string */ protected $_password; /** * Cookie字符串 * @var string */ protected $_cookie = ''; /** * Uid缓存 * @var array */ protected $_uids = array(); /** * csrfToken * @var string */ protected $_csrfToten = null; /** * 构造函数 * @param string $mobile 手机号(登录者) * @param string $password 飞信密码 */ public function __construct($mobile, $password) { if ($mobile === '' || $password === '') { return; } $this->_mobile = $mobile; $this->_password = $password; $this->_login(); } /** * 析构函数 */ public function __destruct() { $this->_logout(); } /** * 登录 * @return string */ protected function _login() { $uri = '/huc/user/space/login.do?m=submit&fr=space'; $data = 'mobilenum='.$this->_mobile.'&password='.urlencode($this->_password); $result = $this->_postWithCookie($uri, $data); //解析Cookie preg_match_all('/.*?\r\nSet-Cookie: (.*?);.*?/si', $result, $matches); if (isset($matches[1])) { $this->_cookie = implode('; ', $matches[1]); } $result = $this->_postWithCookie('/im/login/cklogin.action', ''); return $result; } /** * 向指定的手机号发送飞信 * @param string $mobile 手机号(接收者) * @param string $message 短信内容 * @return string */ public function send($mobile, $message) { if ($message === '') { return ''; } //判断是给自己发还是给好友发 if ($mobile == $this->_mobile) { return $this->_toMyself($message); } else { $uid = $this->_getUid($mobile); return $uid === '' ? '' : $this->_toUid($uid, $message); } } /** * 获取飞信ID * @param string $mobile 手机号 * @return string */ protected function _getUid($mobile) { if (empty($this->_uids[$mobile])) { $uri = '/im/index/searchOtherInfoList.action'; $data = 'searchText='.$mobile; $result = $this->_postWithCookie($uri, $data); //匹配 preg_match('/toinputMsg\.action\?touserid=(\d+)/si', $result, $matches); $this->_uids[$mobile] = isset($matches[1]) ? $matches[1] : ''; } return $this->_uids[$mobile]; } /** * 获取csrfToken,给好友发飞信时需要这个字段 * @param string $uid 飞信ID * @return string */ protected function _getCsrfToken($uid) { if ($this->_csrfToten === null) { $uri = '/im/chat/toinputMsg.action?touserid='.$uid; $result = $this->_postWithCookie($uri, ''); preg_match('/name="csrfToken".*?value="(.*?)"/', $result, $matches); $this->_csrfToten = isset($matches[1]) ? $matches[1] : ''; } return $this->_csrfToten; } /** * 向好友发送飞信 * @param string $uid 飞信ID * @param string $message 短信内容 * @return string */ protected function _toUid($uid, $message) { $uri = '/im/chat/sendMsg.action?touserid='.$uid; $csrfToken = $this->_getCsrfToken($uid); $data = 'msg='.urlencode($message).'&csrfToken='.$csrfToken; $result = $this->_postWithCookie($uri, $data); return $result; } /** * 给自己发飞信 * @param string $message * @return string */ protected function _toMyself($message) { $uri = '/im/user/sendMsgToMyselfs.action'; $result = $this->_postWithCookie($uri, 'msg='.urlencode($message)); return $result; } /** * 退出飞信 * @return string */ protected function _logout() { $uri = '/im/index/logoutsubmit.action'; $result = $this->_postWithCookie($uri, ''); return $result; } /** * 携带Cookie向f.10086.cn发送POST请求 * @param string $uri * @param string $data */ protected function _postWithCookie($uri, $data) { $fp = fsockopen('f.10086.cn', 80); fputs($fp, "POST $uri HTTP/1.1\r\n"); fputs($fp, "Host: f.10086.cn\r\n"); fputs($fp, "Cookie: {$this->_cookie}\r\n"); fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n"); fputs($fp, "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1\r\n"); fputs($fp, "Content-Length: ".strlen($data)."\r\n"); fputs($fp, "Connection: close\r\n\r\n"); fputs($fp, $data); $result = ''; while (!feof($fp)) { $result .= fgets($fp); } fclose($fp); return $result; }}
- PHP 发送飞信消息
- php发送微信客服消息
- php微信模板消息发送
- 飞信借口, php发送飞信
- php实现发送微信模板消息的方法
- php实现发送微信模板消息的方法
- 微信发送消息
- 微信实验六、微信PHP后台验证、接收和发送消息及源码下载
- 向微信发送消息
- 微信发送客服消息
- 微信发送模板消息
- 发送微信模板消息
- 微信模板消息发送
- 微信发送模板消息
- 微信发送文本消息
- 微信模板消息发送
- 微信定时发送消息
- 飞信2010分析 – 给离线好友发送消息
- 线性存储----链式栈的创建、压栈、出栈、清空、空栈判断
- opengl入门
- MINA框架使用总结
- 三流公司如何跟随大师脚步
- 【右键rar】做图片格式的RAR文件
- PHP 发送飞信消息
- java对象复制
- cadence allegro 16.5相关
- jpa级联操作详解1-级联保存(CascadeType.PERSIST)
- C语言位运算详解
- Servlet接口五种方法介绍
- 安卓开发20:动画之Animation 详细使用-主要通过java代码实现动画效果
- 小米2 不能连接调试的问题
- 下拉框select