
php基础
半碗面
人最重要的是相信自己,我能行。加油吧。小程序开发xmj_Mr
展开
-
拆红包算法 php
本篇文章给大家简析PHP拆红包算法,有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。逻辑比较简单,传入金额.和拆分的数量。原创 2022-11-06 19:40:01 · 391 阅读 · 0 评论 -
thinkphp6开启Trace调试模式
在 require-dev 里面加上: "topthink/think-trace":"^1.0"一旦关闭调试模式,发生错误后不会提示具体的错误信息,如果你仍然希望看到具体的错误信息,那么可以在。然后 执行 composer update 进行更新。若是上面已经有了,请忽略上面的步骤。原创 2022-09-05 18:02:46 · 1759 阅读 · 1 评论 -
phpstorm 快速保存代码片段
phpstorm代码片段使用方法1).打开“File”-“Settings”,找到并点中“Live Templates”,2).点右边的+号3).Abbreviation是你将来要输出代码⽚断代码的缩写,下面是图示来显示操作的步骤原创 2022-06-16 09:58:35 · 670 阅读 · 0 评论 -
上传图片限制文件大小以及尺寸大小 php
在开发过程中,上传图片的基本都这功能的,但是呢客户都是随便上传,不会根据你的指定的需求上传的,这时客户按照我们指定的图片尺寸或文件大小上传,做限制。如下代码,我已经封装号了,可以直接拿来用。/** * @param $width 宽度 * @param $height 高度 * @param $size 文件大小 k为单位 * @param $path 文件绝对路径 * @return bool true or false */function getImgSize($width,$原创 2022-03-18 21:59:25 · 1933 阅读 · 0 评论 -
yii2.0怎么接收 json的数据
php不能直接接收,get 和 post 都接收不到的json数据,json字符串相对与页面内容东西,原生的php$params = file_get_contents('php://input');Yii2.0$request = \Yii::$app->request;$params = $request->getRawBody();print_r($params);效果:...原创 2022-02-28 10:22:25 · 1049 阅读 · 0 评论 -
Yii2.0检查是否控制台请求
Yii::$app->request->isConsoleRequest;Yii::$app->request->getIsConsoleRequest();原创 2022-02-28 10:04:05 · 189 阅读 · 0 评论 -
redis 的set(集合)类型的使用和应用场景
一、Redis 集合(Set)Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。集合对象的编码可以是 intset 或者 hashtable。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。二、基本使用sadd:添加一个元素到集合中(集合中的元素无序的并且唯一)redis 127.0.原创 2022-02-25 12:42:16 · 5010 阅读 · 2 评论 -
yii2.0 rules 指定某些情况使用
有时你想一条规则只在某个场景下应用,为此你可以指定规则的on属性, 如下所示:public function rules(){ return [ // 在"register" 场景下 username, email 和 password 必须有值 [['username', 'email', 'password'], 'required', 'on' => 'register'], // 在 "login" 场景下 userna...原创 2022-02-17 13:31:12 · 310 阅读 · 0 评论 -
截取某两个字符串之间的值
/** * 截取某两个字符串之间的值 * @param $str * @param $start_str 开始字符串 * @param string $end_str 结束字符串 * @return bool|string */function getSubStr($str,$start_str,$end_str='/'){ $arr = explode($start_str,$str); if (empty($arr) || !isset($arr[1])) { .原创 2022-02-09 11:40:05 · 1085 阅读 · 0 评论 -
swoole 基础知识
swoole基础知识原创 2021-12-20 14:58:00 · 173 阅读 · 0 评论 -
VirtualBox 和 vagrant在windows下的使用
下载安装 VirtualBox:Downloads – Oracle VM VirtualBox下载安装 Vagrant :Downloads | Vagrant by HashiCorp下载需要使用的 box :比如:xxx.box 后缀是.box注意:版本下载有时会有冲突的,最好的是安装VirtualBox 和Vagrant 最新版本注意:安装 VagrantVagrant 是没有图形界面的,所以安装完成后也没有桌面快捷方式。具体使用方法,接下来会详细说明。Vag...原创 2021-11-03 22:11:46 · 685 阅读 · 0 评论 -
php常见运行模式--4种
php常见的有4种:cgi 协议模式cgi模式 通用网关接口(Common Gateway Interface),它允许web服务器通过特定的协议与应用程序通信, 调用原理大概为:用户请求->Web服务器接收请求->fork子进程 调用程序/执行程序->程序返回内容/程序调用结束->web服务器接收内容->返回给用户 由于每次用户请求,都得fork创建进程调用一次程序,然后销毁进程,所以性能较低fast-cgi 协议模式fast-cgi是cgi模式的升级版,它原创 2021-10-29 15:37:37 · 707 阅读 · 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 评论 -
json数据被转义,需要htmlspecialchars_decode转义回json格式数据
情景:表里面数据由上面可以看出保存数json的数据的打印查询结构这时可以看出是数据被转义了,htmlspecialchars_decode定义和用法htmlspecialchars_decode()函数把一些预定义的 HTML 实体转换为字符。会被解码的 HTML 实体是:& 解码成 & (和号) " 解码成 " (双引号) ' 解码成 ' (单引号) < 解码成 < (小于) > 解码成 > (大于)htm...原创 2021-09-16 16:57:41 · 920 阅读 · 0 评论 -
PHP二维数组用某个字段的值当做键名
我们一般考虑的是foreach 组装新的数组,但是作为开发来能不要foreach就不要,有现成php函数 尽量用,因为php函数是C语言底层写的,运行快。现在我们看案例吧$array = array( array('id'=>'5','name'=>'tony'), array('id'=>'6','name'=>'jerry'), array('id'=>'24','name'=>'jsam')); $noeArray = array_column原创 2021-02-06 23:36:40 · 1305 阅读 · 0 评论 -
二维数组中的某个字段进行快速排序 php
在开发过程中遇到不少对多维数组某个值进行排序,有些人选择遍历方式处理,但是这种方式不可取。能用自带的函数解决,尽量用自带的(因为是底层语言实现的,最好的)不少那么多废话,进入主题<?php$data = [ ['id' => 21,'last_name' => 'Gates'], ['id' => 18,'last_name' => 'Red'], ['id' => 35,'last_name' => 'B原创 2021-01-25 23:14:56 · 189 阅读 · 0 评论 -
curl 方式查看header的信息
curl_setopt($oCurl, CURLINFO_HEADER_OUT, TRUE);curl_setopt($oCurl, CURLOPT_HEADER, true);$header =curl_getinfo($curl, CURLINFO_HEADER_SIZE);//获取头部信息原创 2021-01-03 22:48:40 · 2308 阅读 · 0 评论 -
为什么说PHP 加 ?> 有危害
加与不加 结束?>,视情况而定。先定义一下两者的区别。加的:之后的内容视为 纯文本直接输出不加的:之后的内容视为 PHP 代码,除非没有代码了。(若是有其他代码,就会报错)像一些函数库,类库这类文件,不加结尾比较好。这样当它们被其他文件包含的时候,可以避免一些因为有输出而导致的错误。比如<?PHP//如果 test.php 有结尾,并且后面多一个回车或空格。下面这行一定报错。include("test.php");session_start():?>另外,不加结尾原创 2020-08-13 09:44:44 · 223 阅读 · 0 评论 -
PHP接入图片文字识别AIP
科技的发展,时代的进步,各大行业的需求,需要一些特殊的功能,图片文字识别就是其中的一个。例如:上传身份证 或者 车牌号 识别里面的信息方法一:使用文字识别的API:第一步:新手接入指南https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjgn3第二步:接入API文档:https://ai.baidu.com/ai-doc/OCR/zk3h7xz52文字API请求URL,它必须要有参数access_token:$url = 'https://原创 2020-08-03 21:55:27 · 1605 阅读 · 0 评论 -
单引号与双引号的区别
1、一般情况下两者是通用的.但双引号内部变量会解析,单引号则不解析.2、一般情况下单引号(速度快),双号引相对慢些。注意:如果内部只有纯字符串的时候,用单引号(速度快),内部有别的东西(如变量)的时候,用双号引更好点....原创 2020-06-17 18:03:21 · 76936 阅读 · 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识别二维码内容
主要的是GD库,引用QrReader.php就能识别二维码里面的内容需要环境PHP >= 5.3GD Library直接来代码演示<?phpinclude_once('./lib/QrReader.php');$qrcode = new QrReader('./1.png'); //图片路径$text = $qrcode->text(); //返回识...原创 2019-11-09 22:15:18 · 444 阅读 · 0 评论 -
完美的图片防盗链设置详解
在我们的服务器对抗压力的时候,我们一般控制的图片被别人的网址预览的我们的图片(盗链),消耗我们的服务器的资源。一. 防盗链原理http 协议中,如果从一个网页跳到另一个网页,http 头字段里面会带个 Referer。图片服务器通过检测 Referer 是否来自规定域名,来进行防盗链。二、设置突破防盗链方法apache环境下方法1.使用apache文件FileMatch...原创 2019-11-09 22:06:51 · 2538 阅读 · 0 评论 -
thinkphp 读写分离-减轻数据库的压力
读写分离数据,在大项目还是经常要用到的,这样我们可以减轻对服务器的压力。ThinkPHP内置了分布式数据库的支持,包括主从式数据库的读写分离,但是分布式数据库必须是相同的数据库类型。配置DB_DEPLOY_TYPE 为1 可以采用分布式数据库支持。如果采用分布式数据库,定义数据库配置信息的方式如下://分布式数据库配置定义'DB_DEPLOY_TYPE'=> 1, // 设置...原创 2019-01-08 22:02:32 · 2067 阅读 · 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 评论 -
thinkphp 修改默认访问路径 一般是Index下的index方法
不多说废话了,请看代码。'DEFAULT_MODULE' => 'Home', // 默认模块'DEFAULT_CONTROLLER' => 'Index', // 默认控制器名称'DEFAULT_ACTION' => 'index', // 默认操作名称在配置文件config.php配置以上的参数就好哈。...原创 2018-12-12 10:21:21 · 9356 阅读 · 0 评论 -
判断是数字是否是整数 php
is_int() 函数用于检测变量是否是整数。注意: 若想测试一个变量是否是数字或数字字符串(如表单输入,它们通常为字符串),必须使用 is_numeric()。别名函数():is_integer()、is_long() 。PHP 版本要求:PHP 4, PHP 5, PHP 7语法bool is_int ( mixed $var )返回值如果指定的变量是整数 TR...原创 2018-12-28 13:19:17 · 2202 阅读 · 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 评论 -
PHP array_column() 函数 获取数组某一列的所有值,某一个列作为键值
定义和用法array_column() 返回输入数组中某个单一列的值。语法array_column(array,column_key,index_key);参数 描述 array 必需。规定要使用的多维数组(记录集)。 column_key 必需。需要返回值的列。 可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值。 该...原创 2019-01-08 22:16:54 · 12593 阅读 · 0 评论 -
去除所有的空格 php
1、去除两边的空格 $arr=" shhs "; trim($arr)2、正则匹配去除所有的空格 $goodid =“ ceshi ”; $res=preg_replace('# #','',$goodid) print_r($res);结果:ceshi第2种方案比较好,第一个trim 只能去掉左右的空格,但是不能去掉所有的,方案...原创 2019-01-09 21:23:34 · 566 阅读 · 0 评论 -
把相同的值的二维数组重装数组记录(有相同的值,合并成一条记录,这个是统计每个类别的数量)
例子 这个是关联查询出来的数据(user表与share分享表的数据)/**uname 是用户名*share_type 分享类型*count(a.share_type) 该分类的总数*/$data =Array( [0] => Array ( [uname] => ...原创 2017-11-18 00:05:32 · 1019 阅读 · 0 评论 -
json_decode转换 大数值变成float类型的问题
当json内数值如3326550366031446016 这个数值这么大的时候json解析后会返回float(3.3265503660314E+18)在php5.4+后面都支持json_decode 的参数JSON_BIGINT_AS_STRING输出数据$output,大数值会转成string类型json_decode($output, true , 512 , JSON_BIG...原创 2019-04-09 15:07:56 · 1915 阅读 · 0 评论 -
常用数组函数集
1、计算数组长度count() 和 sizeof() 计算数组长度定义和用法count() 函数返回数组中元素的数目。语法count(array,mode);参数 描述 array 必需。规定数组。 mode 可选。规定模式。可能的值: 0 - 默认。不对多维数组中的所有元素进行计数 1 - 递归地计数数组中元素的数目(计...原创 2019-05-12 19:18:18 · 205 阅读 · 0 评论 -
php 数组运算符
数组运算符 例子 名称 结果 $a + $b 联合 $a和$b的联合。 $a == $b 相等 如果$a和$b具有相同的键/值对则为TRUE。 $a === $b 全等 如果$a和$b具有相同的键/值对并且顺序和类型都相同则为TRUE。 $a != $b 不等 如果$a不等于$b则为T...原创 2019-06-08 09:39:30 · 512 阅读 · 0 评论 -
mysql 性能优化,减轻数据库的压力。(减少数据库查询的次数)
查询订单相应的user_id的详细$arr = array( 1=>array( 'user_id' => 5, 'good_id' => '361' ), 2=>array( 'user_id' => 63, ...原创 2019-09-09 21:13:45 · 1799 阅读 · 0 评论 -
php 怎么开启报错提示
我们在开发的过程中,最好打开报错提示。有些错误,不打开报错提示的话,可能不会出现报错提示,这样做不到做技术的严谨性。下面我们开启php的报错提示1、php.ini来开启报错提示2、在文件中查找,display_errors=On代表错误提示开启display_errors=OnOff代表错误提示关闭display_errors=Off实例演示,定义一个...原创 2019-09-10 21:29:46 · 942 阅读 · 0 评论 -
查找字符串 php
PHP strpos() 函数定义和用法strpos() 函数查找字符串在另一字符串中第一次出现的位置。注释:strpos() 函数对大小写敏感。注释:该函数是二进制安全的。相关函数:stripos() - 查找字符串在另一字符串中第一次出现的位置(不区分大小写) strripos() - 查找字符串在另一字符串中最后一次出现的位置(不区分大小写) strrpos() ...原创 2018-11-22 20:16:59 · 242 阅读 · 0 评论