剑指offer试题(PHP篇二)

6.旋转数组的最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0 ... »

浅谈PHP异常处理

1、PHP中异常的独特性 PHP中的异常的独特性,即PHP中的异常不同于主流语言C++、java中的异常。在Java中,异常是唯一的错误报告方式,而在PHP中却不是这样,而是把所有不正常的情况都视作了错误进行处理。这两种语言对异常和错误的界定存在分歧。什么是异常什么是错误,两种语言的设计者存在不同的 ... »

PHP定义字符串的四种方式

1、简介 在PHP中这门语言中,因为是弱类型语言,因此使用变量时不需提前定义即可使用。 我们在使用php进行开发的时候,大多数使用双引号、单引号进行定义字符串。既然有这两种方式,那么他们之间肯定是有区别的。 并且,除了单双引号定义字符串这两种方式外,php还增加了heredoc和nowdoc这两种语 ... »

[HTTP] PHP 实现 HTTP Server 原理

单进程服务器简陋版: HTTP 底层基于 TCP,所以 socket 地址指定为 tcp 协议没有任何问题;stream_socket_server 功能相当于执行了 socket => bind => listen,stream_socket_accept 阻塞等待 client 连接,并设置了超 ... »

PHP实现QQ登录的开发教程

第三方登录,就是使用大家比较熟悉的比如QQ、微信、微博等第三方软件登录自己的网站,这可以免去注册账号、快速留住用户的目的,免去了相对复杂的注册流程。下边就给大家讲一下怎么使用PHP开发QQ登录的功能。 1、进入QQ互联官网进行登录(可以使用自己的QQ或者重新注册一个QQ号作为咱们项目的单独QQ进行管 ... »

Linux PHP多版本切换 超简单办法

今天在帮别人安装一个不知所谓的东西时碰到,三版本的PHP环境,我感觉那个人也是666哒,他使用的是AMH快速开发工具 有图有真相!!! 然后就顺便写下怎么快速,简便切换php版本 首先:find命令找下php在哪里先 #find / -name php 第一步:ln命令(百度下大把资源)主要用来创建 ... »

PHP正则式PCRE

1)cat(arcat|erpillar|)匹配 ”cat”, “cataract”, “caterpillar” 中的一个。 2)一次性子组(非捕获子组)和后瞻断言结合使用来指定在目标字符串末尾的有效匹配,比如^(?>.*)(?<=abcd)相对于^.*abcd$更为高效。 3)条件子组(非捕获子... ... »

thinkphp5使用redis实现秒杀商品活动

如题,废话少说贴码为上↓ 使用apache压力测试工具AB抢购商品 AB压力测试,模拟多用户秒杀商品-r 指定接收到错误信息时不退出程序-t 等待响应的最大时间-n 指定压力测试总共的执行次数-c 用于指定压力测试的并发数例:秒杀商品,60秒内发起3000个请求,并发600次,接口地址 http:/ ... »

我遇到过的面试题及答案(一)

1、<?php echo count(strlen(“http://php.net”)); ?>的执行结果是? 答案:1 讲解:count(var)是用来统计数组或对象的元素个数的。当var是null或者空数组时,结果为0。如果var是普通变量,则返回1。正常情况下返回var中的元素或属性个数。 2 ... »

PHP使用微软认知服务Face API

下面主要介绍使用PHP调用微软最新推出的认知服务中的 "人脸识别" 的调用方法。 实验环境: IDE:Eclipse for PHP Developers Version: Neon.1 Release (4.6.1) Server:WampServer Version 2.5 HttpClient ... »

Yii2.0源码阅读-一次请求的完整过程

Yii2.0框架源码阅读,从请求发起,到结束的运行步骤 其实最初阅读是从 这个类开始看起,不断的寻找这个类中方法的调用者,最终回到了 ,那就从头开始看。 1、Nginx nginx作为web服务器,时刻监听着80端口,等待接收用户请求,并转发给php进行处理,Yii2.0框架使用了统一的入口脚本: ... »

《深入解剖Yii2框架》前言

写代码需要站在巨人的肩膀上,将主要精力集中在自己所需要实现的业务上面,避免反复搭建基础服务,重复造轮子。PHP框架就是这样一些巨人的“肩膀”,使得我们“站”得更高,“看”得更远。像PHP本身有着不断迭代和升级的历史一样,PHP框架也有着自己的发展历史,从简单到复杂,从低级到高级,从面向过程到面向对象 ... »

自定义MVC框架---第二章

模型层的封装 模型层封装的原则 介绍: 模型层,也就是Model这一层,用来封装对数据库操作的封装 由于现在主流的编程思想还是OOP面向对象编程,也就是说项目的基本单位就是一个一个类文件,那么如何使用面向对象思想封装对数据库操作呢? 一张数据表对应一个模型类,然后将数据表的增删改查操作,封装到模型类 ... »

冒泡算法给0~9随机n位数字排序

<?php //产生5位0~9的随机数 function getRand($begin=0,$end=9,$limit=5){ $rand_array=range($begin,$end); shuffle($rand_array);//调用现成的数组随机排列函数 return array_slic ... »

TPFrame框架之robot模块的基本使用

经过几天的努力,基本功能版已经完成,有待大家验证... robot插件主要的功能是帮助我们写部分代码的基本,目前阶段已经实现后台curd数据管理的基本操作,更多功能待续... 1、首先下载robot插件 2、然后把下载下来的文件解压出来,放进/addon/application/下面,与editor ... »

php 使用beanstalk 消息队列

Beanstalkd 消息队列 一.基本信息Beanstalkd,一个高性能、轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web应用系统的页面访问延迟,支持过有9.5 million用户的Facebook Causes应用。后来开源,现在有PostRank大规 ... »

laraval migration 新增字段或者修改字段的方法

1.进入项目根目录执行artisan命令生成migration文件,可以指定--table和--path参数,会在对应目录下生成migration文件。 2.在migration文件中的up方法中新增或者修改字段 3.执行artisan命令来使变更生效,可以指定path参数到目录级别 ps: 一个很 ... »