找到
281
篇与
易航
相关的结果
- 第 30 页
-
V免签全开源免签约码支付系统(支持:支付宝 微信 QQ) 程序介绍 V 免签是一套基于 Thinkphp5.1+mysql 的免签支付程序,主要包括以下功能: 收款可以马上到账,不进入第三方账户收款更安全。 提供开发文档简单开发接入。 使用超简单 API 提供统一 API 实现集合回调。 免费使用、全开源代码,没有后门风险。 支持监控店员收款信息,使用支付宝微信小号/模拟器挂机,方便 IOS 用户。 免 ROOT,免 XP 框架,无需修改支付宝/微信客户端,防封更安全。 V 免签只针对个人开发者的调试和测试。请不要将其用于非法目的。商业使用请申请官方商家接口。 演示地址:https://pay.6la.cn/houtai 测试支付地址:https://pay.6la.cn/SDK/ 对接方式:易支付(程序自带易支付接口都可以对接) 里面有自带 SDK 文件,方便对接 与同行业其他接口服务商比较 支持功能V 免签原版二开版同行业其它系统服务期限永久使用永久使用收费几百元按年付费手续费0%手续费0%手续费按金额或交易笔数收费收款流程全部集成在您网站,无需经过我们网站中转全部集成在您网站,无需经过我们网站中转全部集成在您网站,无需经过我们网站中转资金安全资金直接进入您自己的账户资金直接进入您自己的账户有篡改收款账户风险APP 挂机✔✔✔电脑挂机✔✔✔免挂机✖✔需另外付费开通权限支付宝(免输入金额)✖✔✔微信支付✔✔✔QQ 钱包✖✔✔订单管理✔✔✔邮件通知✖✔✔补单功能✖✔✔订单搜索✖✔✔接口集成需自行开发兼容所有易支付系统接口需自行开发升级服务作者以停止更新永久免费升级软件几乎从不更新收款系统部署到您自己服务器,不受控制,不再担心平台跑路 程序截图 图片 程序前端 V免签图片 程序后端 V免签图片 V免签图片 V免签图片 监控端 使用说明 运行环境 Nginx1.1.5 以上 PHP5.6-7.3 Mysql5.6 以上 1、网站目录->运行目录 设置为 public 并保存 2、伪静态 设置为 thinkphp 并保存 3、打开网站目录 config/database.php ,设置好您的 mysql 账号密码 4、导入数据库文件(位于根目录)pay.sql 到您的数据库 5、至此网站搭建完毕,请访问 域名/houtai 后自行修改配置信息!默认后台账号 admin 和密码 123456 6、后台登录入口在 route/route.php,找到'login'修改即可 7、在后台里设置首页跳转地址,不设置跳转到默认地址 8、配置邮箱信息和支付宝商户号 9、使用免挂或者软件监控,使用免挂需要配置回调监控 10、建议把当前站点的网站防火墙关了,以防被拦截 安装教程 服务端 V 免签的运行环境为 PHP 版本>=5.6 1、宝塔面板中新建网站,设置: 网站目录->运行目录 设置为 public 并保存 伪静态 设置为 thinkphp 并保存 默认文档 设置将 index.html 放在第一行并保存 2、打开网站目录 config/database.php ,设置好您的 mysql 账号密码。 3、至此网站搭建完毕,请访问后自行修改配置信息!默认后台账号和密码均为 admin 监控端 本系统原理为监控收款后手机的通知栏推送消息,所以请保持微信/支付宝/V 免签监控端后台正常运行,且添加到内存清理白名单! v 免签的监控端并不适配所有手机,遇到手机无法正常使用的时候,请您更换手机或使用模拟器挂机! v 免签拥有双语言服务端,当您使用 php 版本服务端遇到问题的时候,请您尝试使用 java 版本服务端,php 版本服务端配置略复杂,需要配置伪静态规则,请知悉! 安装监控端后使用手动配置或扫码配置 监控端中点击开启服务跳转到辅助功能中开启服务 开启服务后返回 v 免签点击检测监听权限 如果显示监听权限正常,至此安装完毕,如果只收到通知栏推送的测试通知,则系统不兼容无法正常监听 如果显示监听权限正常,还是无法正常运行,那么请确定微信是否关注 “微信支付” 和 “微信收款助手” 这两个公众号 V 免签支持的通知有: 支付宝个人收款的推送通知 支付宝商家二维码的收款推送通知 支付宝店员通绑定的店员账号收款的推送通知 微信二维码收款推送通知 微信店员收款推送通知 下载程序 隐藏内容,请前往内页查看详情
-
Js自动播放HTML音乐(不受浏览器限制,无需先与浏览器交互,无需对浏览器进行修改) 众所周知,声音无法自动播放一直是 IOS/Android 上的惯例。桌面版 Safari 也在 2017 年第 11 版宣布禁止带声音的多媒体自动播放功能。随后 2018 年 4 月发布的 Chrome 66 正式关闭了声音的自动播放,这意味着音频自动播放和视频自动播放在桌面浏览器中也会失效。 JavaScript图片 而通过网上搜索来解决这个问题,大部分都会提到使用 javascript 原生的 play()来解决。但是,当你运行它的时候,你会发现你在 Chrome 浏览器下调用 play 后的错误: DOMException: play() failed because the user didn’t interact with the document first. 但是,如果你想的是将音频当作背景音乐来播放时,当页面加载时音频文件就会自动响起,这个时候,用户是没有与页面进行数据交互的,所以 play()会报错,很多人百度后便会找到两种主流的方法 One: 1. 进入到 chrome://flags/#autoplay-policy 2. 找到Autoplay policy选项,设置为Setting No user gesture is required 3. 重启:Relaunch Chrome Two: 1. 直接在video标签中属性muted属性,静音播放即可首先说一下方法一。当前的谷歌浏览器已经删除了自动播放策略选项,所以当你进入谷歌浏览器进行设置时,是找不到这个选项的。而且作为网页的背景音乐,你还要把效果展示给别人看。所以,改变浏览器选项还不够成熟。先说第二种方法。如果作为背景音乐播放,可以更改静音属性,达到自动播放的效果。自动播放是可以的,但是这里用户需要的是背景音乐,而且是音频文件,静音属性无法达到这个效果。然后有人问,既然谷歌 Chrome 的背景音乐不能自动播放,究竟怎么解决呢? 这里使用 Audio API 的 AudioContext 来自于我搭建的一个播放器。 //浏览器适用 contextClass = window.AudioContext = window.AudioContext || window.webkitAudioContext || window.mozAudioContext || window.msAudioContext; try { var context = new contextClass(); var source = null; var audioBuffer = null; function stopSound() { if (source) { source.stop(musics); //立即停止 } } function playSound() { source = context.createBufferSource(); source.buffer = audioBuffer; source.loop = true; source.connect(context.destination); source.start(0); //立即播放 } function initSound(arrayBuffer) { context.decodeAudioData(arrayBuffer, function(buffer) { //解码成功时的回调函数 audioBuffer = buffer; playSound(); }, function(e) { //解码出错时的回调函数 console.log('404', e); }); } function loadAudioFile(url) { var xhr = new XMLHttpRequest(); //通过XHR下载音频文件 xhr.open('GET', url, true); xhr.responseType = 'arraybuffer'; xhr.onload = function(e) { //下载完成 initSound(this.response); }; xhr.send(); } //这里用来存储背景音乐的路径 loadAudioFile('audio/music.flac'); } catch (e) { console.log('无法找到音乐!'); }构建播放器后,可以在进入页面时缓存,然后自动播放背景音乐,不考虑浏览器。 注意事项 这种方法只对浏览器有效,无法实现 APP 上自动播放音乐的效果。 API 的 AudioContext 可能用的不多,欢迎大牛和有个人见解的人站出来和我们讨论。
-
隐私政策 本博客尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本博客会按照本隐私权政策的规定使用和披露您的个人信息。但本博客 将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,本博客不会将这些信息对外披露或向第三方提供。本博客会 不时更新本隐私权政策。 您在同意本博客服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于本博客服务使用协议不可分割的一部分。 适用范围 在您注册本博客帐号时,您根据本博客要求提供的个人注册信息; 在您使用本博客网络服务,或访问本博客平台网页时,本博客自动接收并记录的您的浏览器和计算机上的信息,包括但不限于您的 IP 地址、浏览器的类型、使用的语言、访问日期和时间、软硬件特征信息及您需求的网页记录等数据; 本博客通过合法途径从商业伙伴处取得的用户个人数据。 信息使用 本博客不会向任何无关第三方提供、出售、出租、分享或交易您的个人信息,除非事先得到您的许可,或该第三方和本博客(含本博客关联公司)单独或共同为您提供服务,且在该服务结束后,其将被禁止访问包括其以前能够访问的所有这些资料。 本博客亦不允许任何第三方以任何手段收集、编辑、出售或者无偿传播您的个人信息。任何本博客用户如从事上述活动,一经发现,本博客有权立即终止与该用户的服务协议。 为服务用户的目的,本博客可能通过使用您的个人信息,向您提供您感兴趣的信息,包括但不限于向您发出产品和服务信息,或者与本博客合作伙伴共享信息以便他们向您发送有关其产品和服务的信息(后者需要您的事先同意)。 信息披露 在如下情况下,本博客将依据您的个人意愿或法律的规定全部或部分的披露您的个人信息: 经您事先同意,向第三方披露; 为提供您所要求的产品和服务,而必须和第三方分享您的个人信息; 根据法律的有关规定,或者行政或司法机构的要求,向第三方或者行政、司法机构披露; 如您出现违反中国有关法律、法规或者本博客服务协议或相关规则的情况,需要向第三方披露; 如您是适格的知识产权投诉人并已提起投诉,应被投诉人要求,向被投诉人披露,以便双方处理可能的权利纠纷; 在本博客平台上创建的某一交易中,如交易任何一方履行或部分履行了交易义务并提出信息披露请求的,本博客有权决定向该用户提供其交易对方的联络方式等必要信息,以促成交易的完成或纠纷的解决。 其它本博客根据法律、法规或者网站政策认为合适的披露。 Cookie 的使用 在您未拒绝接受 cookies 的情况下,本博客会在您的计算机上设定或取用 cookies,以便您能登录或使用依赖于 cookies 的本博客平台服务或功能。本博客使用 cookies 可为您提供更加周到的个性化服务,包括推广服务。 您有权选择接受或拒绝接受 cookies。您可以通过修改浏览器设置的方式拒绝接受 cookies。但如果您选择拒绝接受 cookies,则您可能无法登录或使用依赖于 cookies 的本博客网络服务或功能。 通过本博客所设 cookies 所取得的有关信息,将适用本政策。 信息安全 本博客帐号均有安全保护功能,请妥善保管您的用户名及密码信息。本博客将通过对用户密码进行加密等安全措施确保您的信息不丢失,不被滥用和变造。尽管有前述安全措施,但同时也请您注意在信息网络上不存在“完善的安全措施”。 在使用本博客网络服务进行网上交易时,您不可避免的要向交易对方或潜在的交易对方披露自己的个人信息,如联络方式或者邮政地址。请您妥善保护自己的个人信息,仅在必要的情形下向他人提供。如您发现自己的个人信息泄密,尤其是本博客用户名及密码发生泄露,请您立即联络本博客博主,以便本博客采取相应措施。
-
现代化个人博客系统ModStartBlog最新版源码-免费可商用 源码介绍 ModStartBlog 是一个基于 Laravel 的现代个人博客系统。市场模块拥有丰富的功能应用,支持后台一键快速安装,让开发者快速实现业务功能开发。 该系统是完全开源的,基于 Apache 2.0 开源协议,免费且不限制商业使用。 现代化个人博客系统ModStartBlog图片 功能架构图片 系统特点 全组件化开发,积木式建立系统,组合灵活。 简单、优雅、灵活、可扩展,可以实现大型复杂系统。 管理后台拥有RBAC权限管理,可多管理员多角色进行管理。 拥有丰富的表格数据、表单数据、数据详情功能。 系统内部有上传文件组件,无需繁琐的开发,支持云存储功能。 可在系统内置市场功能处找到丰富的组件,管理后台支持一键装载。 源码演示 前台演示地址 http://blog.demo.tecmz.com 后台演示地址 http://blog.demo.tecmz.com/admin 账号:demo 密码:123456(演示账号为只读权限) 源码截图 现代化个人博客系统ModStartBlog图片 现代化个人博客系统ModStartBlog图片 现代化个人博客系统ModStartBlog图片 现代化个人博客系统ModStartBlog图片 现代化个人博客系统ModStartBlog图片 现代化个人博客系统ModStartBlog图片 组件市场 丰富的组件市场,后台快速安装组件应用 组件市场图片 调试文档 http://modstart.com/doc 环境要求 Laravel 5.1版本 PHP 5.6 - PHP 7.0 MySQL >= 5.0 PHP Extension:Fileinfo Apache / Nginx Laravel 9.0版本 PHP 8.0 - PHP 8.1 MySQL >= 5.0 PHP Extension:Fileinfo Apache / Nginx 官方测试基于 PHP 的 5.6 / 7.0 / 8.0 / 8.1 版本,系统稳定性最好 安装系统 隐藏内容,请前往内页查看详情
-
2022年两款知识资源付费变现小程序 支持流量主 第一个小程序 星宿小程序 目前是最新版2.0 搭建星宿需要:备用域名 服务器 微信小程序账号 功能:文章展示 文章分类 资源链接下载 轮播图 直接下载附件功能 很多 很适合做资源类分享 建议看视频教程 视频教程 第二个小程序 主要功能: 会员系统,用户登录/注册购买记录 收藏记录 基本设置 后台控制导航颜色 字体颜色 标题等设置 流量主广告开关小程序广告显示隐藏 广告主审核过审核 资源管理 后台可以添加5种类型资源灵活设置 激励广告解锁资源 vip专享资源 免费资源积分购买资源 阅读全文资源 公告会员公告系统 VIP系统 用户可以开通VIP查看vip专属资源 签到签到互动二奖励 分类 资源分类 友情连接 跳转小程序 盈利能力:激励视频广告+插屏广告+视频广告+横幅广告+格子广告 =收益神器 基本两者差距不大 我建议用星宿 第二个的话建议用来发付费资源 没有任何广告,不懂评论里回复 程序截图 图片 图片 图片 图片 图片 图片 下载源码 隐藏内容,请前往内页查看详情
-
PHP使用Curl函数进行远程请求案例,爬虫,可保存账户登录状态 CURL简介: CURL可以使用URL的语法模拟浏览器来传输数据,因为它是模拟浏览器,因此它同样支持多种协议,FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP等协议都可以很好的支持,包括一些:HTTPS认证,HTTP POST方法,HTTP PUT方法,FTP上传,keyberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,下载文件断点续传,上传文件断点续传,http代理服务器管道,甚至它还支持IPv6,scoket5代理服务器,通过http代理服务器上传文件到FTP服务器等等。 本文主要介绍的是php远程请求CURL(爬虫、保存登录状态)的相关内容,下面话不多说了,来一起看看详细的介绍吧 php图片 GET案例: <?php /** * curl_get * @param $url * @param null $param * @param null $options * @return array */ function curl_get($url, $param = null, $options = null) { if (empty($options)) { $options = array( 'timeout' => 30, // 请求超时 'header' => array(), // 数据格式如array('Accept: */*','Accept-Encoding: gzip, deflate, br') 'cookie' => '', // cookie字符串,浏览器直接复制即可 'cookie_file' => '', // 文件路径,并要有读写权限的 'ssl' => 0, // 是否检查https协议 'referer' => null ); } else { empty($options['timeout']) && $options['timeout'] = 30; empty($options['ssl']) && $options['ssl'] = 0; } $result = array( 'code' => 0, 'msg' => 'success', 'body' => '' ); if (is_array($param)) { $param = http_build_query($param); } $url = strstr($url, '?') ? trim($url, '&') . '&' . $param : $url . '?' . $param; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); // 设置url !empty($options['header']) && curl_setopt($ch, CURLOPT_HTTPHEADER, $options['header']); // 设置请求头 if (!empty($options['cookie_file']) && file_exists($options['cookie_file'])) { curl_setopt($ch, CURLOPT_COOKIEFILE, $options['cookie_file']); curl_setopt($ch, CURLOPT_COOKIEJAR, $options['cookie_file']); } else if (!empty($options['cookie'])) { curl_setopt($ch, CURLOPT_COOKIE, $options['cookie']); } curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); //curl解压gzip页面内容 curl_setopt($ch, CURLOPT_HEADER, 1); // 获取请求头 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 输出转移,不输出页面 !$options['ssl'] && curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $options['ssl']); // 禁止服务器端的验证ssl !empty($options['referer']) && curl_setopt($ch, CURLOPT_REFERER, $options['referer']); //伪装请求来源,绕过防盗 curl_setopt($ch, CURLOPT_TIMEOUT, $options['timeout']); //执行并获取内容 $output = curl_exec($ch); $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $header = substr($output, 0, $header_size); $output = substr($output, $header_size); //对获取到的内容进行操作 if ($output === FALSE) { $result['code'] = 1; // 错误 $result['msg'] = "CURL Error:" . curl_error($ch); } $result['header'] = $header; $result['body'] = $output; //释放curl句柄 curl_close($ch); return $result; } ?>POST案例: <?php /** * curl_post * @param $url 请求地址 * @param null $param post参数 * @param array $options 配置参数 * @return array */ function curl_post($url, $param = null, $options = array()) { if (empty($options)) { $options = array( 'timeout' => 30, 'header' => array(), 'cookie' => '', 'cookie_file' => '', 'ssl' => 0, 'referer' => null ); } else { empty($options['timeout']) && $options['timeout'] = 30; empty($options['ssl']) && $options['ssl'] = 0; } $result = array( 'code' => 0, 'msg' => 'success', 'body' => '' ); if (is_array($param)) { $param = http_build_query($param); } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); // 设置url !empty($options['header']) && curl_setopt($ch, CURLOPT_HTTPHEADER, $options['header']); // 设置请求头 if (!empty($options['cookie_file']) && file_exists($options['cookie_file'])) { curl_setopt($ch, CURLOPT_COOKIEFILE, $options['cookie_file']); curl_setopt($ch, CURLOPT_COOKIEJAR, $options['cookie_file']); } else if (!empty($options['cookie'])) { curl_setopt($ch, CURLOPT_COOKIE, $options['cookie']); } curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); //curl解压gzip页面内容 curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $param); curl_setopt($ch, CURLOPT_HEADER, 1); // 获取请求头 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 输出转移,不输出页面 !$options['ssl'] && curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $options['ssl']); // 禁止服务器端的验证ssl !empty($options['referer']) && curl_setopt($ch, CURLOPT_REFERER, $options['referer']); //伪装请求来源,绕过防盗 curl_setopt($ch, CURLOPT_TIMEOUT, $options['timeout']); //执行并获取内容 $output = curl_exec($ch); $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $header = substr($output, 0, $header_size); $output = substr($output, $header_size); //对获取到的内容进行操作 if ($output === FALSE) { $result['code'] = 1; // 错误 $result['msg'] = "CURL Error:" . curl_error($ch); } $result['header'] = $header; $result['body'] = $output; //释放curl句柄 curl_close($ch); return $result; } ?>关于php远程请求CURL(爬虫,保存登录状态)的这篇文章到此结束。 其他请求类型行请参考这篇文章:PHP进行各种网络请求的方式和实现函数总结
-
PHP进行各种网络请求的方式和实现函数总结 首先,分析 php 发送网络请求的方法 对于 php 发送网络请求,我们最常用的请求是 curl。有时候我们也会使用 file_get_contents 函数来发送网络请求,但是 file_get_contents 只能完成一些间接的网络请求,稍微复杂一点的是无法完成的,比如文件上传、cookies、验证、表单提交等。php 中的 Curl 可以使用 url 的语法来模拟浏览器传输数据。因为是模拟浏览器,所以也支持多种协议。FTP,FTPS,http,httpS,Gopher,Telnet,Dict,File,LDAP 都可以很好的支持,包括一些:HTTPS 认证,HTTP POST 方法,Put 方法,FTP 上传,keyberos 认证,HTTP 上传,代理服务器,cookies,用户名/密码认证,下载文件断点续传,上传文件断点续传,HTTP 代理服务器管道,甚至它支持 IPv6,scoket5 代理服务器,通过 HTTP 代理服务器上传文件到 FTP 服务器等。,所以我们在开发中尽量使用 curl 做网络请求,不管是简单的还是复杂的。 图片 二、file_get_contents 发送网络请求示例 file_get_contents(path,include_path,context,start,max_length);参数描述path必需。规定要读取的文件。include_path可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 "1"。context可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 null,则忽略。start可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 新加的。max_length可选。规定读取的字节数。该参数是 PHP 5.1 新加的。一般用 file_get_contents 或者 fopen, file , readfile 等函数读取 url 的时候 会创建一个$http_response_header 变量保存 HTTP 响应的报头,使用 fopen 等函数打开的数据流信息可以用 stream_get_meta_data 获取 $html = file_get_contents('http://www.baidu.com'); print_r($http_response_header); $fp = fopen('http://www.baidu.com', 'r'); print_r(stream_get_meta_data($fp)); fclose($fp);摸拟 post 请求: $url = 'http://192.168.1.1/test.php'; $data = array( 'keyword' => 'test data', ); $content = http_build_query($data); $content_length = strlen($content); $options = array( 'http' => array( 'method' => 'POST', 'header' => "Content-type: application/x-www-form-urlencoded\r\n" . "Content-length: $content_length\r\n", 'content' => $content ) ); echo file_get_contents($url, false, stream_context_create($options));三、PHP 通过 curl 方法发送网络请求 curl 可以支持 https 认证、http post、ftp 上传、代理、cookies、简单口令认证等等功能,使用前需要先在你的 PHP 环境中安装和启用 curl 模块,这里有两种写法供大家参考: <?php function geturl($url){ $headerArray =array("Content-type:application/json;","Accept:application/json"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_HTTPHEADER,$headerArray); $output = curl_exec($ch); curl_close($ch); $output = json_decode($output,true); return $output; } function posturl($url,$data){ $data = json_encode($data); $headerArray =array("Content-type:application/json;charset='utf-8'","Accept:application/json"); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return json_decode($output,true); } function puturl($url,$data){ $data = json_encode($data); $ch = curl_init(); //初始化CURL句柄 curl_setopt($ch, CURLOPT_URL, $url); //设置请求的URL curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type:application/json')); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //设为TRUE把curl_exec()结果转化为字串,而不是直接输出 curl_setopt($ch, CURLOPT_CUSTOMREQUEST,"PUT"); //设置请求方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//设置提交的字符串 $output = curl_exec($ch); curl_close($ch); return json_decode($output,true); } function delurl($url,$data){ $data = json_encode($data); $ch = curl_init(); curl_setopt ($ch,CURLOPT_URL,$put_url); curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type:application/json')); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); $output = curl_exec($ch); curl_close($ch); $output = json_decode($output,true); } function patchurl($url,$data){ $data = json_encode($data); $ch = curl_init(); curl_setopt ($ch,CURLOPT_URL,$url); curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type:application/json')); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PATCH"); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); //20170611修改接口,用/id的方式传递,直接写在url中了 $output = curl_exec($ch); curl_close($ch); $output = json_decode($output); return $output; } ?>一个函数片时各种请求: function sendCurl($url, $data = null,$method='POST') { $method=strtoupper($method); $start_wdmcurl_time = microtime(true); $header = array(' application/x-www-form-urlencoded'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FAILONERROR, false); // https 请求 if (strlen($url) > 5 && strtolower(substr($url, 0, 5)) == "https") { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); } if($method=='GET'){ if($data && is_array($data) && count($data)>0 ){ $url.="?".http_build_query($data); } curl_setopt($ch, CURLOPT_URL, $url); }elseif($method=='POST'){ curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); if (is_array($data) && count($data)>0) { curl_setopt($ch, CURLOPT_POST, true); $isPostMultipart = false; foreach ($data as $k => $v) { if ('@' == substr($v, 0, 1)) { $isPostMultipart = true; break; } } unset($k, $v); if ($isPostMultipart) { curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } else { curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); } } }elseif(in_array($method,['PUT','DELETE','PATCH'])){ curl_setopt($ch, CURLOPT_CUSTOMREQUEST,$method); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_HTTPHEADER,$header); $reponse = curl_exec($ch); curl_close($ch); return $reponse; }四、使用 PHP Composer 的扩展库 guzzlehttp composer require guzzlehttp/guzzle$client = new \GuzzleHttp\Client(); $response = $client->request('GET', 'https://api.github.com/repos/guzzle/guzzle'); echo $response->getStatusCode(); // 200 echo $response->getHeaderLine('content-type'); // 'application/json; charset=utf8' echo $response->getBody(); // '{"id": 1420053, "name": "guzzle", ...}' // Send an asynchronous request. $request = new \GuzzleHttp\Psr7\Request('GET', 'http://httpbin.org'); $promise = $client->sendAsync($request)->then(function ($response) { echo 'I completed! ' . $response->getBody(); }); $promise->wait();平常开发中尽量使用方法三,自定义 curl 处理网络请求,或者 composer 的 guzzlehttp 扩展库,用起来也很方便。
-
-
随身助手271个可用api接口网站php程序源码(随身助手API) 程序介绍 随身助手API接口网站源码v2.6,本次更新了271个可用接口,已经去后门和加密。 api目录为api接口源码文件,tianyi目录为前台展示页面文件。 本次更新了271个可用接口,现在开源给大家使用,放心使用。 随身助手API.jpg图片 安装教程 文件夹[api→data→wzmusic→k.js]需要更改: 地址api.wuxixindong.top被替换为您的api地址。 用你的API名替换tianyi 文件夹[API →数据→wy.php→WZ音乐]需要修改如下: 源码内的QQ号换成您的QQ号 以上是需要更改的内容 目前需要改变的就是这些,没有大的改变,所以不麻烦。 PHP的环境为:7.0-8.0 注意事项①:先改源码后再上传程序 注意事项②:本程序的云端代码千万不要所有删除,否则最新版本,自动更新器用不了 注意事项④:tianyi.php这个文件有个$ym=$_SERVER["HTTP_HOST"]; 不要更改,也不要删除,这是部分接口需要用到的! 获取源码 隐藏内容,请前往内页查看详情