PHP包含文件函数include、include_once、require、require_once区别和总结

PHP中的include()、require()语句包含并运行指定文件。这两结构在包含文件上完全一样,唯一的区别是对于错误的处理。require()语句在遇到包含文件不存在,或是出错的时候,就停止即行,并报错。include()则继续即行。例如:hello.php不存在时:include(‘hello.php’);echo‘includetestfinal!’;//include报错,但是会继续执行,显示:includetestfinal!require(‘hello.php’);echo‘requiretestfinal!’;//require报错,停止代码的执行。总结1:include()产生一个警告,而require()则导致一个致命错误换句话说,如果你想在丢失文件时停止处理页面,那就别犹豫了,用require()吧。include()就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。就是说再解析程序时即读取require的文件,如果不能读取到被requir...

php下载网络图片到本地

<?php/**  *下载图片到服务器  *@paramstring$webImgUrl图片路径  *@paramstring$fileName要保存的文件名  */$fileName=date("Y-m-d")."-".time().rand(1,1000);$webImgUrl="http://www.51dev.com//FileUpload/news/202308/20230823145419146.png";echoDownLoadPic($webImgUrl,$fileName);functionDownLoadPic($webImgUrl,$fileName){if($webImgUrl==""){returnfalse;}$filePath="/upload/video_img/";$filename=$fileName.'.jpg';//检查路径是否存在,如不存在则创建$dir='.'.$filePath;if(!is_dir($dir)){//第三个参数是“true”表示能创建多级目录,iconv防止中文目录乱码$res=mkdir(iconv("UTF-8"...

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文件系统...
首页上一页12345...下一页尾页