开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 10237|回复: 39
打印 上一主题 下一主题
收起左侧

[易语言软件开源] 新浪图床开源

[复制链接]
结帖率:95% (18/19)
跳转到指定楼层
楼主
发表于 2018-10-8 18:00:16 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式   甘肃省陇南市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
本帖最后由 是男人就扛得起 于 2018-10-8 18:08 编辑

用了精益模块,调用了api
还有内置的账号是自己微博账号,不要上传那种照片,谢谢合作!!!

e源码: sina.e (637.18 KB, 下载次数: 154)

api源码:
  1. /**
  2.      * 新浪微博登录
  3.      * [url=home.php?mod=space&uid=275307]@param[/url]  string $u 微博账户
  4.      * @param  string $p 密码
  5.      * [url=home.php?mod=space&uid=161696]@Return[/url] string    返回cookie
  6.      */
  7.     function weiboLogin($u,$p){
  8.         $loginUrl = 'https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_=1403138799543';
  9.         $loginData['entry'] = 'sso';
  10.         $loginData['gateway'] = '1';
  11.         $loginData['from'] = 'null';
  12.         $loginData['savestate'] = '30';
  13.         $loginData['useticket'] = '0';
  14.         $loginData['pagerefer'] = '';
  15.         $loginData['vsnf'] = '1';
  16.         $loginData['su'] = base64_encode($u);
  17.         $loginData['service'] = 'sso';
  18.         $loginData['sp'] = $p;
  19.         $loginData['sr'] = '1920*1080';
  20.         $loginData['encoding'] = 'UTF-8';
  21.         $loginData['cdult'] = '3';
  22.         $loginData['domain'] = 'sina.com.cn';
  23.         $loginData['prelt'] = '0';
  24.         $loginData['returntype'] = 'TEXT';
  25.         return loginPost($loginUrl,$loginData);
  26.     }
  27. /**
  28.      * 发送微博登录请求
  29.      * @param  string $url  接口地址
  30.      * @param  array  $data 数据
  31.      * @return json   返回cookie
  32.      */
  33.     function loginPost($url,$data){
  34.         $tmp = '';
  35.         if(is_array($data)){
  36.             foreach($data as $key =>$value){
  37.                 $tmp .= $key."=".$value."&";
  38.             }
  39.             $post = trim($tmp,"&");
  40.         }else{
  41.             $post = $data;
  42.         }
  43.         $ch = curl_init();
  44.         curl_setopt($ch,CURLOPT_URL,$url);
  45.         curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  46.         curl_setopt($ch,CURLOPT_HEADER,1);
  47.         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  48.         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  49.         curl_setopt($ch,CURLOPT_POST,1);
  50.         curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
  51.         $return = curl_exec($ch);
  52.         curl_close($ch);
  53.         $preg = "/SUB=.*?;/";
  54.         preg_match($preg,$return,$arr);
  55.         return $arr['0'];
  56.     }
  57.     /**
  58.      * 上传图片到微博图床
  59.      * @param $file 图片文件/图片url
  60.      * @param $multipart 上传方式,true采用本地上传,false采用url上传
  61.      * @return 返回的json数据
  62.      */
  63.     function weiboUpload($file,$cookie, $multipart = true) {
  64.                
  65.                 $url="http://picupload.service.weibo.com/interface/pic_upload.php?mime=image%2Fjpeg&data=base64&url=0&markpos=1&logo=&nick=0&marks=1&app=miniblog";
  66.                
  67.         if($multipart) {
  68.             $url .= '&cb=http://weibo.com/aj/static/upimgback.html?_wv=5&callback=STK_ijax_'.time();
  69.             if (class_exists('CURLFile')) {     // php 5.5
  70.                 $post['pic1'] = new \CURLFile(realpath($file));
  71.             } else {
  72.                 $post['pic1'] = '@'.realpath($file);
  73.             }
  74.         } else {
  75.             $post['b64_data'] = base64_encode(file_get_contents($file));

  76.         }
  77.         // Curl提交
  78.         $ch = curl_init($url);
  79.         curl_setopt_array($ch, array(
  80.             CURLOPT_POST => true,
  81.             CURLOPT_VERBOSE => true,
  82.             CURLOPT_RETURNTRANSFER => true,
  83.             CURLOPT_HTTPHEADER => array("Cookie:" . $cookie),
  84.             CURLOPT_POSTFIELDS => $post,
  85.         ));
  86.         $output = curl_exec($ch);
  87.         curl_close($ch);
  88.         preg_match('/({.*)/i', $output, $match);
  89.         if(!isset($match[1])) return '';
  90.         return $match[1];
  91.     }
  92.   /**
  93.      * 获取不同尺寸的图片链接
  94.      * @param string $pid 微博图床pid,或者微博图床链接(带后缀)。
  95.      * @param string $size 图片尺寸 0-7(数字越大尺寸越大)
  96.      * @param bool $https (true) 是否使用 https 协yi
  97.      * @return string 图片链接 当 $pid 既不是 pid 也不是合法的微博图床链接时返回空值
  98.      */  
  99.     function getImageUrl($pid, $size = 0, $https = true){  
  100.         $sizeArr = array('large', 'mw1024', 'mw690', 'bmiddle', 'small', 'thumb180', 'thumbnail', 'square');
  101.         $pid = trim($pid);  
  102.         $size = $sizeArr[$size];  
  103.         // 传递 pid
  104.         $data =array(
  105.         'large'=> geturl($pid,'large')
  106.         );                        
  107.       return json_encode($data);  
  108.     }
  109. /**
  110.      * 获取图片链接
  111.      * @param string $pid 微博图床pid,或者微博图床链接(带后缀)。
  112.      * @param string $size 图片尺寸 0-7(数字越大尺寸越大)
  113.      * @param bool $https (true) 是否使用 https 协yi
  114.      * @return string 图片链接 当 $pid 既不是 pid 也不是合法的微博图床链接时返回空值
  115.      */
  116. function getUrl($pid,$size){
  117.                         
  118.                            if (preg_match('/^[a-zA-Z0-9]{32}$/', $pid) === 1) {  
  119.             return ($https ? 'https' : 'http') . '://' . ($https ? 'ws' : 'ww')  
  120.                 . ((crc32($pid) & 3) + 1) . ".sinaimg.cn/" . $size  
  121.                 . "/$pid." . ($pid[21] === 'g' ? 'gif' : 'jpg');  
  122.         }  
  123.         // 传递 url  
  124.         $url = $pid;  
  125.         $imgUrl = preg_replace_callback('/^(https?:\/\/[a-z]{2}\d\.sinaimg\.cn\/)'.'(large|bmiddle|mw1024|mw690|small|square|thumb180|thumbnail)'.'(\/[a-z0-9]{32}\.(jpg|gif))$/i', function ($match) use ($size) {  
  126.                 return $match[1] . $size . $match[3];  
  127.             }, $url, -1, $count);  
  128.         if ($count === 0) {  
  129.             return '';  
  130.         }
  131.         return  $imgUrl;
  132.                         
  133.                         
  134.                 }
复制代码
函数封装好的,简单调用:
  1. //设置微博用户名和密码
  2. $u = '';
  3. $p = '';
  4. //准备本地图片文件
  5. $saveFile = '';//要上传的文件本地路径

  6. //生成cookie
  7. $cookie = weiboLogin($u,$p);

  8. //上传图片到微博图床
  9. $data = weiboUpload($saveFile,$cookie, $multipart = true) ;

  10. //打印上传结果
  11. var_dump($data);
复制代码

评分

参与人数 1精币 +1 收起 理由
kyo9766 + 1 新技能已get√

查看全部评分


结帖率:85% (17/20)
40
发表于 2020-4-12 19:26:44 | 只看该作者   江西省吉安市
gxfx~~~~~~~~~
回复 支持 反对

使用道具 举报

结帖率:56% (15/27)

签到天数: 5 天

39
发表于 2020-1-26 21:07:37 | 只看该作者   江西省抚州市
我先看看过期了没有
回复 支持 反对

使用道具 举报

结帖率:100% (6/6)

签到天数: 8 天

38
发表于 2019-5-6 15:34:49 | 只看该作者   广东省广州市
函数封装好的,简单调用:
回复 支持 反对

使用道具 举报

签到天数: 1 天

37
发表于 2019-3-2 22:43:02 | 只看该作者   浙江省金华市
        新技能已get√学习学习
回复 支持 反对

使用道具 举报

头像被屏蔽
结帖率:95% (69/73)
36
发表于 2018-11-1 16:55:49 | 只看该作者   河北省保定市
这不微博以后可以当图床用了
回复 支持 反对

使用道具 举报

35
发表于 2018-10-28 21:40:29 | 只看该作者   江苏省连云港市
感谢分享~~~~
回复 支持 反对

使用道具 举报

结帖率:76% (26/34)
34
发表于 2018-10-24 22:05:53 | 只看该作者   宁夏回族自治区吴忠市
看一下看一下看一下
回复 支持 反对

使用道具 举报

33
发表于 2018-10-16 17:40:26 | 只看该作者   河南省洛阳市
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
回复 支持 反对

使用道具 举报

结帖率:87% (34/39)

签到天数: 9 天

32
发表于 2018-10-15 03:43:49 | 只看该作者   江西省宜春市
学习学习学习学习学习学习学习学习学习学习学习学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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