自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

EFFORTS && VALUE

你想拥有你从未有过的东西,就必须去做你从未做过的事情

  • 博客(74)
  • 资源 (3)
  • 收藏
  • 关注

原创 laravel多条件查询(and,or嵌套查询)

说明在日常开发中,经常会需要写多条件的数据库查询语句。在使用框架的情况下,单纯使用原生sql查询会导致结果与model无法对应,也就没有办法使用框架的一些便利的方法对结果集进行处理。尤其是laravel提供了非常多的对查询结果集进行处理的工具。所以最好是使用laravel提供的ORM进行多条件的数据库查询。问题比如需要执行这样一条sql语句select * from ...

2018-05-18 15:02:46 28739 1

翻译 php的psr规范(accept)

官网地址ACCEPT(公认的)psr0:自动加载规范(旧)这个规范可以抛弃了psr1:基本编码规范php文件必须以<?php或<?=标签开始php文件必须是utf-8无BOM编码格式一个源文件建议只用作定义类、函数、常量等声明,或者其他产生从属效应的操作(如:输出信息,修改配置文件等 命名空间和类必须符合自动加载规范类的命名必须遵守以大写开头...

2018-04-07 14:01:00 515

原创 《最详细的docker+php开发环境教程》(六) nginx容器

配置dockerFile文件打开docker/nginx/dockerFile,编辑内容如下FROM nginxRUN mkdir /www && mkdir /nginx && mkdir /nginx/log构建镜像docker build -t your-docker-path/nginx develop/nginx指定ng...

2018-03-31 17:59:15 1398

原创 《最详细的docker+php开发环境教程》(五) 搭建开发环境概要

环境部署方式的优缺点环境部署需要很多东西,也是开发过程与项目上线必须要考虑的一个重要环节,随着项目的迭代更新,系统会越来越庞杂,其所依赖的环境也会需要经常的变动更新,一个基本的项目就至少需要nginx、mysql、php、redis等服务。因此,开发时团队的开发环境的统一就是一个很骚的事情。随着项目越来越复杂,会导致以下一些问题: 1. 依赖的服务越来越多,本地开发环境的搭建成本越来越高 ...

2018-03-30 22:19:59 2449

原创 《最详细的docker+php开发环境教程》(四) docker容器

image 文件生成的容器实例,本身也是一个文件,称为容器文件。也就是说,一旦容器生成,就会同时存在两个文件: image 文件和容器文件。使用docker的过程差不多就是操作image和container的过程,他们大致关系如图: 其中dockerFile会另外再说。查看容器$ docker container ls [OPTIONS]OPTIONS: -a...

2018-03-29 21:38:51 2183

原创 《最详细的docker+php开发环境教程》(三) docker镜像

介绍 Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。 image 是二进制文件。实际开发中,一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设...

2018-03-26 14:47:03 4576

原创 《最详细的docker+php开发环境教程》(二) mac下docker安装

由于本人只用过mac安装,所以本篇文章只介绍mac下的安装过程,但是docker的配置在各个系统都是一样的,所以使用什么系统没啥关系。系统要求Docker for Mac 要求系统最低为 macOS 10.10.3 Yosemite。如果系统不满足需求,可以安装 Docker Toolbox。安装homebrew安装$ brew cask install docke...

2018-03-26 11:36:02 3658

原创 《最详细的docker+php开发环境教程》(一) 初衷以及docker介绍

初衷最近面试的时候都有被问到有没有使用过docker,由于平时vagrant使用起来也很便捷,而且也觉得docker是跟vagrant区别不大的东西,就一直没有研究docker。然而,一个东西能越来越火总是有道理的,虽然我不知道,但不影响我去研究它啊。这个专栏有几个目的,一是研究的过程顺便做个笔记巩固知识,二是记录一些学习过程中遇到的一些坑,三是希望广大phper能在研究docker时...

2018-03-26 10:38:29 1466

原创 PHP对二维数组排序的几种方式

方法一function multiSort($arr, $field, $sort = SORT_ASC){ array_multisort(array_column($arr, $field), SORT_ASC, $arr); return $arr;}方法二:function multiSort($arr, $field, $sort = SORT...

2018-03-15 21:01:58 2199

原创 isset($var)、empty($var)、($var)之间的区别

php内置了很多对变量进行判断的方式,有几种常用的方式的判断结果容易混淆issetisset是当且仅当变量为NULL才会返回false,否则返回true,与is_null()完全相反有三种情况下变量为NULL 1. 赋值为NULL 2. 未被赋值 3. unset()isset和is_null还是有区别的:isset是语句,is_null是函数,有关语句...

2018-03-15 20:37:03 424

原创 PHP并发读写文件的解决方案

在并发高的情况下,操作同一个文件会导致数据错乱,所以需要在操作文件时进行一些特殊处理,下面总结一下几种解决方案。方案一:使用flock函数对文件加锁/* * flock(file,lock,block) * file 必需,规定要锁定或释放的已打开的文件 * lock 必需。规定要使用哪种锁定类型。 * block 可选。若设置为 1 或 true,则当进行锁定时阻挡其...

2018-03-07 19:02:20 1161

原创 php文件夹遍历的几种方法

函数function dirTree(){ if(!is_dir($path)) return []; $files = []; $dir = opendir($path); while($file = readdir($dir)) { if($file == '.' || $file == '..') co...

2018-03-01 11:34:27 865 1

原创 MySQL存储引擎介绍

存储引擎特性 特点 MyIsam BDB Memory InnoDB Archive 存储限制 没有 没有 有 64TB 没有 事务安全 支持 支持 锁机制 表锁 页锁 表锁 行锁 行锁 B树索引 支持 支持 支持 支持 哈希索引 支持 支持

2017-12-05 13:43:14 229

原创 apache压力测试工具ab详解

1. 命令:ab [options] url参数列表-A <username>:<password> : 用于提供服务器身份验证信息,用户名和密码使用:隔开,发送的字符串采用base64编码-c <concurrency number> : 一次模拟的请求数(即并发数),默认为1,不能比-n大-C Cookie-name=value : 可重复的参数,包含cookie信息-d : 隐藏“per

2017-11-24 12:07:58 705 1

原创 windows下Fiddler4抓取iPhone中app的https请求

安装fiddler4自行百度下载安装即可。fiddler配置抓取http请求打开fiddler,选择Tools —>Options 选择Connections —> 勾选Allow remote computers to connect 此时,就可以对手机进行http请求的抓包了。 但是要抓取https请求,还需要另外的一些配置。fiddler配置抓取https请求选择Tools —>Optio

2017-11-22 17:01:40 3543 4

原创 计算机内存对数字的存储方式——原码、反码、补码

计算机在存储数字时,已最高为作为数值符号进行存储,0表示正数,1表示负数原码 所谓原码,就是将数值转化为二进制+1: 0001

2017-11-01 16:22:38 1887

原创 阿里云centOS系统配置SVN服务

安装subversion直接使用centos的yum命令yum install subversion安装完毕后查看svn版本,测试是否安装成功svn --version创建svn仓库规划好一个目录作为svn的仓库。然后执行以下命令创建仓库svnadmin create /svn配置svn仓库进入仓库目录,使用`ls`命令可以下面这些文件# lsconf db format hooks l

2017-10-02 12:56:00 332

原创 phpstorm增加swoole自动提示

安装完swoole扩展后,准备敲个例子尝试一下,发现所有的swoole函数全部反白,没有代码提示,看起来很难受,搜索了一番,总算是解决掉这个问题了。下载swoole-ide-helper-engit clone https://github.com/eaglewu/swoole-ide-helper.git 打开PHPStorm 右键External Libraries,选择Configure

2017-09-28 23:38:25 13791

原创 MAMP配置swoole

1. pecl安装pecl安装方式很简单,直接使用php的pecl命令即可。 由于我的环境使用的是mamp pro,在命令行中直接使用php命令调用的是mac自带的php,所以想把swoole扩展安装到正确的地方就需要找到mamp中对应的php。 mamp中的php路径如下:/Applications/MAMP/bin/php该目录下有所有的mamp所包含的php版本,找到你当前使用的php版本

2017-09-28 23:12:07 961

原创 linux工作与进程管理

将工作丢到后台执行:&将工作丢到后台并暂停: [ctrl+z]查看后台工作jobs [-lrs] -l:除了列出job number与命令串之外,同时列出PID -r:仅列出正在后台run的工作 -s:仅列出正在后台暂停的工作 将工作拿到前台来处理fg %jobnumberfg表示foreground让工作在后台的状态变为运行中bg %jobnumber管理后台工作kill

2017-09-25 23:05:59 252

原创 linux软件安装——RPM与YUM

RPM安装1. 安装(install)rpm -ivh package_name -i:install的意思 -v:查看详细的安装信息 -h:以安装信息栏显示安装进度 其他参数 可执行的参数 使用时机 危险性 –nodeps 当发生软件属性依赖问题无法安装,但执意要安装 会造成软件无法正常使用 –replacefiles 如果安装过程出现了“某

2017-09-24 17:41:49 376

原创 linux软件安装——编译安装

1. tarball介绍tarball其实就是将软件的所有源码文件以tar打包并进行压缩后的文件。里面的文件通常为: 1. 源代码文件 2. 检测程序文件(一般为configure或config) 3. 软件的简易说明说明与安装说明(README或INSTALL)2. 所需工具gcc或其他编译器make软件3. 安装流程 说明:安装流程以tarball包中的README或INSTAL

2017-09-24 15:09:01 492

原创 C实现简单列表

C primer快看完了,今天自己试着实现书上简单列表的例子,遇到了一些坑,稍微总结一下。在C里面,数组是内存块,通过下标访问这些内存块。因此,在C里面的数组只能使用整数且有序的键值,像PHP中那样简单便捷的关联数组在C中是不存在的。所以,想要处理复杂的数据集的时候,就需要使用数据结构,链表就是其中之一。

2017-09-16 21:09:03 5206

原创 C——指针总结

1. 介绍指针是一个值为内存地址的变量 ptr = &var; //将变量var的地址赋给变量ptr,变量ptr就是指向变量var的指针 而对于ptr和&var来说,ptr是一个变量,&var则是一个常量,变量可以被赋值改变,而常量不可以2. 获取值当得到一个指针时,就可以得到这个指针所在的值var1 = *ptr //此时var1==var符号*,叫间接运算符,也叫取值运算符

2017-08-31 23:46:32 292

原创 C——数组总结

C的数组在声明时必须指定长度int arr[5]; //声明一个长度为5的int型数组同一个数组的元素都是同一种数据类型声明数组的同时可以初始化数组元素int arr[5] = {1, 2, 3, 4, 5};未初始化的数组在输出时其值是不定的初始化数组元素小于数组长度时,多余的数组元素会被初始化为0初始化数组时,可以省略数组的长度,编译器会自动根据元素个数匹配数组的长度可以声明数

2017-08-31 22:54:39 325

原创 C——printf和scanf函数

printf(“format_string”, var1, var2 [,var3…]) 返回值:输出的字符数转换说明符 转换说明 输出 %a 浮点数,十六进制,p-记数法 %A 浮点数,十六进制,P-记数法 %c 一个字符 %d int,十进制 %i int,十进制 %u unsigned int %o int,八进制 %#o

2017-08-31 09:45:43 491

原创 windows下安装php扩展

1. 介绍php本身就带有很多各种各样的扩展,如gb2,mysql,curl等等,这些扩展可以满足日常开发的大部分需求,但是,当需要使用php本身扩展不支持的功能的时候,就需要自己安装扩展了,比如当使用redis时,就需要自己安装redis扩展。2. windows下安装扩展确定php版本,运行方式(nts还是ts),平台支持(vc9,vc11,vc14)以及cpu架构(x64,x86) 可以

2017-08-25 15:13:01 1921

原创 windows下安装redis

1. 介绍Redis是Remote Dictionary Server(远程数据服务)的缩写,是一款由C语言编写的内存高速缓存数据库2. 特点支持丰富的数据结构,比如 String list(双向链表) hash set(集合) sorted set(有序集合) zset可持久化(会定时存储数据到硬盘中),保证了数据安全3. 应用场景[Sort Set]排行榜应用,取top n操作

2017-08-25 14:22:19 429

原创 每个程序员半小时内必须解决的5个编程问题——php实现

function te3($arr, $formula, $result, $divisors=['+'.'-','']){ if(count($arr) == 1){ $formula .= $arr[0]; if(te3_cal($formula, $result)){ echo $formula .''; }

2017-08-25 11:48:14 498

原创 GIT——分支操作

1. 创建分支git branch <branch_name> git branch命令会创建一个分支,但不会自动切换到新创建的分支2. 切换分支git checkout <branch_name>git checkout -b <branch_name> //新建并切换分支3. 合并//分支合并git merge <branch_name> 将branch_name分支的内容合并到当

2017-08-10 15:24:43 254

原创 PHP——指定顺序的排序

问题描述遇到一个需求,需要对一个数组按指定顺序进行排序,如$sort_rule = [5,7,3,1,8,2];$arr = [1,2,3,5,7,8];//需求,将数组$arr以$sort_rule指定的顺序进行排序解决方式1$a = array_intersect($sort_rule,$arr); $b = array_diff($arr,$sort_rule);$re = arra

2017-08-07 19:03:21 3100

原创 GIT——基本配置

git的配置文件 git的配置文件一般位于三个地方 1) /etc/gitconfig //全局配置 2) ~/.gitconfig 或 ~/.config/git/config //用户个人的配置 3) project/.git/config //项目中的配置文件配置用户信息git config --global user.name 'your name

2017-08-05 11:37:20 340

原创 PHP的ftp操作

1. 连接ftp服务器false|handle ftp_connect(string $host, int $port); 该函数接收ftp服务器主机名与端口号,端口号可选,返回一个ftp句柄,连接失败返回false2. 登陆ftp服务器bool ftp_login(ftp_handle $conn, $user, $pwd); 该函数需要一个ftp的连接句柄,用户名与密码,登陆成功返回t

2017-08-03 00:20:33 683

原创 mysql5启动报错:本地计算机 上的 MySQL 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止

错误描述:mysql5.7安装完之后,在系统服务中启动mysql服务,启动失败,并报错。报错信息如下: 本地计算机 上的 MySQL 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。错误解决:删除原来的服务 mysqld –remove mysql清空mysql安装目录下的data文件夹,如果没有,就创建一个空data文件夹初始化mysql mysqld –initi

2017-08-01 10:02:54 646

原创 mamp——搭建PHP环境

下载mamp点我下载配置mamp打开mamp pro配置端口如下图:只要点击箭头所指的按钮就可以了。ps:需要注意所设置的端口没有被占用,如果被占用了就手动设置其他的端口。选择php版本配置虚拟主机1.打开apache配置文件2.加入如下的配置命令,引入虚拟主机配置文件Include /Applications/MAM

2017-07-29 19:12:35 1016

原创 鸟哥Linux学习之——用户管理

一、新增用户命令:useradd [-u UID] [-g 初始用户组名] [-G 次要用户组名] [-mM] [-c 说明栏] [-d 主文件夹绝对路径] [-s shell] [-e 'YYYY-MM-DD'] [-f] [-D] 用户账号名参数:-u:为用户指定UID-g:指定初始用户组-G:指定用户加入的其他用户组-m:强制!必须创建用户主文

2017-07-16 16:00:31 576

原创 鸟哥Linux学习之——管道命令

管道命令简单的理解就是将前一个命令的结果,作为后一个命令参数进行进一步的处理注意:1、管道命令仅会处理standard output,即标准输出,对于标准错误输出(standard error output)会进行忽略2、管道命令必须要能够接受来自前一个命令的数据成为standard output继续处理才行一、选取命令:cut、grep1、

2017-07-16 15:58:04 772

原创 git问题与push流程

今天在github上添加远程库的时候,出现了问题。问题描述: error: src refspec master does not match any. error: failed to push some refs to ‘https://github.com/xxxx/itp.git’错误原因: 在创建本地库之后,没有add文件到本地库中,本地库为空,所以push失败解决办法: 将项目目

2017-07-09 18:52:57 557

原创 PHP类的自动加载与命名空间及use的理解

今天写一个demo,遇到一个问题,平时框架用多了,下意识的就以为use就能引入类,导致一直跑不成功,后来才意识到use与引用类并不是一回事。use只是指定了要使用哪个命名空间下的类,但是并不会引入类,类的引用还是需要使用include或require。这里记录一下这次事件的总结,加深一下印象。类的引用创建一个类文件ClassA.class.phpnamespace AreaA;class Clas

2017-07-03 23:58:24 4220

原创 鸟哥Linux学习之——数据流重定向

一、标准输出与标准错误输出在说明数据流重定向之前,需要先了解几个概念,即“标准输出(standard output)”和“标准错误输出(standard error output)”。简单来说,标准输出是指命令执行后所回传的正确的信息,而标准错误输出为命令执行失败后所回传的错误信息。举个例子:标准输出:cat后会将文件的内容显示出来                  

2017-07-02 17:33:23 568

算法谜题(算法谜题)

算法是计算机科学领域最重要的基石之一。算法谜题,就是能够直接或间接地采用算法来加以解决的谜题。求解算法谜题是培养和锻炼算法思维能力一种最有效和最有乐趣的途径。 本书是一本经典算法谜题的合集。本书包括了一些古已有之的谜题,数学和计算机科学有一部分知识就发源于此。本书中还有一些较新的谜题,其中有一部分谜题被用作知名IT企业的面试题。全书可分为4个部分,分别是概览、谜题、提示和答案。概览介绍了算法设计的通用策略和算法分析的技术,还附带有不少的实例。谜题部分将谜题按照简单、中等难度和较难三个层级分别列出。提示部分依次给出谜题提示,帮助读者找到正确的解题方向,同时仍然为读者留下了独立求解的空间。答案部分则给出了谜题的详细解答。 本书可以为对算法感兴趣的广大读者提供系统丰富而实用的资料,能够帮助读者提升高阶算法思维能力。本书适合计算机专业的高校教师和学生,想要培养和训练算法思维和计算思维的IT专业人士,以及在准备面试的应聘者和面试官阅读参考。

2014-03-06

空空如也

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

TA关注的人

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