PHP
assasinSteven
本人暂时没啥说的......
请鼓掌......
展开
-
Redis分页
<?phpclass RedisPage { protected $_redis; protected $_redis_ip ; protected $_redis_port ; protected $_redis_db ; protected $_hash_prefix; /** * RedisPage constructor. * 初始化redis配置 */ public function __cons.原创 2022-05-11 11:36:17 · 1310 阅读 · 0 评论 -
PHP+Redis实现分页
废话少说,上代码吧<?phpclass RedisPage { protected $_redis; protected $_redis_ip ; protected $_redis_port ; protected $_redis_db ; protected $_hash_prefix; /** * RedisPage constructor. * 初始化redis配置 */ public func原创 2022-04-15 12:59:09 · 1330 阅读 · 0 评论 -
PHP-FPM进程模型
本文将介绍以下内容: PHP-FPM进程管理方式介绍 PHP-FPM如何与Nginx等Web服务器进行通信 先说一下PHP-FPM的进程模型,PHP-FPM采用的是Master/Worker进程模型。当PHP-FPM启动时,会读取配置文件,然后创建一个Master进程和若干个Worker进程(具体是几个Worker进程是由php-fpm.conf中配置的个数决定)。Worker进程是由Master进程fork出来的。Master进程和Worker进程的作用: Mas..原创 2020-08-29 11:17:19 · 447 阅读 · 0 评论 -
php或python使用ftp,sftp实现上传文件至远程服务器
1. ftp方式,必须开放21端口 yum install vsftp -y 即可传到/home/xxxx目录$fp = fopen ($localfile, "r");// $arr_ip = gethostbyname(www.111cn.net);$arr_ip = '192.168.1.115';// echo $arr_ip;$ftp = "ftp://".$arr_ip.'/home/assasin/test/'.$localfile; $ch = curl_init();c.原创 2020-06-05 10:40:04 · 665 阅读 · 0 评论 -
Ajax异步请求PHP服务器,如何做到无阻塞响应
最近发现了一个ajax异步请求的问题,用$.post、$.get、$.ajax请求PHP服务器时,总是无法异步返回数据。经多次测试才发现:-- 不同浏览器,请求不同域名-不阻塞:无需实验-- 不同浏览器,请求同域名-不阻塞:session_id()返回不同-- 同一浏览器,请求不同域名-不阻塞:session_id返回不同-- 同一浏览器,请求同域名-阻塞:session_id()返回相同...原创 2020-01-17 16:49:47 · 452 阅读 · 0 评论 -
顶踩投票功能
双方观点对抗,各持自己的意见的时候,分输赢,这个时候就出现了投票功能来分上下。用户可以选择支持代表自己观点的一方进行投票,本文以红蓝双方投票为例,通过前后台交互,直观展示红蓝双方投票数和所占比例如以下图片所示功能实现我们需要在页面中展示红蓝双方的观点,以及对应的投票数和比例,以及用于投票交互的手型图片,本例以#red和#blue分别表示红蓝双方。.redhand和.bluehand用来做...原创 2020-01-17 16:48:13 · 305 阅读 · 0 评论 -
CGI、FastCGI和PHP-FPM有什么关系呢?
在搭建 LAMP/LNMP 服务器时,会经常遇到 PHP-FPM、FastCGI和CGI 这几个概念。如果对它们一知半解,很难搭建出高性能的服务器。接下来我们就以图形方式,解释这些概念之间的关系。基础在整个网站架构中,Web Server(如Apache)只是内容的分发者。举个栗子,如果客户端请求的是 index.html,那么Web Server会去文件系统中找到这个文件,发送给浏览器,这...原创 2020-01-17 16:45:46 · 188 阅读 · 0 评论 -
php的垃圾回收机制
在平时php-fpm的时候,可能很少人注意php的变量回收,但是到swoole常驻内存开发后,就不得不重视这个了,因为在常驻内存下,如果不了解变量回收机制,可能就会出现内存泄露的问题,本文将一步步带你了解php的垃圾回收机制,让你写出的代码不再内存泄漏写时复制首先,php的变量复制用的是写时复制方式,举个例子. $a='仙士可'.time(); $b=$...原创 2020-01-17 16:42:31 · 321 阅读 · 0 评论 -
编译安装最新PHP 7.4 alpha
编译安装wget https://downloads.php.net/~derick/php-7.4.0alpha1.tar.gz 解压 tar xvf php-7.4.0alpha1.tar.gz 进入目录 然后 ./buildconf 因为我要安装 PHP 到目录 /www/server/php/74,你可以改成其他目录(如 /usr/local/php/74),也可以用这个目录。...原创 2020-01-08 18:37:21 · 1280 阅读 · 0 评论 -
缓存的正确打开方式(二)
上一篇文章:缓存的正确打开方式(一)中介绍了读取缓存时的一些细节,有读就有写,本篇来聊聊,当我们需要更新缓存该怎么做?当我们通过一些方式:如后台管理系统更新了相关的数据信息,或者用户在一些操作的时候更新了一些数据信息,如果这些信息正好也在缓存里,那一般也需要在更新数据库的时候,也更新缓存.那更新的流程是什么呢?很多人可能觉的很简单,示例如下?public func...原创 2020-01-07 22:05:52 · 342 阅读 · 0 评论 -
缓存的正确打开方式(一)
大的架构设计,各种高大上的概念层出不穷,相信很多人也或多或少的了解过,但其实,我们真的要把一个系统做强壮,做好,打磨细节才是根本,有句老话:细节是魔鬼,所以会来一系列的文章,来介绍各种细节上的问题,也欢迎大家多多投稿,本系列的开篇就是讲缓存缓存,做为目前高并发系统的一个基石之一,已经是无处不在了,很多盆友认为如此成熟的技术,已经用的滚瓜烂熟了,没啥好说的吧但是,真的是这样么?至...原创 2020-01-07 22:05:44 · 294 阅读 · 0 评论 -
PHP+Swoole并发编程的魅力
PHP语言是一个短生命周期的Web编程语言,很多PHPer已经形成了fpm下编程的思维定势。实际上在Swoole出现之后,这种串行化编程的模式早已被打破。使用Swoole完全可以轻易实现更灵活的并发编程。场景介绍假设我们要做一个石头剪刀布的Web游戏,3个玩家同时提交竞猜后显示胜者。在传统串行化Web编程中,我们一般思路是这样: 设置form表单,用户提交竞猜后保存到MySQL...原创 2020-01-07 22:06:04 · 309 阅读 · 0 评论 -
如何才能让PHP应用性能维持在更高水平
默认情况下安装的PHP类似于在百货商店中购买的常规软件包,但它非常合适,但并不完美。调优的PHP就像是量身定制的装备。但是,应该注意的是,调优PHP只是提高PHP性能和效率的一种手段,它与不良的代码和无响应的API调用无关。php.ini文件PHP 解释器在php.ini文件中配置和调优,此文件的位置在不同的操作系统中是不同的,并且常规命令行对应php.ini和 PHP-FPM 对...原创 2020-01-07 22:06:12 · 134 阅读 · 0 评论 -
python 文本处理
# -*- coding: utf-8 -*-#-----------------------------------------------------------------------------------------------------------------------__Author__ = 'assasin'__DateTime__ = '2020/1/4 20:44'...原创 2020-01-06 14:23:18 · 128 阅读 · 0 评论 -
面试官Redis这些必问
分布式缓存缓存好处:高性能 + 高并发高性能(常用)数据库查询耗费了800ms,其他用户对同一个数据再次查询 ,假设该数据在10分钟以内没有变化过,并且 10 分钟之内有 1000 个用户 都查询了同一数据,10 分钟之内,那 1000 个用户,每个人查询这个数据都感觉很慢 800ms比如 :某个商品信息,在 一天之内都不会改变,但是这个商品每次查询一次都要耗费2s,...原创 2020-01-03 10:35:45 · 247 阅读 · 0 评论 -
2020 Redis常见面试题
介绍:Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、 Key-Value 数据库,并提供多种语言的 API的非关系型数据库。 传统数据库遵循 ACID 规则。而 Nosql(Not Only SQL ...原创 2020-01-03 10:36:12 · 990 阅读 · 0 评论 -
PHP中sqlite3的使用
SQLite是一种轻量级的关系型数据库,可以内嵌在我们的应用程序中一起发布出去,这样我们在部署应用的时候,就不需要额外数据库的支持了。在php中如果要使用sqlite,只需开启php_sqlite3.dll扩展即可,非常方便。下面是我曾经的一个项目中,自己编写的一个操作SQLite数据库的工具类。<?phpclass SQLiteDB extends SQLite3 {fu...原创 2020-01-01 20:06:40 · 1528 阅读 · 0 评论 -
PHP闭包之变量作用域
在项目中,难免会遇到闭包的形式,那么在闭包中,变量的作用域到底是怎么样的呢。下面有几个简单的例子。function test_1(){ $a = 'php'; $func = function ($b) use ($a){ // $a = 'java'; echo $b.'_'.$a; }; return $func;}$t...原创 2020-01-01 20:13:10 · 175 阅读 · 0 评论 -
PHP导出成PDF
准备工作首先查询了相关的类库,有FPDF,zendPDF,TcPDF等等。首先看了下先选择了FPDF,可以说除了中文字符以外没有什么问题,中文乱码而且看了下最新版本没有很好的解决方案,所以只能放弃。后来就专门找支持中文的发现了TcPDF,开始也是中文字体支持不是很好,但是发现了有人做了中文的语言包才使得TcPDF更加完美起来。简介TCPDF 是一个流行的用于生成 PDF 文档的 ...原创 2020-01-01 20:13:12 · 289 阅读 · 0 评论 -
PHP常见的设计模式
设计模式六大原则 开放封闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象. 依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 单一职责原则:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 接口隔离原则...原创 2020-01-01 20:13:25 · 100 阅读 · 0 评论 -
php运用无限级分类实现评论及回复功能
经常在各大论坛或新闻板块详情页面下边看到评论功能,当然不单单是直接发表评论内容那么简单,可以对别人的评论进行回复,别人又可以对你的回复再次评论或回复,如此反复,理论上可以说是没有休止,从技术角度分析很容易想到运用无限级分类技术存储数据,运用递归获取评论层级结构数据,运用ajax实现评论页面交互,这里用thinkphp框架做个简单的demo练练手,为了简化流程这里第三级评论开始停止回复,当然只要在这...原创 2020-01-01 20:13:34 · 656 阅读 · 0 评论 -
PHP实现页面静态化
随着网站的内容的增多和用户访问量的增多,无可避免的是网站加载会越来越慢,受限于带宽和服务器同一时间的请求次数的限制,我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化。一般情况下会从以下方面来做优化1、动态页面静态化2、优化数据库3、使用负载均衡4、使用缓存5、使用CDN加速现在很多网站在建设的时候都要进行静态化的处理,为什么网站要进行静态化处理呢?我们...原创 2020-01-01 20:13:42 · 348 阅读 · 0 评论 -
Laravel 底层是如何处理 HTTP 请求的?
总体流程Web 服务器对 HTTP 请求的处理流程大体上都是这样的:在某个端口监听请求,请求进入后运行程序,然后将程序运行结果以响应的形式发送出去。基于 Laravel 框架构建的 Web 应用处理 HTTP 请求的流程也是如此。所有 HTTP 请求都会被转发到单入口文件public/index.php,处理 HTTP 请求的核心代码如下(忽略 HTTP 请求处理之外的代码):$a...原创 2020-01-01 20:13:51 · 699 阅读 · 0 评论 -
Api接口设计需要考虑到哪些因素呢?
设计接口是一件容易的事,也是件困难的事。设计接口每个人都会,每个人都能设计,也由此产生了各种各样的理念的接口。工作这么多年,我也很有感悟。很多人会说,设计接口多么简单,只要命名好,然后联调通了,上线可以调用就行了。特别是非互联网行业的人,这里没有歧视的意思。因为互联网行业和传统行业太多不一致性决定了这种思想的产生。接口是项目里面的最小粒度的单元,接口设计需要注意点很多,需要的考虑方方面面...原创 2020-01-01 20:14:00 · 1372 阅读 · 0 评论 -
yield生成器助了PHP性能调优一臂之力
如果是做Python或者其他语言的小伙伴,对于生成器应该不陌生。但很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP 5.5.0才引入的功能,也可能是生成器作用不是很明显。但是,生成器功能的确非常有用。优点直接讲概念估计你听完还是一头雾水,所以我们先来说说优点,也许能勾起你的兴趣。那么生成器有哪些优点,如下: 生成器会对PHP应用的性能有非常大的影响 ...原创 2020-01-01 20:14:07 · 106 阅读 · 0 评论 -
traits的作用和使用
raits是在5.4中新增的一个用于实现代码重用的方法。php是一种单一继承的语言,我们无法像java一样在一个class中extends多个基类来实现代码重用,现在Traits能解决这一代码重用的问题,它能让开发者在多个不同的class中实现代码重用。Traits和class在语义的定义上都是为了减少代码的复杂性,避免多重继承的问题。Traits 和class相似,但是仅...原创 2020-01-02 09:58:53 · 1788 阅读 · 0 评论 -
PHP微信商户支付企业付款到零钱功能
微信支付企业付款到零钱功能应用广泛,比如微信红包奖励,业务结算等。通过企业向个人付款,付款资金将直接进入用户微信零钱。一 开通条件,就是首先要在微信平台设置好。以下微信文档里有的,我这里大概掠几项比较重要的。付款资金企业付款到零钱资金使用商户号余额资金。根据商户号的账户开通情况,实际出款账户有做区别:◆ 默认情况下,企业付款到零钱使用商户号基本户(或余...原创 2020-01-02 09:58:54 · 1162 阅读 · 0 评论 -
使用 Entrust 扩展包在 Laravel 5 中实现 RBAC 权限管理与安装配置
Entrust为我们在Laravel中实现基于角色的权限管理(RBAC)提供了简洁灵活的方式。1、安装想要在Laravel中使用Entrust,首先需要通过Composer来安装其依赖包:composer require zizaco/entrust 5.2.x-dev安装完成后需要在config/app.php中注册服务提供者到providers数组:Zizaco\Ent...原创 2020-01-02 09:59:13 · 309 阅读 · 0 评论 -
前后端分离 Ueditor + PHP 实现阿里云Oss上传
首先去百度下载Ueditor PHP(一般都是UTF-8版本)的当然首先要 composer这样滴:"require": { "aliyuncs/oss-sdk-php": "~2.0.0",},解压后结构如下:第一步: 创建OssInUe.php 结构如下 文件名称自定义这里以他为例:第二步: 上菜:<?php if (is_file...原创 2019-12-31 09:24:54 · 1018 阅读 · 0 评论 -
利用swoole多进程减少后端访问时间的方法
应用场景说明上一篇文章我们讲解了curl模拟多进程处理减少访问的时间,今天的文章给大家利用swoole多进程来处理。利用swoole的前提,是首先要配置好swoole扩展哦!不懂的可以看看这篇配置的文章 :貌似很多人都不会安装和配置swoole应用一:请求接口,减少时间假设我们需要CURL多个地址,例如3个,每个需要1秒,如果我们同步运行至少需要3秒完成,这对用户的体验是非常不...原创 2019-12-31 09:25:12 · 136 阅读 · 0 评论 -
PHP实现地址自动识别的功能实例
地址自动识别现在普遍,特别是用在快递填写地址,姓名,手机号码的时候,会把这些按照一定的规范填写后,点击自动识别后,会自动填写到各自的input。最近也简单的实现了这个功能,给后台添加用户的时候,自动识别地址。以下是效果图具体问题具体分析!代码实现基于laravel完成。一个laravel完整的功能得具备这些:路由route,Model, View, Controller, 我这...原创 2019-12-31 09:25:14 · 1403 阅读 · 0 评论 -
PHP与出库单打印预览,包含下载与打印功能
咱们的开发语言还是用框架:laravel5。应用场景出库单打印出三色单,这个很普遍,以下用PHP来实现出库单的打印预览,主要用到tcpdf插件,整合到laravel项目中。tcpdf插件可以到官网下载最新的版本。我这里用的是最新版本,这里提供下载插件链接:链接:https://pan.baidu.com/s/1Mn8ho_AxyJfWR7YUa0wzhQ提取码:9doa...原创 2019-12-31 09:26:12 · 1121 阅读 · 0 评论 -
swoole+PHP实现自动取消订单
一、业务场景:当客户下单在指定的时间内如果没有付款,那我们需要将这笔订单取消掉,比如好的处理方法是运用延时取消,这里我们用到了swoole,运用swoole的异步毫秒定时器不会影响到当前程序的运行,具体参考:https://wiki.swoole.com/wiki/page/319.html二、说明,order_status为1时代表客户下单确定,为2时代表客户已付款,为0时代表订单已取...原创 2019-12-31 09:26:19 · 726 阅读 · 0 评论 -
协程与Swoole的原理,相关应用以及适用场景等
什么是协程协程(Coroutine)也叫用户态线程,其通过协作而不是抢占来进行切换。相对于进程或者线程,协程所有的操作都可以在用户态完成,创建和切换的消耗更低。协程是进程的补充,或者是互补关系。 要理解是什么是“用户态的线程”,必然就要先理解什么是“内核态的线程”。 内核态的线程是由操作系统来进行调度的,在切换线程上下文时,要先保存上一个线程的上下文,然后执行下一个线程,当...原创 2019-12-31 09:26:28 · 221 阅读 · 0 评论 -
swoole锁的机制
锁,这个词我们并不陌生,主要的应用场景会发生在高并发下进行锁。今天的这篇文章咱们主要来讲解一下swoole的锁的机制,swoole_lock是如何实现的。swoole_lock类支持5种锁的类型: 文件锁 SWOOLE_FILELOCK 读写锁 SWOOLE_RWLOCK 信号量 SWOOLE_SEM 互斥锁 SWOOLE_MUTEX 自旋锁...原创 2019-12-31 09:26:34 · 863 阅读 · 0 评论 -
swoole_process
swoole 的进程之间有两种通信方式,一种是消息队列(queue),另一种是管道(pipe),对swoole_process 的研究在swoole中显得尤为重要。预备知识IO多路复用swoole 中的io多路复用表现为底层的 epoll进程模型,在C语言中表现为 epoll 函数。 epoll 模型下会持续监听自己名下的素有socket 描述符 fd 当触发了 ...原创 2019-12-31 09:26:48 · 734 阅读 · 0 评论 -
swoole的task模块可以应用在哪些地方呢?
【使用场景】 Swoole的task模块可以用来做一些异步的慢速任务、耗时场景。如webim中发广播,发送邮件等,把这些任务丢给task进程之后,worker进程可以继续处理新的数据请求,任务完成后会异步通知worker进程告诉它此任务已经完成。此外利用task还可以实现PHP的数据库连接池,异步队列等。【使用须知】必须设置Task进程数:task_worker_num...原创 2019-12-31 09:26:56 · 288 阅读 · 0 评论 -
如果取消一个(现金+满减+积分)订单的商品,你如何分摊优惠
优惠分摊,算法很多,这里是从shopnc挖出来,适合优惠条件过滤的算法,实质很简单,但是理解难度还是有一点应用场景:一个订单的商品,如果不参与某种活动的时候,那就需要分摊优惠,一般来说需要分摊的有购物金,积分,优惠券,满减等。而且是在整个订单上来使用优惠。多件N折,限制抢购,团购等都是在商品单价上面体现的,所以难点就在于如何去分摊优惠,比如一个订单用购物金,积分下单了。...原创 2019-12-31 09:26:57 · 1068 阅读 · 0 评论 -
PHP实现财务审核通过后返现金额到客户的源码分析
应用场景:有这么一个返现的系统,当前端客户发起提现的时候,后端就要通过审核这笔返现订单,才可以返现到客户的账号里。来看看下面的截图这里的业务场景就是经过两轮审核:销售审核,财务审核都通过后,后端就会付款一笔钱到客户,当然,这里财务审核会有很多种情况,不通过与通过,通过后直接付款又有很多种情况,详细可以查看微信付款到零钱的文档。下面就来看看具体你的代码实现微信支付配置1...原创 2020-01-02 09:59:19 · 303 阅读 · 1 评论 -
用PHP做了一个领取优惠券的活动
业务需求优惠券活动,具体还是要根据自己的需求。以下是最近实现的优惠券活动,主要的业务需求:根据后端设置优惠券模板,用户类型设置,优惠券活动的开始与结束时间,最后生成不同的优惠券活动链接。代码环境:源码主要laravel5.8,一整个活动要贴的代码很多,下面主要贴核心代码,仅供参考。主要还是要根据自己的业务需求来实现功能吧。以下是后端截图,做成模块化前端需要做的设置与限...原创 2020-01-02 09:59:19 · 1124 阅读 · 0 评论