![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP/Laravel6+/Redis/Swoole
文章平均质量分 60
PHP/TP5.1/laravel/MySQL/Redis/Swoole
userxxcc
周日
展开
-
PHP代理转发接口
原理:用PHP的GET和POSt请求,实现代理访问服务器内网接口。假设:外网链接:http://127.0.0.1/php-proxy/index.php/api.gen1/admin?id=2021&name=%E5%BC%A0%E4%B8%89内网地址:http://127.0.0.1:8000/api.gen1/admin?id=2021&name=%E5%BC%A0%E4%B8%89<?php/* * PHP接口代理转发: 以Go原创 2021-09-16 13:24:22 · 3163 阅读 · 0 评论 -
【MacOS12安装PHP8.0,2/2】MacOS安装Swoole、laravel开启swoole
MacOS12安装PHP7.4、composer、Nginx请参考:https://blog.csdn.net/weixin_41827162/article/details/1192133811. 下载swoole:官方下载swoole包列表:https://gitee.com/swoole/swoole/tags我下载的事最新版本:https://gitee.com/swoole/swoole/repository/archive/v4.7.02. 安装swoole:将zip包解压在原创 2021-07-30 15:49:38 · 1051 阅读 · 0 评论 -
【MacOS12安装PHP8.0,1/2】MacOS12安装PHP7.4、PHP8.0、composer、Nginx
MacOS12 Monterey已经不自带PHP了,所以手动安装PHP。这里我们用brew来安装所有用的到扩展,PHP版本荐PHP8.0 。1. 安装brew(国内源):顺升级brew,这里主要是确保国内brew源和全球同步:--------------------------------------------2-1:安装PHP8.0:(也可安装最新版PHP:brew install php)2-2:链路PHP8.0查看php版本 3. 全局安装composer:4. 安装n原创 2021-07-29 16:02:04 · 8422 阅读 · 11 评论 -
小程序客户端被反编译后的后端接口安全
1. 小程序客户端被反编译事件描述:今日与某同行A交流时,A说自己的小程序F被反编译,然后假F小程序正在白嫖自己的服务器资源。小程序客户端+服务器都在被白嫖,投诉官方仍不能及时解决。2. 接口安全:不管小程序用户登录不登录,都可以获取到用户的openid,可以用此条原则,用于验证是不是自己的小程序客户端在请求你的接口。具体办法如下:用户刚进来-->获取用户openid并生成所有接口的token(接口一次性生成openid和公用token)-->其他接口发生请求时,同时验证op原创 2021-01-04 14:45:29 · 958 阅读 · 0 评论 -
laravel提高查询实时数据速度
问题产生:1. 一张主表+四张关联副表;2. 主表有30w条数据,副表各有50至100000不等条信息;3. 查询条件分布五张表,且查询条件都是模糊查询;4. 查询结果每页20条,要求平均1s内获取到结果。查询要求:1. 快速显示数据;2. 编码简单(给甲方编码),服务器系统简单(甲方系统);解决问题:查询速度慢,主要是因为表多,参与模糊查询计算的行是所有行。即由于最终join到一起的数据行太多,导致查询缓慢。最终参与的数据行太多,这个是硬伤。所以,将每次查询的结果:原创 2020-12-05 17:01:39 · 1286 阅读 · 0 评论 -
Laravel读取Excel
-1. 下载依赖:https://github.com/PHPOffice/PHPExcel;2. 下载完成后,将PHPExcel文件夹放在laravel的vendor目录下;3. 在你需要使用的控制器引用:use PHPExcel_IOFactory;use PHPExcel;4. 例子:读取Excel:封装: // 读取excel // $excel_file是excel文件的绝对路径;$start_row是起始行,默认2;$end_row是截至行,默认.原创 2020-11-11 15:30:15 · 3854 阅读 · 0 评论 -
PHP定时任务,不依赖于框架种类,本次以在Laravel中使用为例
-PHP定时任务,不依赖于框架种类,意思是可以移植到ThinkPHP和Laravel中。同时可以方便在一个定时任务中分发多个子任务,这样就可以实现一个定时来运行多个计划任务,而不再次开一个php-fpm。1. 前言:已知Laravel里面有自带的定时任务调度计划——“app/Console/Kernel.php的schedule”。你可以参考此博文:https://blog.csdn.net/stand_forever/article/details/89429881来实现larave...原创 2020-06-06 16:27:51 · 377 阅读 · 0 评论 -
解决Collection Object ([:protected]=Array())报错
今天用laravel的DB取多个表的数据做统计运算,里面使用了多次DB查询并嵌套三个for循环、多个-》leftJoin()一次使用、-》select()多键,结果只能取到数据中的第一条数据,从第二条开始的数组格式数据都为:Illuminate\Support\Collection Object ( [items:protected] => Array ( ) )而且PHP、laravel都不会报错。很明显,数组:protected以后,数组运算的“键=>值”都会为空。为空也不..原创 2020-06-03 16:10:17 · 1510 阅读 · 0 评论 -
Laravel读、写、同步、切换多个数据库(DB方法)
-① 配置数据库参数:Laravel默认数据库是取.env和datebase.php中mysql填写的数据库。如果需要切换多个数据库,就需要填写新的数据库配置。新的数据库不需要.env文件依赖。文件config/datebase.php:'mysql' => [ // 默认,需要读取.env中数据库的配置,有env 'driver' => 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), 'p.原创 2020-05-29 10:21:49 · 1111 阅读 · 0 评论 -
Navicat往数据库导入数据报错跳过及部分表的数据不能完整导入的问题
-假设从A数据库导入数据到B数据库。-①问题产生的原因:1. A数据库和B数据库的编码格式不一样,例如A的数据表编码格式是【utf8_general_ci】,B的数据表编码格式是【utf8_unicode_ci】;2. A数据库表很有特殊字符、未转义字符,容易与mysql语句冲突;3. 数据本身很多很大,Navicat还开启了【每个运行中运行多重查询】:-②解决...原创 2020-03-20 16:26:39 · 3146 阅读 · 1 评论 -
PHP对称加密算法(变形Unicode)
-已有一个基于base64的变形加密算法https://blog.csdn.net/weixin_41827162/article/details/88744922 。但是应用过程中,需要避开接口关键词审查,服务器数据审查,就需要一个加密简单且不需要加密登记高的算法。Unicode加密与解密+数字字母对照表,实现基于Unicode的变形加密算法。对照表约难,加密等级越高。-...原创 2020-02-20 16:09:58 · 277 阅读 · 0 评论 -
【python3爬虫应用+PHP数据清洗】爬取研究生招生信息网的研究生专业信息
-由于需要抓取的信息比较棘手,没有使用基于cookie的虚拟环境想法,4联级分类才能得到最终信息详情页的内容,而信息详情页的内容包含了4联级的分类名称内容:类->目->学科->专业。于是乎手动20分钟把专业的目录页的片段源代码复制到html文件里面->用python3抓取所有专业目录->得到专业详情页的url->python3第一次清洗节点,得到基本信息-&...原创 2020-02-20 09:56:07 · 1158 阅读 · 1 评论 -
PHP和js判断网站的搜索引擎的来路
统计网站是输入网址来的还是用户通过搜索某个搜索引擎来的。PHP:$referer = $_SERVER['HTTP_REFERER'];js:let referrer = document.referrer;都会得到:"https://www.baidu.com/link?url=X5fvzAiLfA9dVRlzdxjswsIIZGvT3tx9vxmjntzDn_YdO...原创 2020-01-03 14:09:45 · 503 阅读 · 0 评论 -
laravel开启options请求,及fetch如何提交options方法
-#1 laravel直接在routes里面的match里面添加即可,如下:Route::match(['get', 'post', 'options'], '/get_app_token', 'App\UserLogin@get_app_token')-#2 如下定义修改一个基于ES语法的Fetch方法,将method定义为options,就构建了一个OPTIONS请求:...原创 2019-12-05 18:34:38 · 1073 阅读 · 0 评论 -
Laravel(在前后端分离时,存在跨域时)的api(只在post请求时)如何验证X-CSRF-TOKEN
参考1:https://segmentfault.com/q/1010000003038534《aravel 在做api接口的时候如何验证 X-CSRF-TOKEN》参考2:https://laravel-china.org/docs/laravel/5.4/csrf/1228#CSRF- 《Laravel 下的伪造跨站请求保护 CSRF》Laravel版本:55写api时...原创 2018-11-05 18:29:22 · 3509 阅读 · 0 评论 -
PHP 五种常见的设计模式:策略模式、单例模式、工厂模式、观察者模式、注册模式
# 策略模式策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。策略模式的三个角色:1.抽象策略角色2.具体策略角色3.环境角色(对抽象策略角色的引用)实现步骤:1.定义抽象角色类(定义好各个实现的共同抽象方法)...转载 2019-03-22 09:40:29 · 380 阅读 · 0 评论 -
PHP之interface
-<?php //继承性简化了对象,类的创建,增加了代码的可读性,但PHP只支持单继承,如果向实现多重继承,就要使用接口,php可用实现多个接口 。,接口类通过interface关键字来声明,并且类中只能包含为实现的方法和一些成员变量。 //注意 不要用public以外的关键字来修饰借口中的类成员,对方法,不写关键字也可以,这是有借口类自身的属性决定的。 //类...原创 2019-03-22 09:30:17 · 388 阅读 · 0 评论 -
ThinkPHP5.1开启swoole
# tp5.1根目录新建目录和文件server/http_server.php。让swoole做http服务,server/http_server.php写入如下:<?php$http = new swoole_http_server("0.0.0.0", 9501);$http->set( [ 'enable_static_handler' =&g...原创 2019-03-18 15:35:19 · 1849 阅读 · 0 评论 -
php队列算法
-队列两个关键点:1)存放队列数据(存内存还是redis);2)处理队列数据(入队、出队、满队、定时任务);-A 。以下简单的将队列索引存在内容里面,以完成队列数据取拿:class data { //数据 private $data; public function __construct($data){ $this->da...原创 2019-03-25 14:10:08 · 236 阅读 · 0 评论 -
php+nginx负载均衡搭建
-在nginx里面配置一个upstream,然后把相关的服务器ip都配置进去。然后采用轮询的方案,然后在nginx里面的配置项里,proxy-pass指向这个upstream,这样就能实现负载均衡。nginx的负载均衡有4种模式:1)、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。2)、weight指定轮询几率,weight...转载 2019-03-13 15:00:21 · 11291 阅读 · 1 评论 -
PHP简单对称加密算法,利用字母对照表加密解密
自己写的一个php对称加密算法,比较简单。解密思路(加密思路反着来):还原字母对照表——找出144位密钥字符串——得到新的字母对照表——猜对照表还原字符串 ——用base64解密——完成!// 破解可能性大概最低是A(10, 64/2)x64或者A(11, 40)*64种可能,最终加密效果主要可能性取决于字母对照表。使用:1. ...原创 2019-03-22 16:48:24 · 1365 阅读 · 0 评论 -
centos7为MySQL开启3306端口,解决navicat 10038报错,解决防火墙开放端口问题
1. 全过程如下:[root@localhost ~]# netstat -ntlp // 检查端口是否在用Active Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name ...原创 2019-08-08 17:01:33 · 2694 阅读 · 0 评论 -
php二维数组指定键的排序,指定键的去重,指定键求和
-// 二维,根据某个键的数值排序function order_key_array($array, $key, $order){ if (!$array){return [];} if (!$order){$order = 'desc';} // 选择排序法 $temp = 0; for($i = 0;$i < count($array) -...原创 2019-09-06 16:05:43 · 373 阅读 · 0 评论 -
PHP上传任意格式文件(form法、base64数据流法)
-1. form法:<html><head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> <title> 提交文件 </title></head><body>&l...原创 2019-09-13 22:37:48 · 779 阅读 · 0 评论 -
【laravel功能增强(基于laravel6.0)】为laravel编写一些常用的可复用的功能,方便新建laravel项目
方便新建laravel项目,做一些常用功能的集成(快捷、安全、可复用)。基于laravel6.0。-GIthub开源地址:https://github.com/fyonecon/laravel-fyadmin-laravel框架功能增强目前框架版本为laravel6.0.4php > 7.1.3,推荐最新PHP版本 Redis > 5 exec()命令行...原创 2019-09-19 15:59:13 · 546 阅读 · 0 评论 -
PHP composer镜像配置(laravel composer配置、Packagist 镜像使用方法)
论水土问题,还是ThinkPHP最舒适。TP6.0中推荐的composer速度更快的镜像安装:https://www.kancloud.cn/manual/thinkphp6_0/10374811. win/Mac用户更换镜像地址:composer config -g repo.packagist composer https://mirrors.aliyun.com/compose...原创 2019-09-25 16:54:42 · 601 阅读 · 0 评论 -
高性能SQL全文检索引擎sphinx和中文检索coreseek
Sphinx是一款基于SQL的高性能全文检索引擎,Sphinx的性能在众多全文检索引擎中也是数一数二的,利用Sphinx,可完成比数据库本身更专业的搜索功能,而且可以有很多针对性的性能优化。要求:MySQL>5.1;# 安装sphinx#下载最新稳定版wget http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz...转载 2019-03-13 11:40:46 · 190 阅读 · 0 评论 -
Centos7安装swoole的PHP扩展,laravel接入swoole服务,ab压测
#1 Centos7安装swoole扩展Swoole4支持完整的协程(协程是异步IO模型,又称微线程,纤程。英文名Coroutine。详细可参考:协程的解释,进程和线程、协程的区别。)编程模式,可以使用完全同步的代码实现异步程序。PHP代码无需额外增加任何关键词,底层自动进行协程调度,实现异步IO。Swoole4协程仅支持PHP7,无法在PHP5中使用除了异步IO的支持之外,Swo...原创 2019-03-18 11:46:17 · 1015 阅读 · 0 评论 -
TP5.1的extend配置
做的框架和语言多了,容易搞乱思维,记录下来。# 1vendor里面是放置composer来的,和Laravel里面的vendor一样;而extend里面放置自己公共php方法函数。在extend目录新建文件夹depend,然后再depend创建php文件common.php,并在common.php文件里面添加一个namespace,然后设置一个class,最后添加一个public和一...原创 2019-03-11 16:57:29 · 4149 阅读 · 0 评论 -
strclass报错:laravel或者TP5.1查询数据后操作数据和解析数据出现strclass报错
-laravel或者TP5.1在查询数据后的数据结构为object类型(json类型),而在解析数据时解析的事数组array类型,所以需要转换一下数据类型:$sql_res = json;$sql_json = json_decode(json_encode($sql_json))即可将查询的数据转换为数组array,然后就可以解析数据了。可以试试是否框架支持->sele...原创 2018-12-15 10:10:37 · 255 阅读 · 0 评论 -
MVVM设计模式理解
MVVM:Model-View-ViewModelModel:对应数据层的域模型,它主要做域模型的同步。通过 Ajax/fetch 等 API 完成客户端和服务端业务 Model 的同步。在层间关系里,它主要用于抽象出 ViewModel 中视图的 Model。个人理解:后端提供API,后端服务架构是 控制器+数据模型 或者 纯控制器。View:View是作为视图模板,用于定义结构、布局。...原创 2018-12-15 09:51:19 · 870 阅读 · 0 评论 -
centos7安装redis
官方教程:https://redis.io/download配置PHP框架下等redis可参考:我的博文《laravel配置redis。ThinkPHP5配置redis。》https://blog.csdn.net/weixin_41827162/article/details/84335918-1. 整个安装过程如下:1)下载程序并编译(如果不能下载请去官网看看版本更新到几了,或...原创 2018-11-23 11:34:19 · 246 阅读 · 0 评论 -
PHP多线程问题思考
文章引用:https://segmentfault.com/q/1010000005942449?_ea=960381-php自身不能够通过代码进行线程控制,但是依旧需要考虑并发问题,因为两者并没有联系。多线程只是同一时间执行多个线程任务,和并发没有直接关系。简单的nginx+php-fpm模式: 当客户端发送一个请求时,web server会通过一个php-fpm进程(这里和下...翻译 2018-11-19 16:29:06 · 596 阅读 · 0 评论 -
laravel配置redis。ThinkPHP5配置redis。
官方教程:https://laravel-china.org/docs/laravel/5.5/redis/1331centos7安装redis:https://blog.csdn.net/weixin_41827162/article/details/84379406Mac安装redis:https://blog.csdn.net/jason_m_ho/article/details/8...原创 2018-11-22 11:29:29 · 434 阅读 · 0 评论 -
Mac安装redis
# 命令准备,如果已经支持下面命令就可跳过:1. 安装brew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"安装过程需要下载大体积文件,请耐心等待。2. 安装wgetsudo brew install wget如果提示 roo...原创 2018-11-24 11:15:43 · 255 阅读 · 0 评论 -
Centos7+nginx上部署laravel(同时解决laravel访问新建路由出现404的问题、No input file specified的问题、URL模式问题)
LNMP一键安装https://lnmp.org/install.html来安装好centos下的环境,本文以此为服务器环境的例子。-------------------------------------------------------------laravel访问新建路由出现404问题、No input file specified问题这两个问题可能是因为用了一键lnmp,不知道实...原创 2018-11-23 16:49:34 · 3081 阅读 · 0 评论 -
Mac上部署PHP开发环境
1. apache 的www代码位置Library/WebServer/Documents将Documents文件夹权限777或者其子文件夹才能放正常放置部署代码,这里我直接把跟目录设置成777:cd Library/WebServerchomd -R 777Documents配置.htaccess文件,并放在Documents目录,.htaccess文件内容如下:...原创 2018-08-25 11:58:22 · 896 阅读 · 0 评论 -
理解laravel的“命名路由”
手册中如下解释:1. 写法:Route::get('user/profile', 'UserController@showProfile')->name('profile');2. 作用: 1). 生成 URL $url = route('profile'); 2). 生成重定向 return redirect()-&g...原创 2018-11-09 14:26:30 · 1552 阅读 · 0 评论 -
Laravel配置控制器内切换多个数据库(或任意切换多数据库)
1. 知识点: Laravel默认数据库是取.env和datebase.php中mysql填写的数据库。 如果需要切换多个数据库,就需要填写新的数据库配置。 新的数据库不需要.env文件依赖。 如果需要.env,则请在.env设置。2. 具体配置与说明:1). config/datebase.php中配置方法和效果如下:'mysql' =&g...原创 2018-11-06 10:50:21 · 4926 阅读 · 0 评论 -
Laravel设置与引用公共函数
-1. 在app目录下在新建文件夹和文件(如app/Common/Common.php),文件夹和文件名自己随便起。并在公共PHP文件中写一个测试函数方法:function test_common($test){ return time()."test-".$test;}2. 在根目录下配置conposer.json中的"autoload":{},添加如下(注意是...原创 2018-11-06 10:17:01 · 1427 阅读 · 0 评论