推荐文章
热门文章
公告展示
最新发布
-
现代化个人博客系统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"]; 不要更改,也不要删除,这是部分接口需要用到的! 获取源码 隐藏内容,请前往内页查看详情
-
什么样的网站内容是优质内容? 前言 网站搭建好之后,接下来就是不断更新网站内容。建设网站是网站的身体,网站的内容是网站的灵魂。一个网站的内容直接决定了网站的成败。 收集一百篇一模一样的文章,搜索引擎不喜欢,用户也不喜欢。这样的网站毫无意义。 那么什么样的文章才是质量高的好文章呢?有什么标准吗?搜索引擎也不会给出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 源码下载 隐藏内容,请前往内页查看详情