ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1179|回复: 0

[PHP]发送飞信类公开代码转换为vba

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-1-31 22:20 | 显示全部楼层 |阅读模式
[PHP]发送飞信类公开代码
002 class PHPFetion {  
003         protected $_mobile;
004         protected $_password;
005         protected $_cookie = '';
006         public function __construct($mobile, $password) {  
007                 if($mobile === '' || $password === '') {  
008                         return false;
009                 }  
010                 $this->_mobile = $mobile;
011                 $this->_password = $password;
012                 $this->_login();
013         }  
014         public function __destruct() {
015                 $this->_logout();
016         }  
017         /**  
018          * 登录  
019          * @return string  
020          */
021         protected function _login() {  
022                 $uri = '/im/login/inputpasssubmit1.action';
023                 $data = 'm='.$this->_mobile.'&pass='.urlencode($this->_password).'&loginstatus=4';  
024                 $result = $this->_postWithCookie($uri, $data);
025                 // 解析Cookie  
026                 preg_match_all('/.*?\r\nSet-Cookie: (.*?);.*?/si', $result, $matches);  
027                 if(isset($matches[1])) {  
028                         $this->_cookie = implode('; ', $matches[1]);  
029                 }  
030                 return $result;  
031         }  
032         /**  
033          * 向指定的手机号发送飞信
034          * @param string $mobile 手机号(接收者)  
035          * @param string $message 短信内容  
036          * @return string  
037          */
038         public function send($mobile, $message) {
039                 if($message === '') {  
040                         return '';  
041                 }  
042                 // 判断是给自己发还是给好友发  
043                 if($mobile == $this->_mobile) {
044                         return $this->_toMyself($message);
045                 } else {  
046                         $uid = $this->_getUid($mobile);  
047                         return $uid === '' ? '' : $this->_toUid($uid, $message);  
048                 }  
049         }  
050         /**  
051          * 获取飞信ID  
052          * @param string $mobile 手机号  
053          * @return string  
054          */
055         protected function _getUid($mobile) {  
056                 $uri = '/im/index/searchOtherInfoList.action';  
057                 $data = 'searchText='.$mobile;  
058                 $result = $this->_postWithCookie($uri, $data);  
059                 // 匹配  
060                 preg_match('/toinputMsg\.action\?touserid=(\d+)/si', $result, $matches);  
061                 return isset($matches[1]) ? $matches[1] : '';  
062         }  
063         /**  
064          * 向好友发送飞信  
065          * @param string $uid 飞信ID  
066          * @param string $message 短信内容  
067          * @return string  
068          */
069         protected function _toUid($uid, $message) {  
070                 $uri = '/im/chat/sendMsg.action?touserid='.$uid;  
071                 $data = 'msg='.urlencode($message);  
072                 $result = $this->_postWithCookie($uri, $data);  
073                 return $result;  
074         }  
075         /**  
076          * 给自己发飞信  
077          * @param string $message  
078          * @return string  
079          */
080         protected function _toMyself($message) {  
081                 $uri = '/im/user/sendMsgToMyselfs.action';  
082                 $result = $this->_postWithCookie($uri, 'msg='.urlencode($message));  
083                 return $result;  
084         }  
085         /**  
086          * 退出飞信  
087          * @return string  
088          */
089         protected function _logout() {  
090                 $uri = '/im/index/logoutsubmit.action';  
091                 $result = $this->_postWithCookie($uri, '');  
092                 return $result;  
093         }  
094         /**  
095          * 携带Cookie向f.10086.cn发送POST请求  
096          * @param string $uri  
097          * @param string $data  
098          */
099         protected function _postWithCookie($uri, $data) {  
100                 $fp = fsockopen('f.10086.cn', 80);  
101                 fputs($fp, "POST $uri HTTP/1.1\r\n");  
102                 fputs($fp, "Host: f.10086.cn\r\n");  
103                 fputs($fp, "Cookie: {$this->_cookie}\r\n");  
104                 fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n");  
105                 fputs($fp, "Content-Length: ".strlen($data)."\r\n");  
106                 fputs($fp, "Connection: close\r\n\r\n");  
107                 fputs($fp, $data);  
108                 $result = '';  
109                 while(!feof($fp)) {  
110                         $result .= fgets($fp);}  
111                 fclose($fp);  
112                 return $result;
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-28 04:32 , Processed in 0.033065 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表