推荐文章
热门文章
公告展示
最新发布
-
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"]; 不要更改,也不要删除,这是部分接口需要用到的! 获取源码 隐藏内容,请前往内页查看详情
-
什么样的网站内容是优质内容? 前言 网站搭建好之后,接下来就是不断更新网站内容。建设网站是网站的身体,网站的内容是网站的灵魂。一个网站的内容直接决定了网站的成败。 收集一百篇一模一样的文章,搜索引擎不喜欢,用户也不喜欢。这样的网站毫无意义。 那么什么样的文章才是质量高的好文章呢?有什么标准吗?搜索引擎也不会给出100%的标准,但是我们可以试试下面的方法,可以大大提高文章质量。 SEO图片 能否满足用户需求 发布的文章是用户需要的,能满足用户需求的吗?比如用户搜索一篇文章:如何发布一个高质量的网站,你的内容写的千篇一律,自吹自擂,毫无价值。谁来读? 只要能满足用户需求,即使是伪原创的文章也可以纳入排名。 和网站内容相关吗? 发布的内容要和网站的主题相关,这一点在搜索引擎算法中也有提及。IT网站发布烹饪内容,不仅用户不会看,搜索引擎还会扣分,不要乱发文章。 是否符合用户体验 站点内容的用户体验就是排版,排版要标准化。怎么能称之为标准化?你可以通过看别人出版社怎么排版来给书排版。 标题要清晰,主要内容要突出,段落要有明显的间距。简而言之,用户应该一目了然。
-
彩虹易支付最新免授权/修复排位版本! 某宝花巨资20买的知名彩虹易支付源码 功能多 😄 功能介绍 1、支持批量生成商户 2、支付查看订单信息 3、支持各种程序对接 4、支持实名认证功能 5、可以自定义网站信息 6、自带开发文档和对接官方和第三方支付的SDK 7、自带即时到账与企业付款功能 8、支持QQ、支付宝快捷登录功能(默认开启) 9、自动提现功能(本功能属于订单操作,需要人为转账后确认自动提现订单即可) 10、附带多套前台模板,后台直接切换即可! 11、增加正版条款页面(葫芦侠的都会跳转主页) 12、去除个人中心 昨日的支付统计数据(葫芦侠之前的排版不好看 索性删掉了[黑线]) 还有很多 自己摸索吧[滑稽] 演示站点 http://asezf.cn (仅供演示) 系统截图 彩虹易支付图片 彩虹易支付图片 彩虹易支付图片 彩虹易支付图片 彩虹易支付图片 彩虹易支付图片 彩虹易支付图片 彩虹易支付图片 安装教程 1.修改cnfig.php数据库信息 2.设置伪静态 文件里有规则(不然服务条款展示不了 支付不能正常进行) 3.上传文件 访问域名安装 后台 域名/admin 默认账号admin 密码123456 源码下载 隐藏内容,请前往内页查看详情
-
Java云豹短视频系统源码 简介 云豹短视频源码开源项目,精选短视频发布、浏览、点赞、评论等基础功能,含互动直播、短视频带货。 功能介绍 云豹短视频开源项目由云豹科技官方自主研发,提供开源短视频源码、搭建文档、疑难辅助说明,供大家参考、交流、使用 开源版程序主要围绕“短视频功能”展开,如您需要更多专业功能、优质服务,可购买商用版本。 商用版本支持:直播带货、连麦PK、短视频带货、广告、同城、付费上热门、短视频小店、会员、拍同款、三级分销、青少年模式、手绘礼物等功能 提供全部源码、技术支持、技术培训、协助对接三方等服务。 云豹短视频.jpg图片 官方网站 http://www.yunbaokj.com/video.html 源码下载 隐藏内容,请前往内页查看详情
-
你想要的PHP Goto解密脚本来咯 脚本简介 GOTO解密脚本,破解微擎模块必备的解密工具,玩微擎的都知道,基本上微擎大部分都是goto加密的,看到好的模块,想要去学习他的代码,加密是万万不行的,所以用这个脚本就能无限解密模块加密文件,你想怎么学习就怎么学习。 PHP7图片 因站长有phpgoto解密并且做一些二开,找了5-6小时后,在某站花168元在买的,亲测后两个字“完美”。 其它很多php源码会进行goto加密,比如很多微擎应用。对于已加密的应用很多人是不敢直接使用的,因为不知道里面有些什么内容。 今天,易航博客为您整理分享一套goto解密的源码 直接上传服务器就可以使用的。PHP7及以上。 前言:这套解密脚本是我从网上下载的,亲测可用! 脚本截图 phpgoto解密脚本图片 phpgoto解密脚本图片 phpgoto解密脚本图片 使用方法: 1、解压之后直接上传到服务器或者本地服务器环境 2、将需要解密的文件放在decodeFile文件夹中 3、访问index.php文件即可 隐藏内容,请前往内页查看详情
-
ThinkPHP狂雨小说CMS最新版 简介 狂雨小说内容管理系统(以下简称KYXSCMS)提供一个轻量级小说网站解决方案,基于ThinkPHP5.1+MySQL的技术开发。 KYXSCMS,灵活,方便,人性化设计简单易用是最大的特色,是快速架设小说类网站首选,只需5分钟即可建立一个海量小说的行业网站,批量采集目标网站数据或使用数据联盟,即可自动采集获取大量数据。内置标签模版,即使不懂代码的前端开发者也可以快速建立一个漂亮的小说网站。 程序截图 狂雨小说CMS图片 狂雨小说CMS图片 狂雨小说CMS图片 狂雨小说CMS图片 狂雨小说CMS图片 功能 {card-default label="KYXSCMS提供了基础小说功能" width=""} 网站采集功能,可采集任何小说网站 数据联盟,即时不会设置采集功能也可以获取大量小说数据 前台模板自适应(PC、手机、平板自动适应) 搜索联想功能 书架功能 评论功能 会员功能 最近阅读功能 顶踩功能 小说管理功能 自适应小说阅读器 模版标签功能 用户管理 模版编辑 在线升级 API接口 支持小说多条件筛选 模版市场 插件市场 文章频道功能 智能采集系统 后台智能添加更改广告 运行速度快、性能高(支持生成静态缓存、支持memcache缓存、文件缓存) 自定义导航菜单 首页轮播系统 友情链接管理系统 数据库备份还原系统 数据库管理系统 {/card-default} 环境介绍 KYXSCMS基于ThinkPHP5.1+MYSQL开发,可以在大部分常见的服务器上运行。 如windows服务器,IIS+PHP+MYSQL, Linux服务器,Apache/Nginx+PHP+MYSQL 强烈推荐使用Linux服务器,可以发挥更大性能优势 软件方面,PHP要求5.6版本以上,低于5.6版本无法运行。 硬件方面,一般配置的虚拟主机即可正常运行本系统,如果有服务器会更好。 安装步骤 1、将文件解压后上传至相应目录等 2、网站必须配置好伪静态,才能正常进行安装和使用(初次访问首页会自动进入安装页面)或手动输入: http://域名/install3、同意使用协议进入下一步检测目录权限 4、检测通过后,填写常规数据库配置项,填写正确即可安装成功,安装成功后会自动进入后台页面 http://域名/admin填写安装时输入的后台管理员和密码即可登录 程序下载 隐藏内容,请前往内页查看详情