• 为啥要使用 migrate 迁移数据库,以及 PHP 中如何使用 migrate
  • 网上有很多教程,教你如何使用 migrate。但是我们为什么要使用 migrate,我们要知其所以然。一、我们为什么要使用 migrate我们在开发过程中,使用到了很多的版本控制器,比如git,svn,cvs 等等,代码统一性得到了很好的保证。但是在多人开发中,我们的数据库却往往出一些问题,少一个字段,线上线下数据库不统一,我的数据库被别人覆盖了... 最关键的是还没有操作日志,也没有修改数据库的时间... 所以 migrate 就解决了这些问题。migrate 可以让开发者简洁的修改和维护数据...
  •  2019-04-18  |    程成  |    21  |    0  |    PHP  |   PHP  migrate  SQL  数据库  迁移  
  • PHPExcel 解决 Uninitialized string offset: 1 报错问题
  • 使用 PHPExcel 导出 excel 时,报了一个错:Uninitialized string offset: 1 。检查了代码,定位到是用户名称出了问题。猜测是数据问题,不是代码问题。解决方法:修改 utf8 到 uf8mb4 不管用,不是 emoji 表情类问题。检查数据库数据,发现有个数据是 “= =”,目测是这个引起的。证实确实是这个符号引起的,估计是 PHPExcel 没有过滤这种关键字。/***添加一个空格,防止出现=开头,phpexcel会出现问题***/ $sheet-&g...
  •  2019-04-15  |    程成  |    18  |    0  |    PHP  |   PHPExcel  报错  PHP  offset  
  • PHP 中 CURL 参数说明 curl_setopt
  • PHP中CURL方法curl_setopt()函数的一些参数 。bool curl_setopt (int ch, string option, mixed value)curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。例如:CURLOPT_RETURNTRANSFER 选项:curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);如果成功获取的信息以文件流的形式返回,而不是直接输出。如果失败返...
  •  2019-04-12  |    程成  |    19  |    0  |    PHP  |   PHP  CURL  setopt  参数  
  • PHP回顾--堆排序
  • 一、定义堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。二、排序演示给定一个列表array=[16,7,3,20,17,8],对其进行堆排序。首先根据该数组元素构建一个完全二叉树,得到然后需要构造初始堆,则从最后一个非叶节点开始调整,调整过程如下:第一步: 初始化大顶堆(从最后一个有子节点开始往上调整最大堆)20和16交换后导致16不满足堆的性质,因此需重新调整这样...
  •  2019-04-12  |    程成  |    22  |    0  |    PHP  |   PHP  排序    
  • PHP回顾--归并排序
  • 一、定义归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。二、排序演示归并操作归并操作(merge),也叫归并算法,指的是将两个顺序序列合并成一个顺序序列的方法。如 设有数列{6,202,100,301,38,8,1}初始状态:6,202,100,301,38,8,1...
  •  2019-04-10  |    程成  |    19  |    0  |    PHP  |   PHP  排序  归并  
  • PHP回顾--选择排序
  • 一、定义选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。二、排序演示三、性能分析时间复杂度选择排序的交换操作介于 0 和 (n - 1) 次之间。选择排序的比较操作为 n (n - 1) / 2 次之间。选择排序的赋值操作介于 0 和 3 (n...
  •  2019-04-10  |    程成  |    27  |    0  |    PHP  |   PHP  排序  选择  
  • PHP回顾--插入排序(包含希尔排序)
  • 一、定义插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,是一种稳定的排序方法。希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序效果图上面解释来源于百度百科。先抛出个结论:你可以将希尔排序理解为 预排序的插入排序,后面会解释两者具体的关系。二、排序演示1、插...
  •  2019-03-01  |    程成  |    69  |    0  |    PHP  |   PHP  排序  插入  希尔  
  • PHP回顾--快速排序
  • 一、定义基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。通俗说就是数组中找出一个随机数(一般拿数组第一个数),把它插入一个位置,让它左边的数都比它小,右边的数都比它大,这样就将一个数组分成了两个字数组。然后再根据同样的方法递归,直到不能分解为止,这个时候数组就已经排好序了。二、排序演示下面演示了用第一个数字12将数组分成了两个数组。下...
  •  2019-03-01  |    程成  |    85  |    1  |    PHP  |   PHP  排序  快速  
  • PHP回顾--冒泡排序
  • 一、定义冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法,冒泡排序是稳定排序。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。效果图二、原理冒泡排序算法的原理如下:比...
  •  2019-02-26  |    程成  |    58  |    0  |    PHP  |   PHP  排序  冒泡  
  • 实例测试 PHP 对象的遍历
  • 对象的遍历,跟数组的遍历,一样!其实,只能遍历出对象的 “实例属性数据”。 foreach( $对象名  as   $key => $value){//这里就可以处理$key和$value//但注意:1,  $key表示的是对象 的 “属性”,$value是其对应值;2,  这里能够遍历出来的属性,只能是在该范围中的“可访问属性”(就是要考虑访问控制权限)}实例一:class A{     ...
  •  2019-02-26  |    程成  |    71  |    0  |    PHP  |   PHP  遍历  对象  实例  
  • 什么是 ORM,以及在 PHP 上的使用
  • 百度百科:对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换 [1]  。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。简单的说就是对象模型和关系模型的一种映射。为什么要有这么一个映射?很简单,因为现在的开发语言基本都是oop的,但是传统的数据库却是关系型的。为了可以靠贴近面向对象开发,我们想要像操作对象一样操作数...
  •  2019-02-26  |    程成  |    106  |    1  |    PHP  |   ORM  PHP  SQL  数据库  
  • PHP 判断是安卓还是ios设备
  • 下面方法中 get_device_type() 就是返回设备信息,是安卓还是IOS。这个代码是判断请求来自电脑还是手机,如果是手机的话是安卓还是IOS。<?php if(!isMobile()){     echo '请使用手机打开'; }else{     $type = get_device_type();    &nbs...
  •  2019-02-22  |    程成  |    114  |    0  |    PHP  |   PHP  安卓  Android  IOS  
  • PHP解决高并发问题
  • 首先,这篇文章不是我写的。选自于网上,我是觉得写的很不错。虽然我想标明出自哪里,但是网上很多这一个版本的文章,都标明原创。我们通常衡量一个Web系统的吞吐率的指标是QPS(Query Per Second,每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键。举个例子,我们假设处理一个业务请求平均响应时间为100ms,同时,系统内有20台Apache的Web服务器,配置MaxClients为500个(表示Apache的最大连接数目)。 那么,我们的Web系统的理论峰值QPS为...
  •  2019-02-18  |    程成  |    144  |    0  |    PHP  |   PHP  高并发  秒杀