
php
文章平均质量分 57
少林码僧
资深技术专家,拥有 10 年大厂后端开发经验,长期深耕于企业级技术架构与应用开发领域。在过往的职业生涯中,专注于亿级用户规模的 Agent 平台业务支撑,从架构设计、性能优化到高并发处理,积累了丰富且宝贵的实战经验。
曾主导多个大型项目的后端开发工作,成功解决了一系列高难度技术难题,保障了 Agent 平台在海量用户请求下的稳定高效运行。对企业级 Agents 开发原理有着深刻理解,能够将复杂的技术知识深入浅出地讲解给学员。凭借其卓越的技术能力和项目管理经验,多次获得公司内部的技术创新奖项。
展开
-
记录一次 PHP-fpm 占 CPU 100% 修复
文章目录记录一次 PHP-fpm 占 CPU 100% 修复记录一次 PHP-fpm 占 CPU 100% 修复平台报警大量502,前台页面返回 502 错误,上服务器查询发现,有几个 php-fpm 占 cpu 100%, 重启 php-fpm 无效。解决方法:通过 top 查找占 cpu 100% 的进程 id, 通过 ll /proc/PID/fd,查看进程在那个文件操作,只发现在操作日志文件,但日志文件没有数据写入。再通过 strace -p pid 查跑满 cpu 的进程 id 发现,原创 2020-09-12 23:30:48 · 454 阅读 · 0 评论 -
php之socket入门教程
php 基于socket的基本通信1、前言Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。这种介绍度娘很多,希望了解更多的自行百度,往下看的朋友记得先开启socket扩展;原创 2017-08-23 22:52:44 · 2433 阅读 · 0 评论 -
PHP反射Reflection实例精讲
PHP5添加了一项新的功能:Reflection。这个功能使得phper可以reverse-engineer class, interface,function,method and extension。通过PHP代码,就可以得到某object的所有信息,并且可以和它交互。 反射是什么? 它是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。这原创 2017-08-23 22:44:32 · 488 阅读 · 0 评论 -
实用的php文件操作类
<?phpclass File { /** * 创建多级目录 * @param string $dir * @param int $mode * @return boolean */ public function create_dir($dir,$mode=0777) { return is_dir($dir原创 2017-08-23 22:29:51 · 5162 阅读 · 0 评论 -
php字符串函数大全
1、查找字符位置函数:strpos($str,search,[int])://查找search在$str中的第一次位置从int开始;strrpos($str,search,[int])://查找search在$str中的最后一次出现的位置从int开始2、提取子字符函数(双字节)submit($str,int start[,int length])://从$str中strat位置开原创 2017-08-23 22:22:08 · 2338 阅读 · 0 评论 -
php接口安全校验原理
php做APP接口时,如何保证接口的安全性?1、当用户登录APP时,使用https协议调用后台相关接口,服务器端根据用户名和密码时生成一个access_key,并将access_key保存在session中,将生成的access_key和session_id返回给APP端。2、APP端将接收到的access_key和session_id保存起来3、当APP端调用接口传输数据原创 2017-08-23 22:18:52 · 2082 阅读 · 0 评论 -
图解linx RAID的实现
Benchmark测试之前我们先来了解Benchmark。 直接下载:http://pear.php.net/package/Benchmark/download Benchmark工具类包共有三个文件,分别是Timer.php、Iterate.php和Profiler.php,三个工具类功能相同,只是侧重点不同,都是用于调试代码获取程序的执行时间。 1,Benchmark_Timer类原理与原创 2017-08-23 21:52:11 · 454 阅读 · 0 评论 -
laravel5.4开启sql调试
打开app\Providers\AppServiceProvider.PHP,在boot方法中添加如下内容public function boot(){ //sql调试 $sql_debug = config('database.sql_debug'); if ($sql_debug) { DB::listen(function ($sql) {原创 2017-07-05 09:09:51 · 2920 阅读 · 0 评论 -
php的运行模式
PHP运行模式有4钟:1)cgi 通用网关接口(Common Gateway Interface))2) fast-cgi 常驻 (long-live) 型的 CGI3) cli 命令行运行 (Command Line Interface)4)web模块模式 (apache等web服务器运行的模块模式)1. CGI(Common Gateway Interf转载 2017-06-03 23:47:41 · 1308 阅读 · 0 评论 -
php缓存汇总
1、全页面静态化缓存也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms;一种比较常用的实现方式是用输出缓存:Ob_start()******要运行的代码*******$content = Ob_get_contents();****将缓存内容写入html文件*****原创 2017-08-23 23:09:21 · 468 阅读 · 0 评论 -
如何将session存入redis或memcache
Session简介session,中文经常翻译为会话,其本来的含义是 指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。有时候我们可以看到这样的话“在 一个浏览器会话期间,...”,这里的会话一词用的就是其本义,是指从一个浏览器窗口打开到关闭这个期间①。最混乱的是“用户(客户端)在一次会话期间”这样一句话,它可能指用户的一系列原创 2017-08-23 23:11:14 · 1111 阅读 · 0 评论 -
php的生命周期
图解php的生命周期原创 2018-09-05 21:47:11 · 410 阅读 · 0 评论 -
mPDF7中文无法显示
修改配置文件vendor\mpdf\src\Config\ConfigVariables.php中的配置项’autoScriptToLang’ =&gt; true,原创 2018-06-01 18:32:22 · 3180 阅读 · 3 评论 -
Redis订单队列实例
//当队列存在任务->出队 llen=llen=llen = redis->lLen(redisKey);//删除Keyif(empty(redisKey);//删除Keyif(empty(redisKey); //删除Key if (empty(llen)) { redis−>del(redis−>del(redis->del(redisKey); } ...原创 2018-06-15 11:07:34 · 91 阅读 · 0 评论 -
laravel之session踩坑记
使用laravel框架,用原生的session存储,发现a方法中设置的session,b方法中死活获取不到,网上各种方法都试过了,但是本地wnmp环境是ok的,线上lnmp环境就是不行,后来发现是session的键使用的是纯数字就不行,带有字母才可以,很怪很坑爹....原创 2018-05-16 21:46:13 · 2798 阅读 · 0 评论 -
php实现双向链表,实现增删改查
<?phpclass MyList{ public function __construct($data = array()) { $this->data = $data; } function getLen() { return count($this->data); } fun...原创 2018-04-05 12:28:48 · 570 阅读 · 0 评论 -
laravel中用到的面向对象的高级特性
1.PHP文件的自动加载<?phpfunction __autoload($class_name){ $name = strtolower($class_name); $path = "../includes/{$name}.php"; if(file_exists($path)){ require_once($path); ...原创 2018-03-27 11:53:48 · 723 阅读 · 0 评论 -
php笔试面试题大全
这是一部史上最全的面试题库,根据本人多年面试经验汇总,面试多了,问来问去总逃不出这些问题.当然这是php的基础部分,我发现越是多年的phper,基础部分遗忘的就越多,经验越丰富,针对的问题不是零碎的语法点,而是对于实际问题的解决.对于实际问题的解决,每个公司的侧重点不一样,这里就不详谈.看完这些题,妈妈再也不用担心我的面试了冲击月薪18k(税后),你应该具备哪些技能?1.熟悉设原创 2017-06-04 12:18:59 · 10677 阅读 · 1 评论 -
定期进行日志整理的php函数
public static function logAutoClean($msg = "", $fileName = 'common',$path='returnlog',$expireDays=10,$timeFlag=1) { $fileName = str_replace('_','',$fileName); $time = date('Y-m-d H:i:s'原创 2017-10-26 18:33:20 · 637 阅读 · 0 评论 -
php连接 mysql的三种连接方式
PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 、PHP的mysqli扩展 、PHP数据对象(PDO) ,下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案。PHP的MySQL扩展是设计开发允许php应用与MySQL数据库交互的早期扩展。MySQL扩展提供了一个面向过程的接口,并且是针对MySQL4.1.3或者更早版本设计的。因此这个扩展虽然可以与MySQ...原创 2017-06-01 09:42:13 · 11214 阅读 · 0 评论 -
编译安装php
1.去php官网下载源码 http://www.php.net/downloads.php ,我下载使用的版本是(php-5.4.8.tar.gz)2.解压到/usr/src目录,执行命令:sudo tar -zxvf php-5.4.8.tar.gz -C /usr/src3.执行./configure --prefix=/usr/local/php --enable-fpm转载 2017-06-05 00:08:31 · 812 阅读 · 0 评论 -
基于PHP+redis的秒杀系统
PHP原生代码编写,没有基于框架,主要让用户了解秒杀原理。github:https://github.com/sanjiOP/seckillseckill 秒杀系统环境:1. php5.6 + phpredis扩展2. redis服务3. apache24. mysql:table 商品表(goods) + 订单表(order)实现功能:1. 基原创 2017-06-05 00:08:07 · 3496 阅读 · 3 评论 -
php类和对象总结
1. __construct: 内置构造函数,在对象被创建时自动调用。见如下代码:phpclass ConstructTest { private $arg1; private $arg2; public function __construct($arg1, $arg2) { $this->arg1 = $arg1;原创 2017-05-27 13:03:39 · 927 阅读 · 0 评论 -
php冒泡和选择排序
冒泡排序$arr=array('11','1','12','56','596','8','3');for ($i=0; $i <count($arr)-1 ; $i++) { for ($j=0; $j < count($arr)-1-$i; $j++) { $arr1=array(); if ($arr[$j]>$arr[$j+1]) { $arr1=$arr[$j];原创 2017-05-27 13:00:48 · 614 阅读 · 0 评论 -
php面向对象必知会
/** * 面向对象基础*声明:[修饰类的关键字]class 类名{* 成员(成员属性:变量;成员方法:函数) }*命名:类名.class.php,方便自动加载*变量和函数名驼峰式命名,类名首字母大写;*$对象引用=new 类名;*变量成员的调用不用$*构造方法就是对象创建完成后第一个调用的方法;*php4中和类名相同原创 2017-05-27 12:55:02 · 935 阅读 · 0 评论 -
php常用函数
一、写入文件1.打开资源(文件)fopen($filename,$mode)2.写文件fwrite($handle,$str)3.关闭文件fclose($handle)4.一步写入file_put_contents($filename,$str,$mode) FILE_APPEND LOCK_EX}二、读文件1.读文件fread($handle,字节数) 2.读原创 2017-05-27 12:49:17 · 455 阅读 · 0 评论 -
PHP中函数的运行机制与实现原理
前进的道路,李勇陪伴您。 只要勇哥在,编程充满爱。QQ:1366295050PHP中函数的运行机制与实现原理在任何语言中,函数都是最基本的组成单元。对于php的函数,它具有哪些特点?函数调用是怎么实现的?php函数的性能如何,有什么使用建议?本文将从原理出发进行分析结合实际的性能测试尝试对这些问题进行回答,在了解实现的同时更好的编写php程序。同时也会对一些常见的php转载 2017-05-27 12:43:41 · 676 阅读 · 0 评论 -
PHP高效率编程观点
软件工程需要符合:可读性,复用性,可维护性(包括扩展方便)。在提高性能的同时,不要忘了考虑可读性,复用性,可维护性。1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。 当然了,这个测试方法需要在十万级以上次执行,效果才明显。 其实静态方法和非静态方法的效率主要区别在内存:静态方法原创 2017-05-27 12:41:37 · 804 阅读 · 0 评论 -
PHP编译参数详解
[root@lnmp01 tools]# tar xf php-5.3.27.tar.gzß解压压缩包[root@lnmp01 tools]# cd php-5.3.27 ß进入php安装目录./configure ß编译参数–prefix=/application/php5.3.27 ß指定php的安装路径为/application/php5.3.27原创 2017-05-15 20:43:37 · 687 阅读 · 0 评论 -
php生成随机数,简单高效的方法
md5(md5(microtime(true)).uniqid(rand(), true));原创 2017-04-16 01:21:24 · 1691 阅读 · 0 评论 -
php设计模式之单例模式
单例模式也称单态,是23种设计模式中最简单的一种,从他的名字就可以知道他的核心思想,单例模式就是系统中只有一个这样的对象,对象只有一个,在Java或者C#中,单例模式一般有两种,分别是懒汉式、饿汉式,但是在PHP中常用的就是懒汉式,由于PHP是单线程的,懒汉式也不存在双重验证。 懒汉式具体代码:<?php /** * Created by PhpStorm. * User: LY原创 2017-06-04 19:11:56 · 524 阅读 · 0 评论 -
php设计模式之简单工厂
一般将面向对象设计模式分为三类:创建型、结构型、行为型三种。 创建型:创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来确定创建对象的方式,从而保证更大的性能、更好的架构优势。创建型模式主要有简单工厂模式(并不是23种设计模式之一)、工厂方法、抽象工厂模式、单例模式、生成器模式、原型模式。 结构型:用于帮助将多个对象组原创 2017-06-04 19:13:50 · 551 阅读 · 0 评论 -
redis安装以及php扩展
启动安装: http://elain.blog.51cto.com/3339379/705846redis下载: https://github.com/nicolasff/phpredis/downloads多台服务安装: http://www.vquickphp.com/?a=blogview&id=30 开机加自启动:echo "red原创 2017-06-05 00:07:57 · 853 阅读 · 0 评论 -
php之apc缓存
APC缓存简介2APC模块安装 WINDOWS下安装LIUNX下安装APC缓存简介APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”。它为我们提供了缓存和优化PHP的中间代码的框架。 APC的缓存分两部分:系统缓存和用户数据缓存。 系统缓存它是指APC把PHP文件源码的编译结果缓存起来,然后在每次调用时先对比时间标记。如果未过期,则使用缓存的中间代码运行。原创 2017-06-04 19:22:23 · 1066 阅读 · 0 评论 -
php设计模式之代理模式
代理模式为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 UML类图: 角色介绍: 抽象主题角色(IGiveGift):定义了Follower和Proxy公用接口,这样就在任何使用Follower的地...原创 2019-03-31 15:22:45 · 753 阅读 · 0 评论 -
php设计模式之访问者模式
访问者模式表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。 UML类图: 角色: 1.抽象访问者(State):为该对象结构中具体元素角色声明一个访问操作接口。该操作接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色,这...原创 2019-03-31 15:23:17 · 759 阅读 · 0 评论 -
php设计模式之观察者模式
观察者模式(有时又被称为发布-订阅模式)。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。 UML类图: 重要角色: 抽象通知者角色(INotifi原创 2017-06-04 19:32:48 · 590 阅读 · 0 评论 -
php设计模式之策略模式
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化,即封装变化的算法。 适用场景: 1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。 2、 需要在不同情况下使用不同的策略(算法),或者策略还可能原创 2017-06-04 19:25:18 · 702 阅读 · 0 评论 -
php设计模式之工厂方法
前面我们介绍了简单工厂,今天我们继续学习另外一个工厂——工厂方法。 具体案例:请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的事情,我们一般采用FactoryMethod模式,带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让MM直接跟服务员说就行了。 工厂方法模式核心工厂类不再负责所有产品的创建,而是原创 2017-06-04 19:17:05 · 727 阅读 · 0 评论 -
php设计模式之抽象工厂
案例:追MM少不了请吃饭了,去麦当劳,只管向服务员说“两个B套餐”就行了。麦当劳就是B套餐的AbstractFactory,B套餐里含有汉堡, 鸡翅和饮料. 麦当劳或肯德基会根据B套餐的规格, 让汉堡Factory, 鸡翅Factory,饮料Factory分别生产对应B套餐的材料. 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。客户类和工厂原创 2017-06-04 19:15:58 · 809 阅读 · 0 评论