php 基础
php基础,需要复习滴
nzz_171214
一个小白到高级后端工程师转型的过程
展开
-
php 字符串反转
如果是单纯的字母数组使用函数:strrev()如果是带有中文的,使用已下方法:/**此函数的作用是反转中文字符串mb_strlen() 获取字符的长度mb_substr() 获取字符的单个元素krsort() 按照键值逆序排序数组implode() 将数组拼接为字符串explode() 使用字符串分隔字符串**/function str_rev_gb($str){ //判断输入的是不是utf8类型的字符,否则退出 if (!is_string($str) || !m原创 2021-07-28 15:15:08 · 177 阅读 · 1 评论 -
远程图片保存到本地示例
代码如下:<?phpfunction GrabImage($url, $filename = "") { if ($url == ""):return false; endif; //如果$url地址为空,直接退出 if ($filename == "") { //如果没有指定新的文件名 $ext = strrchr($url, "."); //得到$url的图片格式 if ($ext != ".g原创 2021-06-30 16:42:13 · 180 阅读 · 0 评论 -
TP6自建错误类型的exception,实现手动抛出exception
起初希望在TP6的controller中新建一个COMMON.PHP,用来通用的验证。想用TP6的自带的exception功能抛出自定义的异常ApiException.结果,按TP5那套新建exception文件走不通。于是有了之后的摸索;仿照系统自带的exception类,在相同目录下新建了ApiException,如下:之后,在COMMON.PHP中use 这个类,执行了throw new 类,结果还是不行,在官方文档中看到了,对自定义异常类的定义抛出,需要在Exc...转载 2021-05-13 10:47:30 · 937 阅读 · 0 评论 -
php中判断字符串是否包含中文
php中判断字符串是否全是中文或含有中文的实现代码,主要是利用正则匹配中文判定。判断含有中文 :代码如下:$str = "中文"; if (preg_match("/[\x7f-\xff]/", $str)) { echo "含有中文"; }else{ echo "没有中文"; } 或 $pattern = '/[^\x00-\x80]/'; if(preg_match($pattern,$str)){ echo "含有中文"; }else{转载 2021-04-02 13:50:31 · 4203 阅读 · 0 评论 -
PHP邮箱验证的两种方式
1:通过自带方式验证邮箱eg: $result = filter_var('bob@example.com', FILTER_VALIDATE_EMAIL);打印结果时,如果格式正确,则输出邮箱地址,错误则输出false2:正则匹配(1)$regex= '/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/';(2)$regex="/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[...原创 2020-10-30 13:42:46 · 442 阅读 · 0 评论 -
关于支付宝支付 appid绑定问题
我app支付应用也申请了,但是一直提示未签约,但是在签约里面看如果是上面这样,我接口生成串没问题,但是app调不起来,会报错6001这个我就只能求救客服了,通过一早上的沟通,终于明白了需要appid的绑定,绑定地址是:https://mrchportalweb.alipay.com/accountmanage/bind/appIdBindList这个申请了,没多久就通过了,支付就可以了...原创 2020-09-15 14:48:09 · 2824 阅读 · 2 评论 -
yii2添加行为之Yii->$app->request->request()通用地去获取post|get请求
添加行为举例子:yii1有通用地获取不论是get还是post的请求Yii::app->request->getParam('id’)但是yii2没有,它只有如下:Yii::$app->request->getQueryParams();//获取get所有参数Yii::$app->request->getQueryParam('id');//获取get中某个参数Yii::$app->request->getBodyParams();/.原创 2020-09-10 09:37:35 · 956 阅读 · 0 评论 -
【laravel5.6】yii Process class relies on proc_open, which is not available on your PHP installation.
部署服务器的时候,使用composer来安装依赖。遇到了从错误提示信息中可以看到是因为关闭了PHP的proc_get_status()函数,那么如何解决这个问题呢?打开php.ini文件,搜索 disable_functions,找到如下类似内容:disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_get_status,proc_open,popen,ini_alter,in.原创 2020-09-07 10:03:23 · 224 阅读 · 0 评论 -
PHP将Base64图片转换为本地图片并保存
/** * [将Base64图片转换为本地图片并保存] * @param [Base64] $base64_image_content [要保存的Base64] * @param [目录] $path [要保存的路径] 比如:"./qrcode" */ public function base64_image_content($base64_image_content,$path){ //匹配出图片的格式 if (p..转载 2020-08-04 16:11:34 · 571 阅读 · 0 评论 -
Layui数据表格请求添加参数
Layui数据表格基本形态,官网链接地址<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>table模块快速使用</title> <link rel="stylesheet" href="/layui/css/layui.css" media="all"> </head>转载 2020-08-04 13:39:26 · 7514 阅读 · 0 评论 -
PHP 生成6位永不重复的随机数
简单点的:用php的str_shuffle函数:<?php$randStr = str_shuffle('ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890');$rand = substr($randStr,0,6);?>原创 2020-08-04 11:09:38 · 4393 阅读 · 0 评论 -
layui 高度自适应问题,内容多了自动换行
layui表格默认的是多出的内容省略,但是会涉及到重要的信息想全部显示出来,用下面的这个样式就可以 .layui-table .layui-table-cell{ height:auto; overflow:visible; text-overflow:inherit; white-space:normal; }记得前面的多选框和编号要去掉fixed: true不然不能和后面的内容在一行上。希望对大家有帮助...原创 2020-07-25 05:39:06 · 1495 阅读 · 1 评论 -
PHP 如何获取两个时间之间的年和月份及间隔天数 PHP两个日期之间的所有日期
$time1 = strtotime('2014-02-04'); // 自动为00:00:00 时分秒 两个时间之间的年和月份$time2 = strtotime('2015-02-06'); $monarr = array();$monarr[] = '2014-02'; // 当前月;while( ($time1 = strtotime('+1 month', $time1)) <= $time2){ $monarr[] = date('Y-m',$time1); // .原创 2020-07-14 16:03:06 · 638 阅读 · 0 评论 -
PHP中单例模式的使用场景与使用方法讲解
单例模式按字面来看就是指某一个类只存在一个实例,这一点其实是与静态方法是相同的,只存在一个实例的好处是当我们需要使用某个类时只需要实例化一次,不需要每次都去new,极大的降低了资源的耗费,比如说数据库的连接类。一个类只有一个对象实例含义作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。那么单例模式与静态方法有什么区别呢?个人观点,如果不存在比较复杂的事务管理,用singleto..原创 2020-07-06 01:16:03 · 278 阅读 · 0 评论 -
php 压缩图片,超好用
<?php/** * 图片压缩类:通过缩放来压缩。 * 如果要保持源图比例,把参数$percent保持为1即可。 * 即使原比例压缩,也可大幅度缩小。数码相机4M图片。也可以缩为700KB左右。如果缩小比例,则体积会更小。 * * 结果:可保存、可直接显示。 */class imgcompress{ private $src; private $image; private $imageinfo; private $percent = 0.5; .转载 2020-07-05 22:59:10 · 230 阅读 · 0 评论 -
php 常用的字符串函数
长度strlen($string):得到字符串长度字符串查找strpos($string, $search[, $offset]):在指定字符串中查找目标字符串第一次出现的位置 stripos($string, $search[, $offset]):忽略大小写的去查找 strrpos($string, $search[, $offset]):在指定字符串中查找目标字符串最后一次出现的位置 strripos($string, $search[, $offset]):忽略大小写的去查找最后一次转载 2020-07-05 22:22:12 · 136 阅读 · 0 评论 -
unserialize(): Error at offset 0 of 96 bytes出现的原因分析以及解决方法
出现问题: 从数据库中取出数据后进行反序列化后,php报错 unserialize(): Error at offset 0 of 96 bytes;分析原因:英文数据中含有中文字符串,所以我们就可以想到编码的问题,serialize()函数对在不同编码下对中文的处理结果是不一样的。再讲gbk转换成utf8的格式后,每个中文的编码数从2个会增加到3个,所以会导致反序列化的时候判断字符长度出现问题 。解决方法 :使用正则表达式将序列化的数组中的表示字符长度的值重新计算一遍...转载 2020-07-02 10:28:37 · 2321 阅读 · 0 评论 -
PHP 7系列版本(7.0、7.1、7.2、7.3、7.4)新特性
PHP很久不用了,很多新特性都搞不清了,稍微整理一下。标量参数类型声明[7.0] 返回值类型声明[7.0] Nullable类型[7.1] 属性值类型声明[7.4] Void 函数[7.1] 箭头函数[7.4] 类常量可见性[7.1] iterable 伪类[7.1] 新的object类型[7.2] 允许重写抽象方法[7.2] 类在实现接口方法时参数类型扩展[7.2] null合并运算符[7.0] 空值连写赋值运算符[7.4] 组合比较符[7.0] 通过 define() 定转载 2020-06-22 17:59:25 · 2537 阅读 · 0 评论 -
General error: 1390 Prepared statement contains too many placeholders
今天遇到mysql占位符的问题。问题背景是: 在做一个停车场项目的时候,要导入一个月的停车记录,但是停车记录一个月有1万多,一次插入后就会报这个错。经了解,Mysql默认支持的占位符最多为65535(2^16-1)个,写入数据为m列,n行。m*n必须小于65535所以,我们插入的时候,需把数据切割,分N次插入即可。比如我使用array_chunk,每1000条数据插入一次//$list可能有上万个数组,$chunk_result = array_chunk($list, 1000);原创 2020-05-18 18:53:03 · 484 阅读 · 0 评论 -
Linux信号SIGTERM、SIGKILL、SIGINT和SIGQUIT的区别;posix_kill使用
SIGTERM是不带参数时kill发送的信号,意思是要进程终止运行,但执行与否还得看进程是否支持。但是SIGKILL信号不同,它可以被捕获和解释(或忽略)的过程。SIGKILL是发送到处理的信号以使其立即终止。当发送到程序,SIGKILL使其立即终止。在对比SIGTERM和SIGINT,这个信号不能被捕获或忽略,并且在接收过程中不能执行任何清理在接收到该信号。SIGINT中断信号,终端在用户按下C...原创 2019-01-11 11:22:25 · 5663 阅读 · 0 评论 -
extension_loaded() 判断php扩展是否加载
使用:if(!extension_loaded('sphinx')){ require ('./includes/sphinxapi.php');} 在命令行模式下,可以使用php -m 查看已经安装的扩展原创 2019-01-11 11:08:35 · 1878 阅读 · 0 评论 -
PHP array_shift() 函数解析
定义:函数删除数组中第一个元素,并返回被删除元素的值。注释:如果键名是数字的,所有元素都会获得新的键名,从 0 开始,并以 1 递增(参见下面例子)。语法:array_shift(array)参数 描述 array 必需。规定数组。 用法:<?php$a=array(0=>"red",1=>"green",2=>"blue"...原创 2019-01-02 18:33:47 · 216 阅读 · 0 评论 -
PHP array_map() 函数解析
定义和用法:array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。(简单描述: “array_map” 会对数组中的每一项进行处理,并返回处理后的数据。)回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。语法:array_map(myfunction,array1,array2,array...原创 2019-01-02 18:27:45 · 1009 阅读 · 0 评论 -
PHP array_column() 函数解析
定义和用法: array_column() 用来返回数组中某个单一列的值,可以指定目标数组中哪一列作为新数组的值和哪一列作为新数组的键名。语法:array_column(array,column_key,index_key);参数 描述 array 必需。规定要使用的多维数组(记录集)。 column_key 必需。需要返回值的列。 可以...原创 2019-01-02 17:38:54 · 2909 阅读 · 0 评论 -
PHP substr_replace() 函数解析
定义和用法:substr_replace() 把字符串的一部分替换为另一个字符串。如果 start 参数是负数且 length 小于或者等于 start,则 length 为 0语法: substr_replace(string,replacement,start,length)参数 描述 string 必需。规定要检查的字符串。 replaceme...原创 2018-12-25 16:06:00 · 589 阅读 · 1 评论 -
PHP array_filter() 函数解析
定义和用法:array_filter() 函数用回调函数过滤数组中的值。该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回结果数组中。数组键名保持不变。如果不填写回调函数,默认是去除数组中的false的值和空数组语法:array_filter(array,callbackfunction);参数:array:必填,要...原创 2018-12-17 14:58:30 · 219 阅读 · 0 评论 -
php array_filter、array_map、array_walk解释
1、array_filter 用回调函数处理数组中的各个元素,重点在于过滤(而不是新增)某个元素,当你处理到一个元素时, 如果返回了false,那么这个元素将会被过滤掉。PS:保持了原来的索引。 $arr = array(1,2,3,'aaa'=>4,5);$newArr = array_filter($arr,function($val) { if ($val ==...转载 2018-12-12 16:58:29 · 673 阅读 · 0 评论 -
PHP array_merge() 函数解析
定义和用法:把多个数组合并为一个数组:注释:如果两个或更多个数组元素有相同的键名,则最后的元素会覆盖其他元素。注释:如果您仅向 array_merge() 函数输入一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引语法:array_merge(array1,array2,array3...)参数: array1:必须,规定...转载 2018-12-05 12:46:23 · 169 阅读 · 0 评论 -
PHP array_change_key_case函数解析
定义和用法:array_change_key_case() 函数将数组的所有的键都转换为大写字母或小写字母。语法:array_change_key_case(array,case);参数: array:必填,规定要使用的数组 case:选填, CASE_LOWER - 默认值。将数组的键转换为小写字母。 CASE_UPPER - 将数组的键转...转载 2018-12-05 12:37:38 · 163 阅读 · 0 评论 -
PHP strpos函数解析
定义和用法:strpos()是查找一个字符串在另一个字符串中第一次出现的位置。注释:对大小写敏感;是二进制安全的语法:strpos(string(String),find(String),start(int))参数: string:必填,规定要搜索的字符串(大) find:必填,规定要查找的字符串(小) start::选填,规定在何处开始搜索...原创 2018-12-05 11:14:52 · 396 阅读 · 1 评论 -
php 判断一个字符串是否在另一个字符串存在
strstrstrstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。代码如下:<?php /*如手册上的举例*/ $email = 'user@example.com'; $domain = strstr($email, '@'); echo $domain; // prints @example.com...原创 2020-05-27 14:36:24 · 1582 阅读 · 0 评论 -
php ajax上传视频
效果如下:php代码:public function upload(){ $file = $this->my_get_file($_FILES); if($file){ $this ->ajaxReturn(['status'=>200,'msg'=>"成功",'data'=>$file]); ...原创 2020-01-18 16:03:18 · 635 阅读 · 0 评论 -
php if condition 连写
thinkphp5 中if标签需要把<> 变成{}如:{if $vo.status eq 1 and auth("admin/Inquiry/r_forbid")} <a class="layui-btn layui-btn-xs layui-btn-warm" data-action=" {:url('...原创 2019-12-02 10:15:18 · 739 阅读 · 0 评论 -
php 根据经纬度,获取两点之间的距离
如下方法便可实现:/** * 求两个已知经纬度之间的距离,单位为km * @param lng1,lng2 经度 * @param lat1,lat2 纬度 * @return float 距离,单位为km **/ public static function getDistance($lat1,$lng1,$lat2,$lng2)...原创 2019-11-22 15:09:20 · 570 阅读 · 0 评论 -
if condition 连用
thinkPHP5.0版本不同于thinkPHP3.0版本,要把‘<>’换为‘{}’原创 2019-11-07 17:30:37 · 1958 阅读 · 0 评论 -
Tp5生成带头像二维码海报(带文字描述,居中调整)
Tp5生成带头像二维码海报(带文字描述,居中调整)三张海报中随机生成一张展现 /** * 获取随机海报 * Author: yanjie <823986855@qq.com> * Date: 2018/9/12 0012 */ public function getPoster() { $id=in...转载 2019-10-30 14:41:06 · 546 阅读 · 0 评论 -
安装laravel-admin产生不了app\Admin文件问题
httpd.conf文件里我打开了这个,现在还不确定是否是这个问题 今天公司电脑安装,确定了,不是这行的问题,就是字段长度的问题LoadModule rewrite_module modules/mod_rewrite.so照样的,php7laravel5.5都下好了,开始安装laravel-admin先是:composer require encore/laravel-admin "1....原创 2019-10-25 18:18:48 · 227 阅读 · 0 评论 -
tp5 框架使用phpexcel如何引进问题
在tp5框架中引入了phpexcel包,本地是用composer安装的,然后就把生成的phpoffice的文件夹copy到了线上,但是线上还是报错,phpexcel not found,原来是composer.json文件中有命名空间没有引入如图,这个,把这行代码复制粘贴到线上,然后运行composer install就可以了...原创 2019-10-22 19:19:40 · 266 阅读 · 0 评论 -
th5 微信小程序退款
下面是model中Refund.php<?phpnamespace app\wechatapi\model;use think\Model;class Refund extends Model{ //支付model const app_id = ''; //小程序appid const mchid = ''; //商户号 const api...原创 2019-10-18 09:26:42 · 229 阅读 · 0 评论 -
PHP 微信小程序支付api及回调
下面是控制器Pay.php<?phpnamespace app\wechatapi\controller;use app\wechatapi\controller\Base;use think\Db;use think\Controller;use \app\wechatapi\model;class Pay extends Base { //吊起微信支付 ...原创 2019-10-17 13:19:30 · 1196 阅读 · 0 评论