自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 详解php的垃圾回收机制

首先php是由C语言编写,C语言是强类型语言,每个变量都有固定的类型,但是php变量可以保存任何数据类型,是怎么实现的呢?zend引擎中是怎么可以做到一个变量保存任何的数据类型?每一个变量定义的时候都会保存在一个叫zval的容器中struct_zval_struct{ zvalue_value value; //变量的值,这个成员变量是一个zvalue_value联合体,php可以...

2019-11-08 15:04:39 250

原创 docker中php环境安装grpc

1.下载2.移动到/home/work/app/3.解压4.切换到目录下5.linux源码安装的3步: 配置(./configure) 编译(make) 安装(make install)./configure 是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。这一步一般用来生成 Makefile,为下一步的编译做...

2019-08-21 10:54:45 1708

原创 static关键字 self 后期静态绑定 抽象类 接口 final关键字

static 声明类属性或方法为静态,就可以不实例化类而直接访问1.声明方法: 如果没有修饰符修饰默认为publicclass Person{ //声明静态属性 public static $name = 'foo'; //声明静态方法 public static function say() { return self::$name; ...

2019-07-11 16:08:58 253

原创 通俗易懂面向对象的三大特点

三大特性:封装、继承、多态我们定义一个类时,实际上是把一类事物共有的属性和行为提取出来,形成一个物理模型模板,这种研究问题的方法称为抽象。一、封装封装就是把抽取出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有被授权的操作(方法)才能对数据进行操作。php使用三种访问控制修饰符进行保护,如果没写修饰符默认为publicpublic 表示全局,本类内部,类外部,子类都...

2019-07-11 11:37:55 220

原创 php对象的序列化和反序列化

对象的存储和传输:在实际项目应用中,有些任务在一两个页面是无法完成的,由于变量到脚本执行完毕就释放,我们本页所生成的对象想在其他页面使用时便碰到了麻烦。如果需要将对象及其方法传递到我们想使用对象的页面,比较简单可行的方法就是将对象序列化后存储起来或直接传输给需要的页面,另一个方法就是将对象注册为session变量。一、在php中,序列化用于存储或传递php的值的过程中,同时不丢失其类型和数据。...

2019-07-05 16:33:20 1343

原创 php的控制反转和依赖注入

1.判断代码的好处就是高内聚低耦合高内聚就是软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。低耦合就是每个模块之间耦合度要低,如果要修改,修改一点点就可以而不是修改一大部分。而在代码中体现出来的设计模式就是依赖注入和控制反转2.依赖注入:就是A类所依赖的B类C类等以属性或者构造函数等方式注入A类而不是直接在A类中实例化。例如:class A{ p...

2019-07-04 17:40:13 430

原创 详解php的反射机制

1.反射是什么?反射是程序可以访问、检测和修改它本身状态或行为的一种能力。就像将我反射给她,她就有了我的行为能力。2.php具有完整的反射API,添加了对类、接口、函数、方法或者扩展进行反向工程的能力。反射API提供了方法来取出函数、类和方法中的文档注释。php的反射机制能拿出类里面的属性方法,private和protected也可以。3.具体实现:php提供了相应的调用API,也就是方法。...

2019-07-04 16:47:52 220

原创 未知小知识

1.php数据库连接池php的数据库连接池一直以来是个难题,很多从php语言转向java项目,大多因为java有更好的连接池实现。php的MySql扩展提供了长连接的API,但在PHP机器数量较多,规模较大的情况下,mysql_pconnect非但不能节约mysql资源,反而会加剧数据库的负荷。假设有100台php的应用服务器,每个机器启动100个apache或者fpm进程(上篇php-f...

2019-07-04 10:39:04 133

原创 详解递归原理以及无限极分类代码实现

1.无限极分类(1)无level层级<?php$arr = array( array('id'=>1,'name'=>'电脑','pid'=>0), array('id'=>2,'name'=>'手机','pid'=>0), array('id'=>3,'name'=>'笔记本','pid'=>1), ...

2019-07-02 19:50:35 258

原创 详解php数组排序函数

1.数组排序函数

2019-06-25 17:16:53 141

原创 sql语句关键字详解

先使用题目进行引入1.某网站商品的购买订单表为orders,结构如下:id 子增iduser_id 购买者idproduct_id 商品idtime 购买时间price 订单总价创建表语句create table orders( id int(11) unsigned NOT NULL A...

2019-06-25 15:54:13 335

原创 一些编码解码函数

1.base64_encode ( string $data ) : string使用 MIME base64 对数据进行编码使用 base64 对 data 进行编码。设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主 体。数据要比原始数据多占用 33% 左右的空间。base64_decode()对使用MIME base64编码的数据进行解码,返...

2019-06-20 19:42:20 995

原创 详解cookie和session原理

http协议是webserver服务端和client客户端相互通信的协议。它是一种无状态协议。所谓无状态就是指不会维护http请求数据,非持久的,即此次连接无法得到上次连接的状态。这样,用户从A页面跳转到B页面会又一次发送一此http请求,而服务端在返回相应的时候是无法获知该用户在请求B页面之前做了什么。为了将请求进行关联,做一些分析或者返回一些该用户信息等,会话技术cookie和session技...

2019-06-20 18:15:21 501

原创 http和https详解

一、HTTP1.http是超文本传输协议。被用于在web浏览器和网站服务器之间传递信息,http协议以明文方式发送内容,不提供任何方式的数据加密。如果攻击者截取web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。存在不足:通信使用明文(不加密),内容可能被窃;不验证通信方的身份,因此有可能遭遇伪装;无法证明报文的完整性,所以有可能已遭篡改。为了统一解决上述问题,在http上加入...

2019-06-05 17:48:08 205

原创 详解事务及事务故障种类以及恢复技术

一、事务的基本概念1.事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。例如,在关系数据库中,一个事务可以是一条sql语句、一组sql语句或者整个程序。(一般一个程序中包含多个事务)2.事务的开始和结束可以由用户显式控制,如果用户没有显式地定义事务,则由数据库管理系统按默认规定自动划分事务。在SQL中,定义事务的语句一般有三条:BEGIN TRANS...

2019-06-04 11:25:19 6053

原创 mysql并发控制以及有关锁

1.mysql以文件的形式存在硬盘上redis存在内存中2.mysql的脏读 不可重复读 幻读3.mysql乐观锁 悲观锁乐观锁:mysql可以承载8-10万的并发总是假设最好的场景,每次去拿数据的时候认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有取更新这个数据,可以使用版本号机制和cas算法实现。乐观锁适用于多读的应用类型,这样可以提高吞吐量。悲观锁:...

2019-05-31 18:48:32 441

原创 curl和wget详解

直接在linux命令行下载文件的两个工具 wget和curlcurl在web请求方面以及协议http https等协议方面比较擅长,在于模拟提交web数据,POST|GET请求,调试网页。wget在支持ftp和recursive所以下载文件方面擅长curl优势1.多功能工具,可以下载内容同时也可以做其他2.技术支持库是libcurl,这就意味着curl可以基于libcurl库中编写图形环境...

2019-05-16 15:30:20 6051 1

原创 ubuntu16.04下安装zsh并修改配置

简单说明下shell bash zsh shshell是一个用C语言编写的程序,是一种脚本编程语言,是一个连接内核和用户的软件,是用户使用Linux的桥梁。shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。常见的shell(连接内核和用户的软件)有sh,bash,zsh,csh,tcsh,ash1.备份/etc/passwd2.安装zs...

2019-05-16 14:07:38 8426 2

原创 详解mysql字段类型int(4) int(10)等区别

一、mysql字段类型大致可以分为:数值、日期/时间、字符串数值类型:tinyint,smallint,mediumint,int/integer,bigint,float,double,decimal日期/时间类型:datetime,date,timestamp,time,year每个时间类型有一个有效值范围和一个零值,当指定不合法的mysql不能表示的值时使用零值TIMESTAMP类...

2019-05-10 18:07:27 3362

原创 php内存溢出情况

报错情况:PHP Fatal error: Allowed memory size of 268 435 456 bytes exhausted1.上传excel文件时,出现内存溢出的情况在文件中分配大点的内存设置内存治标不治本,而且服务器的php.ini有时候是很难改的。所以在文件中设置。但是只有php.ini中的安全模式safe_mode开启时才可以设置ini_set('memory_l...

2019-04-18 14:14:07 4493

原创 设计模式之单例模式详解

单例模式:即只有一个实例。确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。1.为什么使用单例模式?(1)php的应用主要在于数据库的应用。一个应用中存在大量的数据库操作。在使用面向对象的开发时,如果使用单例模式,则可以避免大量的new操作消耗的资源,还可以减少数据库连接这样就不会出现too many connections情况(2)如果系统中需要一个类来全局控制某些配置信息...

2019-04-10 16:47:23 100

原创 mysql中sql语句中的cast()函数、subst()函数、case when else then函数

1.cast()函数CAST(expression AS data_type) 用于将某种数据类型的表达式显式转换为另一种数据类型expression : 任何有效的sql表达式AS : 用于分隔两个参数,在as之前是要处理的数据,as之后是要转换的数据类型data_type : 目标系统所提供的数据类型,包含 bigint char() varchar() date datetim...

2019-03-27 17:01:18 1758

原创 win10下安装ubuntu

2019-03-17 18:58:15 238

原创 php后台接口打印

今天找了一下午的坑:各位是不是习惯性的按ctrl+s,但是今天我就栽到了这个上面按ctrl+s时不小心给一个底层方法加了个s本来是这样Yii::$app-&gt;request-&gt;getHeaders();加了后Yii::$app-&gt;request-&gt;getHeasders();没看出来,然后前台一直打印null打印的信息还是通过接口传入前台,前台获取参数报错例...

2019-02-26 18:49:31 2027

原创 php中数据表中int类型字段名称使用

在代码编写过程中,为了不使用死代码,所以会使用常量或者变量的形式来写。场景:数据表字段中存的整型 0 1 2 3 4那么为了方便改动(添加或修改删除等),不需要改动很多地方,这时候就定义一些属性或者写入配置文件中,这样会方便很多const OPERATE_CHECK = 3;const OPERATE_CONFIGURE = 4;const OPERATE_SHARE = 5; ...

2019-02-25 19:11:38 347

原创 php上传文件$_FILES注意点

1.页面上传需注意:&amp;lt;form action=&quot;&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;&amp;gt;......&amp;lt;/form&amp;gt;from表单中对于enctype属性值的解释该属性规定在发送到服务器之前应该如何对表单数据进行编码值描述appl

2019-02-15 18:07:09 404 1

原创 gitlab生成ssh

为什么要生成sshgitlub github上面项目地址有https和ssh两种协议使用https协议每次拉取代码或者push代码都需要输入用户名和密码使用ssh协议拉取,如果本地生成了ssh并配置到gitlab上面就可以不需要输入用户名和密码具体操作:1.首先查看是否生成SSH Keyls -al ~/.ssh2.若没有则生成ssh-keygen -t rsa -C &quot;your...

2019-01-18 16:06:50 909

原创 mysql中取出json字段技巧

有时候会将一些信息以json形式存在数据库中,如果太长的话,在取的过程中sql运行会比较慢,如果只取某些键值的话会比较浪费mysql中使用函数JSON_EXTRACT()±—±---------------------------------------------------------------+| id | data ...

2019-01-12 13:27:46 29009 2

原创 php根据一个下载链接保存相应文件,并从csv/excel中获取的数据进行处理为标题对应值的形式

foreach($result as $k =&amp;amp;gt; $item){ if($k &amp;amp;gt; 0){ foreach($result[0] as $row =&amp;amp;gt; $title){ $newResult[$k][$title] = $item[$row]; } }}

2019-01-03 11:37:15 500

原创 ubuntu16.04安装高版本navicat以及安装后试用到期解决方法

安装地址:http://www.formysql.com/xiazai.html1.下载后解压cd //到达家目录cd 下载 //到达下载的文件夹下tar zxvf navicat120_premium_cs_x64.tar.gz2.将解压后的navicat移动到/opt(安装的软件尽量放这下面)下,并进入打开mv ./navicat120_premium_c...

2018-12-20 10:08:21 2840

原创 ubuntu16.04安装sublime3并解决不能输入中文

1.下载:http://www.sublimetext.cn/3注意:外网的sublime已经停止,需要进入国内的sublime,即上面的网址2.上面的写成具体wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -sudo apt-get install apt-transp...

2018-12-19 17:56:20 210

原创 详解git使用全过程

ubuntu16.04系统中登录的账户是mi1.拉取代码:(git clone下来是masterh主分支的代码) git clone ********** 文件属于用户mi sudo git clone ********** 文件属于用户为root(sudo就是使用了root权限) 注意:如果使用了sudo 即文件归root账户的...

2018-12-17 16:44:48 175

原创 ubuntu中的安装的docker环境重启php环境

开启或者重启dockersudo docker start/restart miren登入dockersudo docker exec -it miren /bin/bash到安装的php目录下重启php提示要在work下,所以切换到work下重启php...

2018-12-13 11:41:06 1231

原创 ubuntu16.04开机后,鼠标键盘失灵解决方法

故障描述:ubuntu(16.04) 系统开机后,鼠标键盘失灵,没有任何反应,操作不了,也进不了系统,重启也不行。故障原因:在系统上安装了类似桌面主题或者格式的软件,导致ubuntu的桌面环境被毁掉了,即系统的ubuntu-desktop找不到路径了。解决方法:1. 强制重启电脑(按电源键),同时一直按“Esc”键,进入GRUB界面2. 选择recovery mode,按Enter进...

2018-12-13 09:51:16 22484 5

原创 ubuntu16.04安装VirtualBox

ubuntu16.04版本安装VB必须在官网下载对应版本才可以安装成功如果使用系统里面的自带的安装软件VB就会一直报错,报错信息:无法为虚拟机开启新任务安装完成VB后,新建系统有了系统进行安装...

2018-12-11 20:32:35 897

原创 php中换行符PHP_EOL

PHP_EOL是php已经定义好的变量,代表php的换行符。这个变量会根据平台而变。php使用换行符可以提高代码可移植性。mac换行用/runix系列换行用/nwindows系列换行用/r/n比如有的程序想把文件中的所有行合成一行:1.函数str_replacestr=strreplace(array(′/r′,′/n′,′/r/n′),′′,str = str_replace(ar...

2018-12-10 16:07:48 937

原创 举例mysql中group_concat()函数使用

group_concat([distinct] 要连接的字段 [order by asc/desc 排序字段] [separator ‘分隔符’])

2018-12-06 17:43:34 122

原创 linux下各种文件解包打包命令

将project_a文件夹下的文件打包成project.*各种类型将各种类型包filename.*解压.tar解包:tar xvf filename.tar打包:tar cvf project.tar /project_a.gz解压1:gunzip filename.gz解压2:gzip -d filename.gz压缩:gzip project.gz /project_a.b...

2018-12-06 10:53:11 1972

原创 php判断一个值是否在数组中

使用php小技巧:判断value在不在数组value在不在数组value在不在数组array中?方法一:in_array(value,value,value,array)注意:in_array(’’,’’,true)还有第三个参数,为true时还会判断数据类型方法二:将数组使用array_flip()进行键值反转,然后if(isset(array[array[array[value])){}...

2018-12-05 16:22:38 9511 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除