
后端
文章平均质量分 64
半碗面
人最重要的是相信自己,我能行。加油吧。小程序开发xmj_Mr
展开
-
webman 控制器钩子 beforeAction 与 afterAction
在传统框架中,每个请求都会实例化一次控制器,所以很多开发者__construct()方法中做一些请求前的准备工作。而webman由于控制器常驻内存,无法在__construct()里做这些工作,不过webman提供了更好的解决方案beforeAction() afterAction(),它不仅让开发者可以介入到请求前的流程中,而且还可以介入到请求后的处理流程中。安装action-hook插件composer require webman/action-hook注意插件需要webman&g原创 2022-04-17 12:29:27 · 1063 阅读 · 2 评论 -
webman 使用中的,遇到被禁用的函数,怎么处理?
webman 只要设置的到底层的东西的,php有些函数是默认是被禁用。要使用webman的话,就需要的把有些禁用的函数,剔除被禁用的状态。例如:composer 安装 或者是启动 webman服务时候报有些函数的错误[Symfony\Component\Process\Exception\RuntimeException] The Process class relies on proc_open, which is not av...原创 2022-04-17 11:23:56 · 1087 阅读 · 0 评论 -
YII2.0 where查询条件整理
YII2.0 where查询条件整理原创 2022-03-01 10:13:41 · 1140 阅读 · 0 评论 -
php 线上排查问题方法
情景:已上线的项目突然出现了一点小问题,但你又看不出原因,怎么办呢,也不能直接输出终止程序运行逐步排错,在这里给你推荐一些方法:方法1:通过浏览器控制台输出接口/** * 控制台输出 可以把这个代码放在公共文件,可以在任意地方调用 * @param $var * @param string $level */function console($var,$level = 'debug'){ if(is_array($var) || is_object($var)){原创 2021-10-27 11:52:08 · 557 阅读 · 0 评论 -
PHP 魔术常量 __FUNCTION__与__METHOD__ 有什么区别
__FUNCTION__函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。实例<?php function test() {echo '函数名为:' . __FUNCTION__ ; }test(); ?>以上实例输出结果为:函数名为:test__METHOD__类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。实例:原创 2020-09-18 21:19:07 · 513 阅读 · 0 评论 -
[PHP] - 性能加速 - 开启Opcache
简介OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。PHP 5.5.0 及后续版本中已经绑定了 OPcache 扩展。 对于 PHP 5.2,5.3 和 5.4 版本可以使用»PECL扩展中的 OPcache 库。没开启前:PHP的正常执行流程如下开启后:启用Opcode缓存之后的流程图如下所示:开启opcache方法PHP 5.5+版本以上的,可...原创 2020-08-18 22:33:05 · 562 阅读 · 0 评论 -
阿里 OSS AccessDenied You are denied by bucket referer policy.
AccessDenied You are denied by bucket referer policy. 5E9E5E068A0E9233387BF0F0 xin168.oss-cn-shenzhen.aliyuncs.com xin168报错,是说 策略拒绝,您是可能有设置了oss防盗链。原创 2020-04-21 17:09:42 · 13370 阅读 · 1 评论 -
php7安装openssl扩展方法 linux
linux环境与windows,开启的方式不一样的,在windows环境下,打开php.ini中;extension=php_openssl.dll是否存在, 如果存在的话去掉前面的注释符‘;’, 如果不存在这行,那么添加extension=php_openssl.dll 然后再重启php环境的就好,按照windows方式,在linux上面操作刚才的步骤,发现php.ini中开启了openssl...原创 2020-04-02 22:34:18 · 3092 阅读 · 0 评论 -
常用的打印日志 php
日常调试代码除了打印值之外,还有一种方法就是将内容写入txt文件,这种方式适合在线上调试(因为线上的调试不能暴露debug信息)定义和用法file_put_contents() 函数把一个字符串写入文件中。与依次调用 fopen(),fwrite() 以及 fclose() 功能一样。语法file_put_contents(file,data,mode,context)参...原创 2020-03-31 22:27:09 · 611 阅读 · 0 评论 -
phpexcel导入,出现PHPExcel_RichText Objec
处理方法:$cell = $objPHPExcel->getActiveSheet()->getCell('C2')->getValue();// 开始格式化if(is_object($cell)) { $cell= $cell->__toString();}原创 2019-12-24 12:03:34 · 264 阅读 · 0 评论 -
tp 框架的insertAll 解读
有这样一个表CREATE TABLE IF NOT EXISTS `user_info` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键', `name` varchar(255) NOT NULL default '' COMMENT '姓名', `age` int(11) NOT NULL default '0' COMME...原创 2019-11-25 21:45:43 · 3052 阅读 · 0 评论 -
PHP json_encode() 空数组返回[]与{}
当数组为空的时候,json_encode返回值就是空的数组 [],但是我们有时事需要的对象的格式{},特别是写接口的时候,数据格式严格要求方法1、直接用(object)$arr 即可解决$res=array("arr1"=>(object)array(),"arr2"=>array());echojson_encode($res);/...原创 2019-11-25 21:12:43 · 813 阅读 · 0 评论 -
物流 快递信息查询接口(阿里快递物流接口案例)
【快递查询api,快递物流自动单号识别】可查询快递物流信息近500+家全国快递查询API,1个单号,自动识别,包括:顺丰、申通、圆通、韵达、中通、汇通、EMS、天天、国通、德邦、宅急送等几百家快递物流查询接口。php案例<?php $host = "https://wuliu.market.alicloudapi.com";//api访问链接 $path = ...原创 2019-11-22 18:01:22 · 4520 阅读 · 0 评论 -
PostMan 模拟登陆状态 请求数据接口
前言:我们在开发测试过程中,总有一些接口是需要登陆才能进行访问的,而我们直接用postman来访问接口地址的时候会跳转到登陆页面的信息,下面看如何保持登陆状态来访问接口。原理:服务器认识的sessionid,这个是标识,我们获取的这个值就能模拟了。1、按f12查看网页加载数据。选择application–>Cookies–>选择相应地址;如下图:2、查找sessi...原创 2019-11-03 18:40:54 · 2756 阅读 · 0 评论 -
cookie 与 session 之间的联系 概念知识
首先要明确session和cookie的区别。浏览器端存的是cookie每次浏览器发请求到服务端是http 报文头是会自动加上你的cookie信息的。服务端拿着用户的cookie作为key去存储里找对应的value(session).同一域名下的网站的cookie都是一样的。所以无论几台服务器,无论请求分配到哪一台服务器上同一用户的cookie是不变的。也就是说cookie对应的sessi...原创 2019-10-15 22:28:46 · 127 阅读 · 0 评论 -
PHP+redis实现session共享
前言小型web服务, session数据基本是保存在本地(更多是本地磁盘文件), 但是当部署多台服务, 且需要共享session, 确保每个服务都能共享到同一份session数据.redis 数据存储在内存中, 性能好, 配合持久化可确保数据完整.设计方案1. 通过php自身session配置实现附加知识:我们可以看到PHP默认的的session配置使用文件形式保存在服务器...原创 2019-10-15 22:05:12 · 493 阅读 · 0 评论 -
ECShop 左侧菜单添加、与权限限制
左侧菜单添加、与权限限制Ecshop 后台增加一个左侧列表菜单menu菜单需要修改三个文件:/admin/includes/inc_menu.php/admin/includes/inc_priv.php/languages/zh_cn/admin/common.php 1.在/admin/includes/inc_menu.php中增加$modules['03_pro...原创 2018-12-31 23:59:19 · 248 阅读 · 0 评论 -
php 二维数组转一维,其中一个字段值做键,另一个做值
$group_arr=array( array( "uid" => "57", "add_time" => "1491018087", "director_id" =>"57", "truename" => "xiaoming", ));代码:$arr_Array = array_reduc...原创 2019-07-18 22:32:45 · 2016 阅读 · 0 评论 -
php获取文件后缀的9种方法
1. 第一种使用explode根据’.’分割成数组,再找到这个数组中最后一个元素,就是后缀名。$files='test.jpg';explode('.',$files);2. 第二种先使用strrchr函数找到最后一个’.’开始的字符串,包括’.’再使用substr函数从1下标开始截取,截取’.’后面的内容$files='test.jpg';$test=strrchr...原创 2019-08-03 15:13:59 · 1490 阅读 · 0 评论 -
二维数组 随机排序 php
不多说什么,直接来代码<?php$arr=['C','2','3','4','5','6','7','1','9','10','J','Q','K'];shuffle($arr);print_r($arr);?>结果原创 2019-08-27 22:31:24 · 1187 阅读 · 0 评论 -
workerman-环境要求 -安装
Windows用户workerman从3.5.3版本开始已经能够同时支持linux系统和windows系统。1、需要PHP>=5.3.3,并配置好PHP的环境变量。2、Windows版本的Workerman不依赖任何扩展。3、安装使用以及注意事项参见这里。====本页面以下只适用于Linux用户,Windows用户请忽略。 ====Linux用户(含Mac OS)...原创 2019-08-31 15:46:38 · 1047 阅读 · 0 评论 -
PHP------数组和对象相互转化 (对象)stdClass Object array(数组)
数组转JSONPHP json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE 。JSON转数组PHP json_decode() 函数用于对 JSON 格式的字符串进行解码,并转换为 PHP 变量。$arr = array('1' => 'a', '2' => 'b', '3' => 'c');...原创 2019-09-05 11:47:49 · 223 阅读 · 0 评论 -
php 怎么开启报错提示
我们在开发的过程中,最好打开报错提示。有些错误,不打开报错提示的话,可能不会出现报错提示,这样做不到做技术的严谨性。下面我们开启php的报错提示1、php.ini来开启报错提示2、在文件中查找,display_errors=On代表错误提示开启display_errors=OnOff代表错误提示关闭display_errors=Off实例演示,定义一个...原创 2019-09-10 21:29:46 · 942 阅读 · 0 评论 -
php7 新特性
三元运算符增加了一个快捷书写方式原本格式为是(expr1) ? (expr2) : (expr3)如果expr1结果为True,则返回expr2的结果。新增一种书写方式,可以省略中间部分,书写为expr1 ?: expr3如果expr1结果为True,则返回expr1的结果$expr1=1; $expr2=2; //原格式 $expr=$expr1?$expr1:$...原创 2019-06-06 21:41:48 · 166 阅读 · 0 评论 -
GD库 步骤以及各种图形函数
指点在PHP中创建一个图像应该完成如下所示的4个步骤:1.创建一个背景图像(也叫画布),以后的操作都基于此背景图像。2.在背景上绘制图像轮廓或输入文本。3.输出最终图形4.释放资源5、一定要指点输出的格式header("Content-Type:images/png")以下是函数imagefill--区域填充语法:bool imagefill(resourc...原创 2019-06-06 20:45:06 · 974 阅读 · 0 评论 -
常用数组函数集
1、计算数组长度count() 和 sizeof() 计算数组长度定义和用法count() 函数返回数组中元素的数目。语法count(array,mode);参数 描述 array 必需。规定数组。 mode 可选。规定模式。可能的值: 0 - 默认。不对多维数组中的所有元素进行计数 1 - 递归地计数数组中元素的数目(计...原创 2019-05-12 19:18:18 · 205 阅读 · 0 评论 -
PHP array_column() 函数 获取数组某一列的所有值,某一个列作为键值
定义和用法array_column() 返回输入数组中某个单一列的值。语法array_column(array,column_key,index_key);参数 描述 array 必需。规定要使用的多维数组(记录集)。 column_key 必需。需要返回值的列。 可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值。 该...原创 2019-01-08 22:16:54 · 12593 阅读 · 0 评论 -
thinkphp 读写分离-减轻数据库的压力
读写分离数据,在大项目还是经常要用到的,这样我们可以减轻对服务器的压力。ThinkPHP内置了分布式数据库的支持,包括主从式数据库的读写分离,但是分布式数据库必须是相同的数据库类型。配置DB_DEPLOY_TYPE 为1 可以采用分布式数据库支持。如果采用分布式数据库,定义数据库配置信息的方式如下://分布式数据库配置定义'DB_DEPLOY_TYPE'=> 1, // 设置...原创 2019-01-08 22:02:32 · 2067 阅读 · 0 评论 -
PHP设置COOKIE的HttpOnly属性 安全性问题
httponly是微软对cookie做的扩展。这个主要是解决用户的cookie可能被盗用的问题。 大家都知道,当我们去邮箱或者论坛登陆后,服务器会写一些cookie到我们的浏览器,当下次再访问其他页面时,由于浏览器回自动传递cookie,这样 就实现了一次登陆就可以看到所有需要登陆后才能看到的内容。也就是说,实质上,所有的登陆状态这些都是建立在cookie上的!假设我们登陆后的 cooki...转载 2019-01-02 23:35:06 · 1410 阅读 · 0 评论 -
PHP array_sum() 函数(数组的value求和)
定义和用法array_sum() 函数返回数组中所有值的和。如果所有值都是整数,则返回一个整数值。如果其中有一个或多个值是浮点数,则返回浮点数。语法array_sum(array)参数 描述 array 必需。规定数组。 <?php$a = array(2, 4, 6, 8);echo "sum(a) = " . array_sum($a) ....原创 2019-01-06 11:55:54 · 10992 阅读 · 0 评论 -
防攻击,sql注入 ,网站安全问题性
基础知识原理SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执...原创 2019-01-01 13:51:13 · 438 阅读 · 0 评论 -
thinkphp 修改默认访问路径 一般是Index下的index方法
不多说废话了,请看代码。'DEFAULT_MODULE' => 'Home', // 默认模块'DEFAULT_CONTROLLER' => 'Index', // 默认控制器名称'DEFAULT_ACTION' => 'index', // 默认操作名称在配置文件config.php配置以上的参数就好哈。...原创 2018-12-12 10:21:21 · 9356 阅读 · 0 评论 -
SQL优化语句
慢SQL消耗了70%~90%的数据库CPU资源; SQL语句独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低; SQL语句可以有不同的写法; 1 不使用子查询例:SELECT * FROM t1 WHERE id (SELECT id FROM t2 WHERE name=’hechunyang’);子查询在MySQ...原创 2018-12-27 23:15:58 · 258 阅读 · 0 评论 -
php 浮点数的坑(浮点数的精确计算)
人生处处是坑,我们需要处处堤防,方能不掉进坑里。php在使用加、减、乘、除等运算符计算浮点数的时候,经常会出现意想不到的结果,特别是关于财务数据(金钱)方面的计算,给不少工程师惹了很多的麻烦。$a = 100;$b = 99.98;var_dump($a-$b);期望的结果是:float(0.02)实际结果:float(0.019999999999982)这样,就造成我们...原创 2018-12-26 23:24:45 · 2610 阅读 · 0 评论 -
控制传参的变量 php
防黑客或者是我们平时弄的api接口,出于安全考虑,我们一般控制好参数变量以下是我的代码小dome$parameter = array('login_name','login_pass','login_pass2','email','parent',reg_sign);foreach(I('post.') as $k=>$val){ if (!in_ar...原创 2018-11-29 10:43:43 · 146 阅读 · 0 评论 -
preg_match 与 preg_match_all 区别
正则匹配在php用的还挺多的,应该有相对一部分的都不知道preg_match 与 preg_match_all 的区别吧以下我们开始讲解一下这两个的区别preg_match 只匹配一次,preg_match_all是全文匹配,即所有跟表达式一致的都找出来。以下我们看案例 1、取出符号里的字符。preg_match_all("/(\w)+/","abc",$search); ...原创 2018-11-29 10:31:39 · 10339 阅读 · 0 评论 -
接口,有数据更新,无数据返回 no data ,减轻数据的压力
有时我们接口,数据库没更新数据时候的,我们就没必要再请求接口了,这样可以减轻对服务器的压力。思路:当页面加载,我们就把数据的最新id值传在页面;然后接口传值,我们就使用定时器js发起请求,查询数据的最新的记录与当前的id,是否相等。相等我们就返回no data;若是不等,我们就访问数据库拉取数据。查询数据库的最后一条数据select * from table order by id D...原创 2019-01-14 22:50:40 · 723 阅读 · 0 评论 -
把相同的值的二维数组重装数组记录(有相同的值,合并成一条记录,这个是统计每个类别的数量)
例子 这个是关联查询出来的数据(user表与share分享表的数据)/**uname 是用户名*share_type 分享类型*count(a.share_type) 该分类的总数*/$data =Array( [0] => Array ( [uname] => ...原创 2017-11-18 00:05:32 · 1019 阅读 · 0 评论 -
防止黑客攻击,把不经常变化的数据做出缓存 ssdb 缓存
思路:我们使用定时任务的 shell 定时更新这内容,更新内容,我们是ssdb get 获取数据的就好;(说明白点,就是我们把数据放在SSDB上(查询数据的东西都是定时shell执行),我们到时就直接拿缓存的数据)我们使用shell 定时进行更新信息set说明设置指定 key 的值内容.参数key -value -返回值出错则返回 false, 其它值表示正常....原创 2019-01-25 21:35:28 · 252 阅读 · 0 评论 -
GD库知识
GD库是php处理图形的扩展库,GD库提供了一系列用来处理图片的PAI,使用GD库可以处理图片,或者生成图片,也可以给图片加水印。主要用途在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站数据生成报表等。在PHP处理图像,可使用GD库,而GD库开始时是支持GIF的,但由于GIF使用了有版权争议的LZW算法,会引起法律问题,于是从 GD 库 1.6 版...原创 2019-05-15 13:07:42 · 217 阅读 · 0 评论