php 几个比较实用的函数
最近在看代码,发现以下是几个比较实用的函数。
1,取客户端IP
- functiongetOnlineIp() {
- $strOnlineIp="";
- if(getenv('HTTP_CLIENT_IP') &&strcasecmp(getenv('HTTP_CLIENT_IP'),'unknown')) {
- $onlineip=getenv('HTTP_CLIENT_IP');
- } elseif(getenv('HTTP_X_FORWARDED_FOR') &&strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),'unknown')) {
- $onlineip=getenv('HTTP_X_FORWARDED_FOR');
- } elseif(getenv('REMOTE_ADDR') &&strcasecmp(getenv('REMOTE_ADDR'),'unknown')) {
- $onlineip=getenv('REMOTE_ADDR');
- } elseif(isset($_SERVER['REMOTE_ADDR']) &&$_SERVER['REMOTE_ADDR'] &&strcasecmp($_SERVER['REMOTE_ADDR'],'unknown')) {
- $onlineip=$_SERVER['REMOTE_ADDR'];
- }
- preg_match("/[\d\.]{7,15}/",$onlineip,$onlineipmatches);
- $strOnlineIp=$onlineipmatches[0] ?$onlineipmatches[0] :'unknown';
- return$strOnlineIp;
- }
这里,如果使用多级代理的用户,真实IP是取不到的。
2,字符串截取,支持中文
- functiongetStrTruncate($string,$length= 80,$etc=''){
- if($length== 0)return'';
- mb_internal_encoding("UTF-8");
- $string=str_replace("\n","",$string);
- $strlen= mb_strwidth($string);
- if($strlen>$length) {
- $etclen= mb_strwidth($etc);
- $length=$length-$etclen;
- $str='';$n= 0;
- for($i=0;$i<$length;$i++) {
- $c= mb_substr($string,$i, 1);
- $n+= mb_strwidth($c);
- if($n>$length) {break; }
- $str.=$c;
- }
- return$str.$etc;
- } else{
- return$string;
- }
- }
- echogetStrTruncate("海底苍鹰博客",7);//结果是海底苍,utf8一个汉字对应二个字符
3,多长时间前的时间函数,论坛,博客常用
- functiontimeFromNow($dateline) {
- if(emptyempty($dateline))returnfalse;
- $seconds= time() -$dateline;
- if($seconds< 60){
- return"1分钟前";
- }elseif($seconds< 3600){
- returnfloor($seconds/60)."分钟前";
- }elseif($seconds< 24*3600){
- returnfloor($seconds/3600)."小时前";
- }elseif($seconds< 48*3600){
- returndate("昨天 H:i",$dateline)."";
- }else{
- returndate('Y-m-d',$dateline);
- }
- }
- echotimeFromNow(strtotime("2012-07-07 14:15:13"));//昨天 14:15
- echotimeFromNow(strtotime("2012-07-08 14:15:13"));//1小前
4,过滤部分标签
- functiondelTags($str)
- {
- $farr=array(
- "/<(\/?)(script|i?frame|style|html|body|title|link|meta|form|input|embed|object|textarea|\?|\%)([^>]*?)>/isU",
- "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU"
- );
- $tarr=array(
- "",
- ""
- );
- $str= preg_replace($farr,$tarr,$str);
- return$str;
- }
- $str="<a href='#'>asdfasdfsd</a>====<script>alert(1111)</script>";
- echodelTags($str);//结果:<a href='#'>asdfasdfsd</a>====alert(1111)
- echostrip_tags($str);//结果:sdfasdfsd====alert(1111)
如果要过滤所有标签strip_tags就够用了。
转载于:https://www.cnblogs.com/moqiang02/p/4061450.html
php 几个比较实用的函数相关推荐
- c++调用gcd函数_c++函数库中一些实用的函数
有一些程序,虽然写起来不难,但是可能比较麻烦或容易出错,这时就可以用c++函数库里自带的一些实用的函数. 这里只记录一些不太常见的函数. ------------------------------- ...
- mysql算法函数_十个实用MySQL函数
本文首发于个人微信公众号<andyqian>,期待你的关注! 前言 继上一次<十个实用MySQL命令>后,今天奉上十个实用MySQL函数.下面都是一些比较常用且简单的函数,在工 ...
- 56个JavaScript 实用工具函数助你提升开发效率!
今天来看看JavaScript中的一些实用的工具函数,希望能帮助你提高开发效率!整理不易,如果觉得有用就点个赞吧! 实用工具函数.png 1. 数字操作 (1)生成指定范围随机数 export con ...
- 【总结】56个JavaScript 实用工具函数助你提升开发效率!
作者:CUGGZ https://juejin.cn/post/7019090370814279693 又快到周五啦,快来一起摸鱼呀!今天来看看JavaScript中的一些实用的工具函数,希望能帮助你 ...
- 呕心沥血集齐史上最全 JavaScript最实用工具函数大全,建议收藏!
为元素添加on方法 Element.prototype.on = Element.prototype.addEventListener; NodeList.prototype.on = functio ...
- Python 中 pct_change 函数是一种非常实用的函数,它可以帮助我们计算一个时间序列的百分比变化率。在数据分析和金融领域中,我们经常需要计算某个指标...
Python 中 pct_change 函数是一种非常实用的函数,它可以帮助我们计算一个时间序列的百分比变化率.在数据分析和金融领域中,我们经常需要计算某个指标相对于前一期的变化率,这时可以使用 pc ...
- 慕测 移动应用测试——实用技巧函数总结
小白第一次参加慕测的移动端测试,一开始让各种环境配置给搞晕了,差点放弃,关于环境安装我想等下回在写篇文章,给那些想参加又无从下手的人些帮助.这次文章就先讲讲几个做题的技巧,毕竟明天就初测了,说不定有的 ...
- 计算机连续乘法连加总数怎么用,excel乘法函数-Excel函数公式:计数、求和、查询及一对多查询实用万能函数解读...
Excel中,函数公式的威力强大是众所周知的,但是,好多人还是应用不好,今天,我们对常用的万能公式,做一下讲解,希望对大家的工作有所帮助. 一.多条件计数统计--Countifs函数. 目的:计算销往 ...
- mysql有什么好用的小函数_盘点MySQL中比较实用的函数
之前小编在工作中遇到一些处理数据的问题,例如完成日期格式化,获取几天后的时间,生成指定格式的编码等问题,这时候小编经常会写一大堆逻辑代码来进行处理,还自己感觉自己很流弊的样子,后来却发现同事遇到相同的 ...
最新文章
- 【转】学习汇编前你应该知道的知识
- mysql添加自团_Mysql入门基础 数据库创建篇
- postergresql mysql_PosttgreSQL快速入门:PostgreSQL的安装和配置
- panda.read_csv的常用参数说明
- 程序员应该知道的七个图形工具
- 剑指offer——3.实现数组中重复数字查找
- 第十届全国社会媒体处理大会 (SMP 2021) 征文通知
- 道一MD5校验工具发布
- unexpected indent错误
- Windows文件资源管理器访问统信(UOS)虚拟机文件夹
- JS测试显示屏分辨率以及屏幕尺寸
- Word学习笔记:P6-文档封面、页眉、页脚设置
- QT在windows上检测USB端口插拔
- 解决数据库日期返回格式不是yyyy-MM-dd HH:mm:ss 的问题
- 知乎上102个简短而深刻的回答:看完人生豁然开朗
- 全面屏手机时代,指纹识别究竟该何去何从?
- c4d fbx大小_C4D设计模型大全,多达23.7GB
- C语言中malloc与free
- java版我的世界附魔指令_我的世界手机版附魔指令大全 怎么使用附魔指令
- 使用了未经检查或不安全的操作_安全生产无隐患,瓦斯检查员安全操作技术规程...
热门文章
- 解决域中打印机不能共享打印的问题
- SQL DATEADD (Transact-SQL)根据需要返回时间,
- python 爬取_使用 Python 和 BeautifulSoup 来做爬虫抓取
- SpringMVC之RequestHeader注解与CookieValue注解详解
- 40Linux组41Linux所有者42Linux所在组43Linux修改所有组
- 14Linux远程登录And15Linux远程文件传输
- 2-2Pytorch1.5环境配置
- 手机linux比windows省电,为什么win10比ubuntu省电?
- php 滑动 图片,JQuery图片滑动
- idata界面_iData手持终端常见问题集,持续更新中...