POST, HTTP_RAW_POST_DATA, php://input区别

一般POST数据都是用$_POST这个变量来存储的
HTTP_RAW_POST_DATA 及 $GLOBALS['HTTP_RAW_POST_DATA']用来存放php非默认application/x-www.form-urlencoded标准的数据类型的数据,比如:比如 text/xml ,text/json,text/plan 等

然而text/xml ,text/json,text/plan 这些数据 最好还是用 php://input来接收,因为
HTTP_RAW_POST_DATA这个参数新版php已经废除了,而且用php://input来接收数据,会获得更好的性能!



postman POST请求的四种类型

1.form-data
2.x-www-form-urlencoded
3.raw
4.binary


form-data
enctype对应multipart/form-data ,及可以提交键值对数据,也可以上传文件
x-www-form-urlencoded
键值对都是经过urlencode的
raw
可以上传任意格式的文本,可以上传text、json、xml、html等,如application/json,text/xml等格式的文本
binary
对应Content-Type:application/octet-stream 只能传文件











php取整函数的区别

先说 floor 和 intval
这2个函数 在正数的时候, 结果是一样都是去掉小数点后面的值,只保留整数。例如:

floor(3.1); #结果为 3;
intval(1.9); #结果为 1;

但是当为负数时就有区别了,如下:

 floor(-0.1); #结果为 -1;
 intval(-0.9); #结果为 0;
 floor(-1.2);#结果为 -2;
 intval(-1.2);#结果为 -1;

这就是区别,至于为什么,翻看下手册就知道了

然后就是 ceil 此函数,只要后面跟的小数点大于0,则进一位,例如:

ceil(3.1);#结果为 4;
ceil(-3.1);#结果为 -3;

round 对浮点数进行四舍五入

round(3.1) # 3;
round(3.265,2) #2.27;
round(1024,-2) #1000;

mb_strcut/mb_substr()获取指定长度字符串的函数

mb_internal_encoding('UTF-8');

mb_strcut() 和 mb_substr() 类似,都是从一个字符串中提取子字符串,但是按字节数来执行,而不是字符个数。
如果截断位置位于多字节字符两个字节的中间,将于该字符的第一个字节开始执行。 这也是和 substr()
函数的不同之处,后者简单地将字符串在字节之间截断,这将导致一个畸形的字节序列。

以上是手册中说明的,该函数最重要的是避免了“后者简单地将字符串在字节之间截断,这将导致一个畸形的字节序列”;还有一个需要注意的是设置编码类型,否则会出现半截字,问号字。



ip解析Api

第一个来自淘宝的 返回的数据格式为json Api地址:

http://ip.taobao.com/service/getIpInfo.php?ip=IP
<?php
$ip = @file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$_GET["ip"]);
$ip = json_decode($ip,true);

具体使用方法请看淘宝IP地址库 http://ip.taobao.com/

第二个来自新浪 返回的数据格式可以选择,根据参数format的值来确定(js/json) Api地址:

http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=ip
<?php
$ip = @file_get_contents("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=".$_GET["ip"]);
echo $ip;

第三个来自网易

http://www.youdao.com/smartresult-xml/search.s?type=ip&q=114.114.114.114 
http://ip.ws.126.net/ipquery?ip=ip