热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

phpcurl返回cookie_分享新浪图床上传接口PHP源码

php中文网最新课程每日17点准时技术干货分享部署源码之后自行修改账号密码为自己的新浪账号
9557ace90302d6b8fd121ff656c7d19b.png

php中文网最新课程

每日17点准时技术干货分享

6308a536b7c08e063423099784ea9414.png

a5c5db249352ad1293647d153870450c.gif

部署源码之后自行修改账号密码为自己的新浪账号

20*3600||$config['COOKIE']=='SUB;') { $COOKIE = login($sinauser,$sinapwd); if($COOKIE&&$COOKIE!='SUB;'){ COOKIESet($COOKIE,$time = time()); }else{ return error('203','获取COOKIE出现错误,请检查账号状态或者重新获取COOKIE'); }}if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {exit;}$type=$_GET['type'];if($type=='multipart'){ $multipart = true; $file = $_FILES["file"]["tmp_name"];}elseif(isset($_GET['img'])){ $multipart = false; $file = $_GET['img'];}else{ return error('404','请勿直接访问');}if (isset($file) && $file != "") { include 'sina_config.php'; $COOKIE = $config['COOKIE']; echo upload($file, $multipart,$COOKIE);}else{ return error('201','上传错误');} function COOKIESet($COOKIE,$time){ $newConfig = ' "'.$COOKIE.'", "time" => "'.$time.'", );'; @file_put_contents('sina_config.php', $newConfig);} function error($code,$msg){ $arr = array('code'=>$code,'msg'=>$msg); echo json_encode($arr);}/** * 新浪微博登录(无加密接口版本) * @param string $u 用户名 * @param string $p 密码 * @return string 返回最有用最精简的COOKIE */function login($u,$p){ $loginUrl = 'https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)&_=1403138799543'; $loginData['entry'] = 'sso'; $loginData['gateway'] = '1'; $loginData['from'] = 'null'; $loginData['savestate'] = '30'; $loginData['useticket'] = '0'; $loginData['pagerefer'] = ''; $loginData['vsnf'] = '1'; $loginData['su'] = base64_encode($u); $loginData['service'] = 'sso'; $loginData['sp'] = $p; $loginData['sr'] = '1920*1080'; $loginData['encoding'] = 'UTF-8'; $loginData['cdult'] = '3'; $loginData['domain'] = 'sina.com.cn'; $loginData['prelt'] = '0'; $loginData['returntype'] = 'TEXT'; return loginPost($loginUrl,$loginData); } /** * 发送微博登录请求 * @param string $url 接口地址 * @param array $data 数据 * @return json 算了,还是返回COOKIE吧//返回登录成功后的用户信息json */function loginPost($url,$data){ $tmp = ''; if(is_array($data)){ foreach($data as $key =>$value){ $tmp .= $key."=".$value."&"; } $post = trim($tmp,"&"); }else{ $post = $data; } $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_POSTFIELDS,$post); $return = curl_exec($ch); curl_close($ch); return 'SUB' . getSubstr($return,"Set-COOKIE: SUB",'; ') . ';';} /** * 取本文中间 */function getSubstr($str,$leftStr,$rightStr){ $left = strpos($str, $leftStr); //echo '左边:'.$left; $right = strpos($str, $rightStr,$left); //echo '
右边:&#39;.$right; if($left <&#61; 0 or $right <$left) return &#39;&#39;; return substr($str, $left &#43; strlen($leftStr), $right-$left-strlen($leftStr));} function upload($file, $multipart &#61; true,$COOKIE) { $url &#61; &#39;http://picupload.service.weibo.com/interface/pic_upload.php&#39;.&#39;?mime&#61;image%2Fjpeg&data&#61;base64&url&#61;0&markpos&#61;1&logo&#61;&nick&#61;0&marks&#61;1&app&#61;miniblog&#39;; if($multipart) { $url .&#61; &#39;&cb&#61;http://weibo.com/aj/static/upimgback.html?_wv&#61;5&callback&#61;STK_ijax_&#39;.time(); if (class_exists(&#39;CURLFile&#39;)) { // php 5.5 $post[&#39;pic1&#39;] &#61; new \CURLFile(realpath($file)); } else { $post[&#39;pic1&#39;] &#61; &#39;&#64;&#39;.realpath($file); } } else { $post[&#39;b64_data&#39;] &#61; base64_encode(file_get_contents($file)); } // Curl提交 $ch &#61; curl_init($url); curl_setopt_array($ch, array( CURLOPT_POST &#61;> true, CURLOPT_VERBOSE &#61;> true, CURLOPT_RETURNTRANSFER &#61;> true, CURLOPT_HTTPHEADER &#61;> array("COOKIE: $COOKIE"), CURLOPT_POSTFIELDS &#61;> $post, )); $output &#61; curl_exec($ch); curl_close($ch); // 正则表达式提取返回结果中的json数据 preg_match(&#39;/({.*)/i&#39;, $output, $match); if(!isset($match[1])) return error(&#39;201&#39;,&#39;上传错误&#39;); $a&#61;json_decode($match[1],true); $width &#61; $a[&#39;data&#39;][&#39;pics&#39;][&#39;pic_1&#39;][&#39;width&#39;]; $size &#61; $a[&#39;data&#39;][&#39;pics&#39;][&#39;pic_1&#39;][&#39;size&#39;]; $height &#61; $a[&#39;data&#39;][&#39;pics&#39;][&#39;pic_1&#39;][&#39;height&#39;]; $pid &#61; $a[&#39;data&#39;][&#39;pics&#39;][&#39;pic_1&#39;][&#39;pid&#39;]; if(!$pid){return error(&#39;201&#39;,&#39;上传错误&#39;);} $arr &#61; array(&#39;code&#39;&#61;>&#39;200&#39;,&#39;width&#39;&#61;>$width,"height"&#61;>$height,"size"&#61;>$size,"pid"&#61;>$pid,"url"&#61;>"http://ws3.sinaimg.cn/thumb150/".$pid.".jpg"); return json_encode($arr);}

5f4ed3458834e0af65080daa8c5f022b.png

-END-



推荐阅读
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 体积小巧的vsftpd与pureftpd Docker镜像在Unraid系统中的详细配置指南:支持TLS加密及IPv6协议
    本文详细介绍了如何在Unraid系统中配置体积小巧的vsftpd和Pure-FTPd Docker镜像,以支持TLS加密和IPv6协议。通过这些配置,用户可以实现安全、高效的文件传输服务,适用于各种网络环境。配置过程包括镜像的选择、环境变量的设置以及必要的安全措施,确保了系统的稳定性和数据的安全性。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • 如何使用ES6语法编写Webpack配置文件? ... [详细]
  • 本文详细探讨了 jQuery 中 `ajaxSubmit` 方法的使用技巧及其应用场景。首先,介绍了如何正确引入必要的脚本文件,如 `jquery.form.js` 和 `jquery-1.8.0.min.js`。接着,通过具体示例展示了如何利用 `ajaxSubmit` 方法实现表单的异步提交,包括数据的发送、接收和处理。此外,还讨论了该方法在不同场景下的应用,如文件上传、表单验证和动态更新页面内容等,提供了丰富的代码示例和最佳实践建议。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 基于Dubbo与Zipkin的微服务调用链路监控解决方案
    本文提出了一种基于Dubbo与Zipkin的微服务调用链路监控解决方案。通过抽象配置层,支持HTTP和Kafka两种数据上报方式,实现了灵活且高效的调用链路追踪。该方案不仅提升了系统的可维护性和扩展性,还为故障排查提供了强大的支持。 ... [详细]
  • 手指触控|Android电容屏幕驱动调试指南
    手指触控|Android电容屏幕驱动调试指南 ... [详细]
author-avatar
这个昵称能用嘛
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有