php
蒙--
这个作者很懒,什么都没留下…
展开
-
restful 风格api
1. 什么是rest REST -- REpresentational State Transfer首先,之所以晦涩是因为前面主语被去掉了,全称是 Resource Representational State Transfer:通俗来讲就是:资源在网络中以某种表现形式进行状态转移。分解开来:Resource:资源,即数据。比如 newsfeed,frien原创 2017-09-13 14:19:55 · 205 阅读 · 0 评论 -
PHP的压力测试工具ab.exe 和mpm介绍提高并发数
该工具是apache自带的,可以用它来测试网站的并发量有多大和某个页面的访问时间。基本用法:1、 进入CMD,转到apache的bin目录下。2、 执行命令ab.exe -n 访问的问次数–c 多少人访问(并发量) 访问的地址如:ab.exe –n 1000 –c 100 http://localhost/index.php;如输入以下命令ab.exe-n 10000转载 2017-09-09 13:18:57 · 519 阅读 · 0 评论 -
php 冒泡排序
$arr = [10,3,6,8,5,2,4,7,9,1];$len = count($arr);for($i=1;$ifor($j=0;$jif($arr[$j+1]$temp = $arr[$j+1];$arr[$j+1] = $arr[$j];$arr[$j] = $temp;}}}print_r($arr);原创 2017-09-10 11:58:06 · 235 阅读 · 0 评论 -
php unset引用变量后不会删除值
$a =123;$b = &$a;unset($a);echo $b;结果还是:123原创 2017-09-18 17:28:30 · 1179 阅读 · 0 评论 -
php %运算 被除数为负数,运算结果
echo 8%-2结果为0原创 2017-09-18 17:41:46 · 1578 阅读 · 0 评论 -
php中引用&的真正理解-变量引用、函数引用、对象引用
php中引用&的真正理解-变量引用、函数引用、对象引用 php的引用(就是在变量或者函数、对象等前面加上&符号) //最重要就是 删除引用的变量 ,只是引用的变量访问不了,但是内容并没有销毁 在PHP 中引用的意思是:不同的名字访问同一个变量内容.变量的引用 PHP 的引用允许你用两个变量来指向同一个内容 php$a="ABC"; $转载 2017-09-18 18:24:45 · 414 阅读 · 0 评论 -
php static 关键字
<?php/** 1. 声明类属性或方法为静态,就可以不实例化类而直接访问 echo Foo::$a //返回 11 echo Foo::getStaticValue(); //返回 11 2. 静态属性不能通过一个类已实例化的对象来访问(但静态方法可以) $foo = new Foo(); $foo::$a;//返回 11 $foo::getStaticVa原创 2017-09-18 18:40:33 · 376 阅读 · 0 评论 -
php 获取文件扩展名
<?php$dir = "dir/upload.image.jpg";//"第一种:"echo strrchr($dir,'.');//"第二种:"$pos = strrpos($dir,'.');echo substr($dir,$pos);//"第三种:"echo pathinfo($dir,PATHINFO_EXTENSION);//"第四种:"echo array原创 2017-09-18 21:30:29 · 339 阅读 · 0 评论 -
php 实现顺序查找
<?phpfunction sequenceSearch($arr,$n,$k){ for($i=0;$i<$n;$i++){ if($arr[$i]==$k){ return $i; } } if($i<$n){ return $i; }else{ return -1; }}$arr = array(9,1,3,4,5);echo sequenceSe原创 2017-09-18 22:46:54 · 626 阅读 · 0 评论 -
php 实现二分查找
<?phpfunction binSearch($arr,$low,$high,$k){ if($low<=$high){ $mid = intval(($low+$high)/2); if($arr[$mid] == $k){ return $mid; }elseif($k<$arr[$mid]){ return binSearch($arr,$low,$mid-1,原创 2017-09-18 23:05:42 · 363 阅读 · 0 评论 -
php 实现快速排序算法
function quick_sort($array){ if(count($array)<=1) return $array; $key = $array[0]; $left_arr = array(); $right_arr = array(); for($i=1;$i<count($array);$i++){ if($array[$i]<=$key){ $left_arr原创 2017-09-18 22:36:08 · 414 阅读 · 0 评论 -
php 实现读取目录下所有文件
<?phpfunction getDirFiles($folder){ $filesArr = array(); if(is_dir($folder)){ $hander = opendir($folder); while($file = readdir($hander)){ //print_r($file); if($file=='.'||$file=='..'...原创 2017-09-19 00:19:42 · 3400 阅读 · 0 评论 -
Iaas,paas,saas区别与联系
1. IaaS(Infrastructure as a Service) 基础设施即服务提供服务器,不用自己购买服务器,存储,网络硬件,但是得自己部署服务器环境,然后在上头开发程序 如:租赁虚拟机2. PaaS(Platform as a Service,PaaS)平台即服务 针对软件开发者,提供服务器,存储,网络硬件,部署好了服务器环境,数据库、web服务,只要在上头开原创 2017-09-13 14:24:45 · 858 阅读 · 0 评论 -
CGI、FastCGI和PHP-FPM关系图解
webapp即是php解析器等当Web Server收到 index.php 这个请求后,会启动对应的 CGI 程序,这里就是PHP的解析器。接下来PHP解析器会解析php.ini文件,初始化执行环境,然后处理请求,再以规定CGI规定的格式返回处理后的结果,退出进程,Web server再把结果返回给浏览器。这就是一个完整的动态PHP Web访问流程,接下来再引出这些概念,就好理解多了,转载 2017-09-19 17:48:07 · 348 阅读 · 0 评论 -
php二维数组以某个键进行排序
$arr = array( array('a'=>1,'b'=>2), array('a'=>7,'b'=>6), array('a'=>3,'b'=>3), array('a'=>6,'b'=>5), array('a'=>4,'b'=>4),);1. 第一种function sortKey($arr,$key,$order='asc原创 2017-09-11 18:54:07 · 326 阅读 · 0 评论 -
phpstorm 设置注释
设置注释原创 2017-09-28 13:13:49 · 5660 阅读 · 0 评论 -
smarty编译,缓存原理
1. 编译 把模板文件中的变量,函数用正式表达式替换成php变量,并把替换后的内容保存到编译文件里 实现代码:compile函数2. 缓存 如果开启了缓存,并且缓存文件不存在或缓存文件存在但是缓存文件修改时间小于编译文件修改时间,则包含编译文件,并把把内容保存到缓存文件里头,否则包含缓存文件 实现代码:cache函数 git原创 2017-09-12 11:18:52 · 584 阅读 · 0 评论 -
session依赖cookie,如果浏览器禁用了cookie呢?
我们都知道session依赖cookie,因为服务器需要在每次请求中获取sessionId,然后找到客户端的session对象,如果浏览器禁用了cookie呢?这个时候,就需要用到URL重写了,这种方法让服务器收到的每个请求中都带有sessioinId。URL重写的具体方法是:在每个页面中的每个链接和表单中都添加名为SessionId的参数,值为当前sess原创 2017-09-20 12:26:39 · 565 阅读 · 0 评论 -
php常用函数
1. include,require,include_once,require_once 包含文件 include 常用在文件里头,包含文件不存在发出警告require 常 用在文件中,包含文件不存在发出致命错误 后头加_once,文件只包含一次,防止重复包含函数,变量2. filemtime 返回文件上次修改的时间(时间戳),否原创 2017-09-12 10:37:02 · 184 阅读 · 0 评论 -
php使用cookie实现记住用户名和密码实现代码
原文:http://www.jb51.net/article/64970.htm转载 2017-09-20 12:29:56 · 4653 阅读 · 0 评论 -
PHP实现限制域名从而保护源代码不被拷贝
1. 限制域名<?php if(!in_array($_SERVER['HTTP_HOST'],array('test.com','www.test.com'))){ exit('建站请联系:http://www.test.com');} ?> 2.zend5加密原创 2017-09-20 08:19:30 · 2517 阅读 · 0 评论 -
php使用redis作为消息队列
安装redisredis不在centos官方源里面,需要手动下载EPEL(Extra Packages for Enterprise Linux)进行安装。 EPEL相当于是原来源的扩展,具体的介绍可以看下这两篇文章http://blog.chinaunix.net/uid-2469966-id-3916408.htmlhttp://f.dataguru.cn/thread-479转载 2017-09-29 22:39:36 · 485 阅读 · 0 评论 -
post数据获取
1. header是multipart/form-data 和 application/x-www-form-urlencoded 格式 用 $_POST2、header是application/json,如果不能获取的时候比如 使用 file_get_contents('php://input')原创 2017-10-09 15:41:15 · 1665 阅读 · 0 评论 -
postman中 form-data、x-www-form-urlencoded、raw、binary的区别
1、form-data: 就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以mu转载 2017-10-09 15:48:45 · 229 阅读 · 0 评论 -
postman传数组参数
原创 2017-10-09 16:42:21 · 60725 阅读 · 3 评论 -
tp3.2.3 命令模式
最近要使用thinkphp3.2版本的cli模式,手动执的话没有问题,比如php /www/index.php home/article/get 这样没有问题,但是一般用cli模式都是定时任务比较多,这个时候写到定时任务的时候,比如 0 * * * * * php /www/index.php home/article/get 这样就会出现引入ThinkPHP.php失败的问题,这个问题算是比较容转载 2017-10-18 22:40:11 · 1997 阅读 · 0 评论 -
is_null,is_numeric
if(is_null(0)){ echo "111";}else{ echo "000";}//结果: 000echo "";if(is_numeric(0)){ echo "111";}else{ echo "00";} //结果: 111原创 2017-10-19 12:44:46 · 294 阅读 · 0 评论 -
xmlObj转为数组
$xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); $val = json_decode(json_encode($xmlstring),true);原创 2017-10-10 22:27:34 · 203 阅读 · 0 评论 -
PHP预定义变量 PHP_EOL
PHP_EOL: 换行符,解决linux,windows 不同平台 兼容的问题一个小小的换行,其实在不同的平台有着不同的实现,为什么要这样,可以是世界是多样的。本来在unix世界换行就用/n来代替,但是windows为了体现他的不同,就用/r/n,更有意思的是在mac中用/r因此unix系列用 /nwindows系列用 /r/nmac用 /r原创 2017-10-19 23:18:45 · 330 阅读 · 0 评论 -
php 写日志
private function log($message=''){ $dir = __DIR__; $trueDir = dirname($dir).DIRECTORY_SEPARATOR.'Runtime'.DIRECTORY_SEPARATOR; $file = 'websocket'.date('Y_m_d').'.log'; $trueFile = $tr原创 2017-10-19 10:59:23 · 679 阅读 · 0 评论 -
websocket 应用实例
1. 服务端class WebSocketServer{ public $server; public function __construct($controller) { $this->server = new \swoole_websocket_server("0.0.0.0", 9501); $this->server->set(a原创 2017-10-21 17:46:03 · 528 阅读 · 0 评论 -
php中使用hash_hmac函数实现HMAC-SHA1签名算法的来龙去脉
前言最近工作中频繁和其他部门甚至公司进行接口上的对接,不免接触到林林总总的签名验权算法。其中属HMAC-SHA1签名算法最多,刚开始接触的时候我也觉得有一点懵,慢慢搞清楚了原理,所以在这里跟大家如何理解这种签名算法中涉及到的各种各样的东西。扫盲:首先做个简单的扫盲1、md5(md家族)Message Digest Algorithm 缩写为MD,消息摘要算法,一种被广泛使用转载 2017-11-07 22:51:58 · 4156 阅读 · 0 评论 -
IP地址在数据库里面的存储方式
IP地址在数据库里面的存储方式大多数公司的表结构都需要经过DBA进行审核,有时候你会看到存储IP地址采用varchar(15),这种方式都是传统的做法,这种方法需要占用15个字节,那么有更省空间的做法么?肯定是有的,那就是用int存储。如果采用int存储这里又有2种处理方式。1. 利用MySQL函数进行处理。可以采用INET_ATON,INET_NTOA函数进行转换。2.转载 2017-10-13 15:21:37 · 7345 阅读 · 0 评论 -
短信通知限制
思路<?phpfunction globalLimit(){ //1. IP白名单 $ip = "192.168.1.22"; $baiming = array( "192.168.1.22", "192.168.1.33" ); if(in_array($ip,$baiming)){ return true; }else{ return false;原创 2017-10-13 07:57:08 · 415 阅读 · 0 评论 -
php 命令显示扩展信息
php --ri swoolephp --ri mysql原创 2017-10-25 08:57:25 · 730 阅读 · 0 评论 -
php 安装swoole扩展
1. pecl下载 swooole源码包2. 放到/usr/local/src下,tar --zxvf 包名3. phpsize 使用绝对路径 /user/local/php/bin/phpize4. ./confiure --prefix=usr/local/swoole5. make 6. make test原创 2017-10-25 08:58:22 · 687 阅读 · 0 评论 -
PHP错误日志记录:display_errors与log_errors的区别
我们所做的东西,无论在开发环境还是在生产环境都可能会出现一些问题。开发环境下,我们会要求错误尽可能详细的呈现出来,错误提示信息越详细越好,越详细越能帮助开发人员确定问题所在并从根本上解决他们。生产环境下,为了良好的用户体验以及网站安全,我们会尽可能少的出现错误提示。那具体到php语言中,我们又要怎么做呢?首先了解一下php中的两个配置项:(1)display_error转载 2017-10-25 11:15:48 · 726 阅读 · 0 评论 -
phpstorm 2017.1.3 最新版激活方法
以前在博客园发布的3篇关于phpstorm激活的文章,累积有20万的阅读量。后来不知怎么的在百度上就搜索不到了,看了一下文章在博客园也被下架了。原博客http://www.cnblogs.com/buyucoder/也打不开了。 索性就直接放弃算了,迁移到自己的博客来。 最新版的PhpStorm 2017.1.3更新 激活方法同样适用于2016.1.x转载 2017-11-03 09:02:03 · 2218 阅读 · 0 评论 -
php api接口安全设计 sign
一. url请求的参数包括:timestamp,token, username,sign1. timestamp: 时间戮2. token: 登陆验证时,验证成功后,生成唯一的token(可以为uuid),并把token储存到缓存(redis)里 ,键为username,值为token3. username: 用户名,保证唯一4. sig...原创 2017-09-20 23:12:03 · 2714 阅读 · 0 评论 -
几种常用的认证机制
几种常用的认证机制HTTP Basic AuthHTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少。因此,在开发对外开放的RESTful API时,尽量避转载 2017-11-29 22:07:31 · 599 阅读 · 0 评论