- 博客(54)
- 资源 (10)
- 收藏
- 关注
转载 PHP实现四种基本排序算法
[导读] 许多人都说算法是程序的核心,算法的好坏决定了程序的质量。作为一个初级phper,虽然很少接触到算法方面的东西。但是对于基本的排序算法还是应该掌握的,它是程序开发的必备工具。这里介绍冒泡排序,插入排序,选择排序,快速排序四种基本算法,分析一下算法的思路。许多人都说算法是程序的核心,算法的好坏决定了程序的质量。作为一个初级phper,虽然很少接触到算法方面的东西。但是对于基本的排序算法还
2016-05-16 13:39:58
572
转载 PHP PSR-4 Autoloader 自动加载(中文版)
Autoloader关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、“将会”("SHALL")、“不会”("SHALL NOT")、“应该”("SHOULD")、“不该”("SHOULD NOT")、“推荐”("RECOMMENDED")、“可以”("MAY")和”可选“("OPTIONAL")的详细描述可参见 [
2016-04-11 16:47:24
917
转载 PHP PSR-3 日志接口规范 (中文版)
日志接口规范本文制定了日志类库的通用接口规范。本规范的主要目的,是为了让日志类库以简单通用的方式,通过接收一个 Psr\Log\LoggerInterface 对象,来记录日志信息。框架以及CMS内容管理系统如有需要,可以对此接口进行扩展,但需遵循本规范,这才能保证在使用第三方的类库文件时,日志接口仍能正常对接。关键词 “必须”("MUST")、“一定不可/一定不能
2016-04-11 16:44:56
1974
转载 PHP PSR-2 代码风格规范 (中文版)
代码风格规范本篇规范是 PSR-1 基本代码规范的继承与扩展。本规范希望通过制定一系列规范化PHP代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便。当多名程序员在多个项目中合作时,就需要一个共同的编码规范,而本文中的风格规范源自于多个不同项目代码风格的共同特性,因此,本规范的价值在于我们都遵循这个编码风格,而不是在于它本身。关键词 “必须
2016-04-11 16:43:15
826
转载 PHP PSR-1 基本代码规范(中文版)
本篇规范制定了代码基本元素的相关标准,以确保共享的PHP代码间具有较高程度的技术互通性。关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、“将会”("SHALL")、“不会”("SHALL NOT")、“应该”("SHOULD")、“不该”("SHOULD NOT")、“推荐”("RECOMMENDED")、“可
2016-04-11 16:41:40
945
原创 PHP为什么慢?
PHP为什么慢?PHP的慢是相对于C/C++级别的语言来说,事实上,PHP语言最初的设计,就不是用来解决计算密集型的应用场景。我们可以这样粗略理解为,PHP为了提升开发效率,而牺牲了执行效率。我们知道PHP一个很大的特点,就是弱类型特性,也就是说,我可以随意定义一个变量,然后给它随意赋值为各种类型的数据。以一个int整型数字为例子,在C语言中:int num = 200;/
2016-03-27 17:29:09
2553
3
原创 PHP-FPM子进程数量应该如何设置?
首先,我们关注下 PHP-FPM 的运行方式:static :表示在 `php-fpm` 运行时直接 `fork` 出 `pm.max_chindren` 个子进程,dynamic:表示,运行时 `fork` 出 `start_servers` 个进程,随着负载的情况,动态的调整,最多不超过 `max_children` 个进程。一般推荐用 static。优点是不用动
2016-03-27 17:11:13
6142
转载 nginx 负载均衡
负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。负载均衡先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。测试环境由于没有服务器,所以
2016-02-04 13:50:58
573
原创 如何保证http传输安全性
目前大多数网站和app的接口都是采用http协议,但是http协议很容易就通过抓包工具监听到内容,甚至可以篡改内容,为了保证数据不被别人看到和修改,可以通过以下几个方面避免。重要的数据,要加密,比如用户名密码,我们需要加密,这样即使被抓包监听,他们也不知道原始数据是什么(如果简单的md5,是可以暴力破解),所以加密方法越复杂越安全,根据需要,常见的是 md5(不可逆),aes(可逆),自由组合
2015-11-08 12:34:53
22611
原创 PHP实现一致性hash
随着memcache、redis以及其它一些内存K/V数据库的流行,一致性哈希也越来越被开发者所了解。因为这些内存K/V数据库大多不提供分布式支持(本文以redis为例),所以如果要提供多台redis server来提供服务的话,就需要解决如何将数据分散到redis server,并且在增减redis server时如何最大化的不令数据重新分布,这将是本文讨论的范畴。 取模算法 取...
2015-10-23 14:27:57
12579
原创 php解析http获取的json字符串变量总是空白null
这篇文章主要介绍了php解析http获取的json字符串变量总是空白null的解决方法,个人经验的总结,这里推荐给大家。今天同事项目中遇到一个问题,通过http接口获取的json字符串使用json_decode始终无法正确解析,返回空白。直接把结果字符串复制出来手动创建一个变量却正常,在前端js也能解析,搞了半天不得其解,借助强大的谷歌解决了问题,答案是接口吐出的结果包含有BO
2015-09-08 15:09:09
2204
转载 单表60亿记录等大数据场景的MySQL优化和运维之道
此文是根据杨尚刚在【QCON高可用架构群】中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处。杨尚刚,美图公司数据库高级DBA,负责美图后端数据存储平台建设和架构设计。前新浪高级数据库工程师,负责新浪微博核心数据库架构改造优化,以及数据库相关的服务器存储选型设计。前言MySQL数据库大家应该都很熟悉,而且随着前几年的
2015-08-31 09:39:57
10448
2
原创 PHP生成验证码时“图像因其本身有错无法显示”的解决方法
以下是对PHP生成验证码时“图像因其本身有错无法显示”的解决方法进行了详细的分析介绍,需要的朋友可以过来参考下今天使用代码进行PHP生成校验码功能的实现,发现firefox一直提示“图像.......因其本身有错无法显示”的问题,作者也提示了说“如果浏览器显示“图像XXX因其本身有错无法显示”,可尽量去掉文中空格”,但把代码中所有空格都去掉了还是不能显示检验图片。于是深度googl
2015-08-30 22:12:03
715
原创 win7下安装sourcetree
1.安装git,百度搜索就行2.安装sourcetree 自行找链接3.在git bash 下生成客户端 ssh-keygen -t rsa4.然后将生成的C:\Users\jiangtong\.ssh\id_rsa.pub 文件上传到服务器keydir目录(交给git管理人员就行)5.确保sourcetree ,工具-选项,弹出选项卡第三个git选项,使用系统git
2015-08-29 10:18:06
16699
转载 阿里云服务器数据盘挂载
统初始化时,只有一个系统盘,没有数据盘。所以第一步要挂载数据盘(需单独购买)。 可以用 fdisk -l | grep Disk 查看你的系统有几块盘。如:Disk /dev/xvda: 21.5 GB, 21474836480 bytesDisk identifier: 0x0002bfb2Disk /dev/xvdb: 107.4 G
2015-08-27 10:49:12
928
转载 PHP高级工程师的面试题
1. 基本知识点HTTP协议中几个状态码的含义:1xx(临时响应)Php代码 表示临时响应并需要请求者继续执行操作的状态代码。 代码 说明 100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换
2015-08-19 11:28:18
9872
原创 PECL轻松安装PHP扩展
搭建PHP环境的时候,我们通常不会把所有的扩展都安装,随着需求不断增加,可能需要安装新的扩展,下面介绍一种简便的安装方法。此处以ev.so扩展为例。1.进入php安装目录bin文件夹。cd /Applications/XAMPP/bin; 2.首先我们先查找下有没有安装的扩展 ./pecl serarch ev
2015-08-18 19:56:25
21154
1
转载 Apache与Nginx的优缺点比较
1、nginx相对于apache的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃,各种高性能模块出品迅速啊 apache 相对于nginx 的优点: rewrite ,比nginx
2015-08-17 20:44:56
576
转载 PHP超时处理全面总结
【 概述 】 在PHP开发中工作里非常多使用到超时处理到超时的场合,我说几个场景: 1. 异步获取数据如果某个后端数据源获取不成功则跳过,不影响整个页面展现 2. 为了保证Web服务器不会因为当个页面处理性能差而导致无法访问其他页面,则会对某些页面操作设置 3. 对于某些上传或者不确定处理时间的场合,则需要对整个流程中所有超时设置为无限,否则
2015-08-12 13:21:00
1602
转载 PHP之Traits
1、Traits基础 2、优先级:当前类中的方法会覆盖 Trait 方法,而Trait方法覆盖了基类中的方法。 3、多个Traits,使用use声明列出多个Traits。 4、冲突的解决:为了解决两个 Traits 在同一个类中的命名冲突,需要使用 insteadof 操作符来明确指定冲突方法中的一个。由于这仅允许排除一个方法,as 操作符可
2015-08-11 14:39:15
852
原创 对象和类的的关系
1.类是定义一系列属性和方法的模板,而对象是把属性具体化,然后交给类去处理。2.对象就是数据,对象本身不包含方法(通过序列化可以看出),但是对象有一个“指针”指向一个类,这个类里面可以有方法。3.方法描述不同属性会导致不同的表现。4.类和对象是不可分割的,有对象就必定有类与其对应,否则这个对象就是一个没有亲人的孩子(特殊情况:有标量进行强制类型转换的object,没有一个类与其对应,此
2015-08-11 11:02:16
1063
转载 关于烂代码的那些事(上)
1.摘要最近写了不少代码,review了不少代码,也做了不少重构,总之是对着烂代码工作了几周。为了抒发一下这几周里好几次到达崩溃边缘的情绪,我决定写一篇文章谈一谈烂代码的那些事。 这里是上篇,谈一谈烂代码产生的原因和现象。2.写烂代码很容易刚入程序员这行的时候经常听到一个观点:你要把精力放在ABCD(需求文档/功能设计/架构设计/理解原理)上,写代码只是把想法翻译成编程语言
2015-08-11 10:34:31
2335
转载 ZooKeeper典型应用场景
文章转自:http://nileader.blog.51cto.com/1381108/1040007ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行
2015-08-10 17:28:29
464
转载 如何选择redis和memcache
我这段时间在用redis,感觉挺方便的,但比较疑惑在选择内存数据库的时候到底什么时候选择redis,什么时候选择memcache,然后就查到下面对应的资料,是来自redis作者的说法(stackoverflow上面)。 You should not care too much about performances. Redis is faster per core with smal
2015-08-10 17:24:58
472
原创 mac 下面 you have an outdated version of /usr/bin/install_name_tool installed
我在macpro,系统版本10.10.1 ,安装composer的时候提示 you have an outdated version of /usr/bin/install_name_tool installed。解决办法:先查看install_name_tool 的当前版本:otool -L /usr/bin/install_name_tool ,如图发现版本过低,最简单的方法就是更
2015-07-29 16:31:13
1437
原创 composer 报 zlib_decode(): data error
使用composer 安装lumen 项目,执行composer create-project laravel/lumen --prefer-dist,命令报 [ErrorException] zlib_decode(): data error 错。 解决办法:执行 composer self-update 即可
2015-07-29 16:30:13
39175
2
原创 mac homebrew 常用命令
mac 系统常用的软件安装工具就是 homebrew, 其最常用的命令如下:安装(需要 Ruby):ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"搜索:brew search mysql查询:brew info mysql 主要看具体的信息,比如目前的版本,依
2015-07-29 16:29:40
33693
原创 Linux 下安装phpredis
phpredis 是 php 的redis 扩展,只有安装了phpredis, php代码才可以操作redis数据库。下面只介绍安装phpredis 的方法。1.下载phpredis ,直接从官方git 下载到本地目录(~/soft/)git clone https://github.com/jiangtong1125/phpredis.git (没有安装git,也可以打包下载下来)
2015-07-29 16:27:04
1112
原创 Nginx+PHP+Swfupload 上传大文件
环境:LNMP,上传插件Swfupload, 当需要上传大文件的时候,我们需要做一些设置,因为Nginx php,swfupload的默认上传大小都比较小。下面按照访问顺序设置大小1.Swfupload 配置, 修改 file_size_limit : "100 MB", //允许上传文件大小 file_types : "*.*", // 上传文件类型 file_types_d
2015-07-29 16:26:28
1549
转载 redis内存优化
一、特殊编码: 自从Redis 2.2之后,很多数据类型都可以通过特殊编码的方式来进行存储空间的优化。其中,Hash、List和由Integer组成的Sets都可以通过该方式来优化存储结构,以便占用更少的空间,在有些情况下,可以省去9/10的空间。 这些特殊编码对于Redis的使用而言是完全透明的,事实上,它只是CPU和内存之间的一个交易而言。如果内存使用率方面高一些,那么
2015-07-29 16:25:04
504
原创 redis常用操作(持续更新)
假设redis目录:cd /usr/local/soft/redis/开启:./redis_server 可以软链到系统目录关闭:./redis_cli -h 127.0.0.1 -p 6379 shutdown连接端口:./redis_cli -p 6379选择数据库:select 15查看所有key:key *计算key的数量:dbsize清空db:flus
2015-07-29 16:21:18
1461
原创 PHP对象的串行化与反串行化
什么时候使用串行化?在网络中传输对象的时候向数据库中保存文件的时候 今天我们要提到四个函数全部串行化1.serialize(对象名) 将指定的类对象串行化 $str=serialize($per) //将per对象串行化,结果返回给$str2.unserialize(串行化后的返回值) 返回结果是对象 $per=unserialize($str);局部
2012-05-04 17:24:16
6195
原创 PHP中的面向对象总结
抽象方法:没有方法体,和{}且被abstract修饰的方法抽象类:至少包含一个抽象方法的类抽象类的用途:用于定义一种规范,继承该类必须将该抽象类中的抽象法方全部都实现 接口中只能能包含方法的定义接口只能包含常量继承接口必须将接口中的方法全部实现,也用于一种规范 接口和抽象类的区别Abstractclass class1{可以包含成员属性可以包含
2012-05-04 17:22:51
1355
原创 PHP Smarty环境配置
Smaty优点:1.代码分离 2.缓存技术使用步骤:1.下载Smaty模板2.将模板中那个lib文件夹复制到项目中(一般为根目录,并且重命名在此命名为Smarty),3.配置PHP1.新建一个Smarty_inc.php文件2.输入Include_once("Smarty/Smarty.class.php");//包含Smarty类$smarty=new Sma
2012-05-04 17:21:25
4769
原创 PHP环境(apache,PHP,Mysql)详细配置方法
安装前的准备:下载PHP,apache,mysql安装包,可以到相关官网上下载,下面是安装步骤1.安装Apache ,直接运行安装即可,我们将其安装到D:/PHP/Apache/ 目录下2.将PHP压缩包解压内容放到指定PHP目录(自己指定这里是D:/PHP/,并重命名为PHP5,将PHP5目录中的PHP.iniDevelopment重命名为php.ini)3.修改Apache
2012-05-04 08:19:54
60774
5
原创 PHP常用魔术方法总结
常用的魔术方法有:__Tostring () __Call() __autoLoad() __ clone() __GET() __SET() __isset() __unset() 1.__Tostring() 用于定义输出对象引用时调用 常用于打印一些对象的信息必须有返回值eg:有一个persion类Persion per =new pers
2012-05-02 17:29:50
5020
1
原创 PHP数据类型总结
PHP共有8中数据类型: 类型名称 类型表示 取值 bool 布尔型 true,false integer 整型-2147483647-2147483648 string 字符串型 字符串长度取决于机器内存 float 浮点型 最大值1.8e308 object 对象通
2012-05-02 16:48:41
7308
4
原创 我的程序员之路
现在是大四下半学期,明年毕业,五年制的,从大二的时候参加了学校的三月软件小组,小组的学习非常紧张,每一个人都很努力,周六周日,寒暑假使我们的黄金时间,因为平时上课的原因导致时间很散,我们小组人员流动比较快,一届学生大概四五个左右,四届加起来20个左右,每年都有毕业生离去,每年开学都要进行招新,新生刚进小组会进行考核,基本一周看完一本书,然后再给10天左右做一个例子,然后由高年级评审,最后决定是否留
2012-04-30 21:51:40
965
3
转载 HTTP GET和POST的区别
在推特上抱怨面试时问HTTP GET和POST的区别得到回答都不满意,有人不清楚,当时只回复了看 RFC2616。趁有空说说面试时得到的回答大多是:POST是安全的,因为被提交的数据看不到,或者被加密的,其它的还有GET的时候中文出现乱码(在地址栏里),数据最大长度限制等等。说 POST 比 GET 安全肯定是错的,POST跟GET都是明文传输,用httpfox等插件,或者像Wir
2012-04-22 20:05:50
1144
1
memcache缓存配置包(dll,memched,配置方法)
2012-04-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人