PHP 开启 Opcache

Opcache能够将代码编译成字节码,能够加快脚本的运行。检查是否安装opcache:php-vPHP7.3.22(cli)(built:Sep3202021:16:44)(NTS)Copyright(c)1997-2018ThePHPGroupZendEnginev3.3.22,Copyright(c)1998-2018ZendTechnologieswithZendOPcachev7.3.22,Copyright(c)1999-2018,byZendTechnologies如果有OPcache即已经安装。配置项:;EnableZendOPcacheextensionmodulezend_extension=opcache;DeterminesifZendOPCacheisenabledopcache.enable=1;DeterminesifZendOPCacheisenabledfortheCLIversionofPHP;opcache.enable_cli=0;TheOPcachesharedmemorystoragesize.opcache.memory_consumptio...
开发笔记 开发笔记·2023-08-12

PHP has encountered an Access Violation

解决方法:回收进程池...

MySQL分页计算总页数的方法公式(PHP计算页码)

首先假设2个参数:总记录数:totalRecord每页最大记录数:pageSize方法一(推荐): 总页数=(总记录数+每页数据大小 -1)/每页数据大小totalPage=(totalRecord+pageSize-1)/pageSize;其中pageSize-1就是totalRecord/pageSize的最大的余数实际开发中发现分页有时会出现小数点,因为需要转换为整数型,如下:totalPage=(int)Math.ceil((totalRecord+pageSize-1)/pageSize);方法二:可使用Math.ceil()函数,该函数需要强类型转换(向上取整是指:浮点数取整)总页数=(int)Math.ceil(总记录数/每页大小)totalPage=(int)Math.ceil(totalRecord/pageSize);方法三:三目运算法,取余totalPage=totalRecord%pageSize==0?totalRecord/pageSize:totalRecord/pageSize+1; ...

php源码安全检测,PHP 安全检测代码片段

/***html转换输出(只转义'"保留Html正常运行) *@param$param*@returnstring*/functionhtmlEscape($param){returntrim(htmlspecialchars($param,ENT_QUOTES));}/***是否数组(同时检测数组中是否存在值) *@param$params*@returnboolean*/functionisArray($params){return(!is_array($params)||!count($params))?false:true;}/***变量是否在数组中存在(参数容错,字符串是否存在于数组中) *@param$param*@param$params*@returnboolean*/functioninArray($param,$params){return(!in_array((string)$param,(array)$params))?false:true;}/***通用多类型混合转义函数 *@param$var*@pa...

屏蔽指定省份访问PHP代码

其实就是利用API接口的IP查询地址来限制首页不被所在省的IP访问。ip_config.php代码如下<!--?php/*+--------------------------------------------++程序授权说明        ++作者:森林                                 ++--------------------------------------------+*///-------------------------函数封装------------------------------------function ...

php 获取客户端的ip、地理信息、浏览器信息、本地真实ip

<!--?php//作用取得客户端的ip、地理信息、浏览器、本地真实IPclassget_gust_info{////获得访客浏览器类型functionGetBrowser(){if(!empty($_SERVER['HTTP_USER_AGENT'])){$br=$_SERVER['HTTP_USER_AGENT'];if(preg_match('/MSIE/i',$br)){$br='MSIE';}elseif(preg_match('/Firefox/i',$br)){$br='Firefox';}elseif(preg_match('/Chrome/i',$br)){$br='Chrome';}elseif(preg_match('/Safari/i',$br)){$br='Safari';}elseif(preg_match('/Opera/i',$br)){$br='Opera';}else{$br='Other';}return$br;}else{return"获取浏览器信息失败!";}}////获得访客浏览器语言functionGetLang(){if(!empt...

php使用strip_tags过滤所有html标签,并保留特定HTML标签的方法

过滤所有html标签:strip_tags($str);保留特定HTML标签(此处保留<p>、<b>,其他html标签全部清除):strip_tags($str,"<p><b>"); ...

PHP+jsonp 跨域实例

PHP+jsonp跨域实例 本文简单介绍PHP+jsonp跨域实例:a.comindex.html<!doctypehtml><html><head><metacharset="utf-8"><title>test</title><scriptsrc="jquery-3.2.1.min.js"></script><!--自己下载--><scripttype="layer/2.4/layer.js"></script><!--自己下载--><script>$(document).ready(function(){$("#btn").click(function(k){varformData=$("form").serializeArray();//序列化name/value$.ajax({type:'GET',url:'http://b.com/jsonp.php',dataType:'jsonp',//类型data:for...
开发笔记 开发笔记·2023-05-15

php+xdebug+dbgp远程调试(多人)

创建DBGP服务配置如果已经有人配置好,其他人如果也想要调试的话,只需按照这里的2和3配置。调试到下载页面,下载python版本的dbgp到服务器上。解压后执行pydbgpproxy。如果提示找不到dbgp模块,则编辑该文件。在96行左右有这么一块代码:candidate_paths=[dirname(this_dir),#Komodosourcetreelayoutjoin(dirname(this_dir),pythonlib),]把join(dirname(this_dir),pythonlib)改为join(this_dir,pythonlib)再执行。如果执行成功,会有类似于以下的输出:[root@localhostdbgp]#./pydbgpproxy-i0.0.0.0:9001-d9000INFO:dbgp.proxy:startingproxylisteners.appid:11203INFO:dbgp.proxy:dbgplisteneron127.0.0.1:9000INFO:dbgp.proxy:IDElisteneron0.0.0.0:9001服务器上编辑php...

thinkphp实现sql like模糊查询实例

目前使用thinkphp框架进行项目开发的人越来越多了,由于其封装性较好,导致了很多纯PHP开发的部分不易上手,本文实例即以like模糊查询为例对此加以说明。这里主要通过举例来说明用法:ThinkPHP可以支持直接使用字符串作为查询条件,但是大多数情况推荐使用索引数组或者对象来作为查询条件,因为会更加安全。一、使用字符串作为查询条件这是最传统的方式,但是安全性不高,例如:代码如下:1$User =M("User"); //实例化User对象2 $User->where('type=1ANDstatus=1')->select();最后生成的SQL语句是代码如下:1SELECT * FROM think_user WHERE type=1 AND status=1如果进行多字段查询,那么字段之间的默认逻辑关系是逻辑与AND,但是用下面的规则可以更改默认的逻辑判断,通过使用_logic定义查询逻辑:代码如下:1$User =M(&qu...

php+redis实现超时取消订单功能

业务场景:秒杀案例秒杀业务逻辑:多个用户同时抢单,通过mysql行锁抢到的用户进入待支付页面(倒计时)。当用户没有支付订单超时时则取消该订单并归还库存。应用thinkphp+redis+workerman(可以自定义命令常驻)1、thinkphp安装workerman。这里就过了,thinkphp手册去找。2、安装好redis及扩展。用宝塔的直接搞就完了,过。3、生产者:用户创建订单向redis插入一条订单数据。$redis=newRedis();$redis->connect('127.0.0.1',6379);//$redis->auth('密码');//redis有密码就加/***seckill_time为列队名称*time()+$seckill['pay_time']为到期时间戳*$newSeckillOrder->id为订单id,可以json字符串存储*/$redis->zAdd('seckill_time',time()+$seckill['pay_time'],$newSeckillOrder->id);4、消费者:这里我们需要一个常驻内存一...

linux之CentOS将php和mysql命令加入环境变量

PHP和mysql命令没有加入到环境变量之前,执行“php-v”命令查看当前php版本信息时时,则会提示命令不存在的错误。为了使用方便,需要将php和mysql命令加到系统命令中。下面我们详细介绍一下在linux下将php和mysql加入到环境变量中的方法(假设php和mysql分别安装在/usr/local/webserver/php/和/usr/local/webserver/mysql/中)。方法一:直接运行命令exportPATH=$PATH:/usr/local/webserver/php/bin和exportPATH=$PATH:/usr/local/webserver/mysql/bin使用这种方法,只会对当前会话有效,也就是说每当登出或注销系统以后,PATH设置就会失效,只是临时生效。方法二:执行vi~/.bash_profile修改文件中PATH一行,将/usr/local/webserver/php/bin和/usr/local/webserver/mysql/bin加入到PATH=$PATH:$HOME/bin一行之后这种方法只对当前登录用户生效方法三:修改/et...

如何分析php-cgi进程占用cpu资源过多负载高的原因

服务器环境:RedhatLinux5.5,nginx, phpfastcgi在此环境下,一般php-cgi运行是非常稳定的,但也遇到过php-cgi占用太多cpu资源而导致服务器响应过慢,所遇到的php-cgi进程占用cpu资源过多的原因有:一些php的扩展与php版本兼容存在问题:实践证明eAccelerater与某些php版本兼容存在问题,具体表现是启动php-cgi进程后,运行10多分钟,奇慢无比,但静态资源访问很快,服务器负载也很正常(说明nginx没有问题,而是php-cgi进程的问题),解决办法就是从php.ini中禁止掉eAccelerater模块,再重启php-cgi进程即可。 程序中可能存在死循环,导致服务器负载超高(使用top指令查看负载高达100+),需要借助Linux的proc虚拟文件系统找到具体的问题程序。 php程序不合理使用session,这个发生在开源微博记事狗程序上,具体表现是有少量php-cgi进程(不超过10个)的cpu使用率达98%以上,服务器负载在4-8之间,这个问题的解决,仍然需要借助Linux的proc文件系统...

在CentOS上把PHP从5.4升级到5.5

摘要:本文记录了在CentOS6.3上,把PHP从5.4.8升级到5.5.13的过程。在我做的一个项目中,最近我对生产服务器上的一系列系统软件进行了升级,包括Git、Nginx、MySQL和PHP。这篇文章讲的是升级PHP的过程,其他软件的升级,可见下面列出的文章。在我加入这个项目之前,服务器上的PHP已经安装设置好了,我只是正常使用而已。现在过去1年了,所有的开发工作都告一段落,有时间升级服务器上的软件了。升级这种事情是应当经常做的,倒不是为了追最新版本,而是当正式版本发放出来的时候,应该及时更新,以便获得最新的更正、补丁,避免服务器上的漏洞,减少安全隐患。升级是在今年6月13-14日进行的,到今天才有空做个记录,便于日后参考。计划就是预案,就是事先的准备(包括心理上的)、更明细的步骤、对各种情况及对意外的对策,当然,我们不可能面面俱到,预测一切,不然就成神了,所以要随时准备脱稿演出,thinkoutofthebox。2.1了解情况计划要有针对性,所以要先”踩点儿“。通过在系统上,用find之类的命令,或者通过网页用phpinfo()函数来显示关于PHP的信息...
开发笔记 开发笔记·2023-03-14

php Make编译PEAR package PHP_Archive not installed解决方法

Generatingphar.phpGeneratingphar.pharPEARpackagePHP_Archivenotinstalled:generatedpharwillrequirePHP'spharextensionbeenabled.pharcommand.incdirectorygraphiterator.incclicommand.incinvertedregexiterator.incdirectorytreeiterator.incphar.inc Buildcomplete.Don'tforgettorun'maketest'. php的编译时需要依赖pearpackage,目前的问题错误"PEARpackagePHP_Archivenotinstalled:generatedpharwillrequirePHP'spharextensionbeenabled.",已经明显报出这个问题。因此编译使用参数--without-pear 将pear屏蔽掉编译安装后,再进行安装;同...
首页上一页12345...下一页尾页