php常用知识点
2018-12-01 00:11
337 查看
开发过程中总会遇到各种注意的点,这篇文章就是用来汇总,提醒自己
(1)php大表单提交 PHP从5.3.9开始增加一个变量 max_input_vars 用来限制提交的表单数量,默认值是1000;如果发现不够用的情况,可以增大该值
(2) php获取ip地址 function getIp() { if(!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif (!empty($_SERVER['REMOTE_ADDR'])) { $ip = $_SERVER['REMOTE_ADDR']; } else { $ip = '127.0.0.1'; } return $ip; } function getRealIp() { $ip = flase; if(!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); if($ip) { array_unshift($ips,$ip); $ip = false; } for($i=0;$i<count($ips);$i++) { if(!eregi("^(10|172\.16|192\.168)\.",$ips[$i])) { $ip = $ips[$i]; break; } } } return ($ip ? $ip : $_SERVER['REMOTE_ADDR']); }
(3)php 62进制转换(可用于编码id和短url地址) function base62_encode($number) { $bit = 62; $dict = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $str = ''; do { $str = $dict[bcmod($number, 62)].$str; $number = bcdiv($number,62); } while ($number > 0); return $str; } function base62_decode($str) { $str = strval($str); $dict = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $length = strlen($str); $number = 0; for($i=0;$i<$length;$i++) { $pos = strpos($dict,$str[$i]); $number = bcadd(bcmul(bcpow(62,$length-$i-1),$pos),$number); } return $number; }
(4)php HTTP_HOST 与SERVER_NAME比较 相同点: 当满足以下三个条件时,两者会输出相同信息。 1. 服务器为80端口 2. apache的conf中ServerName设置正确 3. HTTP/1.1协议规范 不同点: 1. 通常情况: _SERVER[“HTTP_HOST”] 在HTTP/1.1协议规范下,会根据客户端的HTTP请求输出信息。 _SERVER[“SERVER_NAME”] 默认情况下直接输出apache的配置文件httpd.conf中的ServerName值。 2. 当服务器为非80端口时: _SERVER[“HTTP_HOST”] 会输出端口号,例如:mimiz.cn:8080 _SERVER[“SERVER_NAME”] 会直接输出ServerName值 因此在这种情况下,可以理解为:HTTP_HOST = SERVER_NAME : SERVER_PORT 3. 当配置文件httpd.conf中的ServerName与HTTP/1.0请求的域名不一致时: httpd.conf配置如下: <virtualhost *> ServerName mimiz.cn ServerAlias www.mimiz.cn </virtualhost> 客户端访问域名www.mimiz.cn _SERVER[“HTTP_HOST”] 输出 www.mimiz.cn _SERVER[“SERVER_NAME”] 输出 mimiz.cn 所以,在实际程序中,应尽量使用_SERVER[“HTTP_HOST”] ,比较保险和可靠
(5) php printf格式转换问题 <?php $c = 0.58 * 100; printf("%d\n",$c); //57 printf("%f\n",$c); //58.000000阅读更多
相关文章推荐
- php面试常用知识点总结
- Web开发常用知识点 - PHP
- php 常用 小知识点
- PHP常用知识点记录
- PHP 常用知识点
- PHP常用知识点学习
- PHP网络协议相关知识点 以及 PHP常用服务【版本 端口】
- 做项目中遇到所有的常用知识点(javascript、php、mysql、apache、nginx)更新
- PHP常用函数小技巧
- PHP 易混淆知识点的实用指南(上)
- 常用知识点-UILabel的自适应
- php【基础学习十三】零散知识点
- php实现常用排序算法和查找算法
- php常用[字符串]函数
- php常用的几个算法
- PHP 获取今日、昨日、本周、上周、本月等等常用的起始时间戳和结束时间戳的时间处理类
- 常用的Oracle知识点汇总
- php 常用自定义方法
- php 常用函数
- 基于PHP常用字符串的总结(待续)