最近在看代码,发现以下是几个比较实用的函数。

1,取客户端IP

查看复制打印?
  1. functiongetOnlineIp() {
  2. $strOnlineIp="";
  3. if(getenv('HTTP_CLIENT_IP') &&strcasecmp(getenv('HTTP_CLIENT_IP'),'unknown')) {
  4. $onlineip=getenv('HTTP_CLIENT_IP');
  5. elseif(getenv('HTTP_X_FORWARDED_FOR') &&strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),'unknown')) {
  6. $onlineip=getenv('HTTP_X_FORWARDED_FOR');
  7. elseif(getenv('REMOTE_ADDR') &&strcasecmp(getenv('REMOTE_ADDR'),'unknown')) {
  8. $onlineip=getenv('REMOTE_ADDR');
  9. elseif(isset($_SERVER['REMOTE_ADDR']) &&$_SERVER['REMOTE_ADDR'] &&strcasecmp($_SERVER['REMOTE_ADDR'],'unknown')) {
  10. $onlineip=$_SERVER['REMOTE_ADDR'];
  11. }
  12. preg_match("/[\d\.]{7,15}/",$onlineip,$onlineipmatches);
  13. $strOnlineIp=$onlineipmatches[0] ?$onlineipmatches[0] :'unknown';
  14. return$strOnlineIp;
  15. }

这里,如果使用多级代理的用户,真实IP是取不到的。

2,字符串截取,支持中文

查看复制打印?
  1. functiongetStrTruncate($string,$length= 80,$etc=''){
  2. if($length== 0)return'';
  3. mb_internal_encoding("UTF-8");
  4. $string=str_replace("\n","",$string);
  5. $strlen= mb_strwidth($string);
  6. if($strlen>$length) {
  7. $etclen= mb_strwidth($etc);
  8. $length=$length-$etclen;
  9. $str='';$n= 0;
  10. for($i=0;$i<$length;$i++) {
  11. $c= mb_substr($string,$i, 1);
  12. $n+= mb_strwidth($c);
  13. if($n>$length) {break; }
  14. $str.=$c;
  15. }
  16. return$str.$etc;
  17. else{
  18. return$string;
  19. }
  20. }
  21. echogetStrTruncate("海底苍鹰博客",7);//结果是海底苍,utf8一个汉字对应二个字符

3,多长时间前的时间函数,论坛,博客常用

查看复制打印?
  1. functiontimeFromNow($dateline) {
  2. if(emptyempty($dateline))returnfalse;
  3. $seconds= time() -$dateline;
  4. if($seconds< 60){
  5. return"1分钟前";
  6. }elseif($seconds< 3600){
  7. returnfloor($seconds/60)."分钟前";
  8. }elseif($seconds< 24*3600){
  9. returnfloor($seconds/3600)."小时前";
  10. }elseif($seconds< 48*3600){
  11. returndate("昨天 H:i",$dateline)."";
  12. }else{
  13. returndate('Y-m-d',$dateline);
  14. }
  15. }
  16. echotimeFromNow(strtotime("2012-07-07 14:15:13"));//昨天 14:15
  17. echotimeFromNow(strtotime("2012-07-08 14:15:13"));//1小前

4,过滤部分标签

查看复制打印?
  1. functiondelTags($str)
  2. {
  3. $farr=array(
  4. "/<(\/?)(script|i?frame|style|html|body|title|link|meta|form|input|embed|object|textarea|\?|\%)([^>]*?)>/isU",
  5. "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU"
  6. );
  7. $tarr=array(
  8. "",
  9. ""
  10. );
  11. $str= preg_replace($farr,$tarr,$str);
  12. return$str;
  13. }
  14. $str="<a href='#'>asdfasdfsd</a>====<script>alert(1111)</script>";
  15. echodelTags($str);//结果:<a href='#'>asdfasdfsd</a>====alert(1111)
  16. echostrip_tags($str);//结果:sdfasdfsd====alert(1111)

如果要过滤所有标签strip_tags就够用了。

转载于:https://www.cnblogs.com/moqiang02/p/4061450.html

php 几个比较实用的函数相关推荐

  1. c++调用gcd函数_c++函数库中一些实用的函数

    有一些程序,虽然写起来不难,但是可能比较麻烦或容易出错,这时就可以用c++函数库里自带的一些实用的函数. 这里只记录一些不太常见的函数. ------------------------------- ...

  2. mysql算法函数_十个实用MySQL函数

    本文首发于个人微信公众号<andyqian>,期待你的关注! 前言 继上一次<十个实用MySQL命令>后,今天奉上十个实用MySQL函数.下面都是一些比较常用且简单的函数,在工 ...

  3. 56个JavaScript 实用工具函数助你提升开发效率!

    今天来看看JavaScript中的一些实用的工具函数,希望能帮助你提高开发效率!整理不易,如果觉得有用就点个赞吧! 实用工具函数.png 1. 数字操作 (1)生成指定范围随机数 export con ...

  4. 【总结】56个JavaScript 实用工具函数助你提升开发效率!

    作者:CUGGZ https://juejin.cn/post/7019090370814279693 又快到周五啦,快来一起摸鱼呀!今天来看看JavaScript中的一些实用的工具函数,希望能帮助你 ...

  5. 呕心沥血集齐史上最全 JavaScript最实用工具函数大全,建议收藏!

    为元素添加on方法 Element.prototype.on = Element.prototype.addEventListener; NodeList.prototype.on = functio ...

  6. Python 中 pct_change 函数是一种非常实用的函数,它可以帮助我们计算一个时间序列的百分比变化率。在数据分析和金融领域中,我们经常需要计算某个指标...

    Python 中 pct_change 函数是一种非常实用的函数,它可以帮助我们计算一个时间序列的百分比变化率.在数据分析和金融领域中,我们经常需要计算某个指标相对于前一期的变化率,这时可以使用 pc ...

  7. 慕测 移动应用测试——实用技巧函数总结

    小白第一次参加慕测的移动端测试,一开始让各种环境配置给搞晕了,差点放弃,关于环境安装我想等下回在写篇文章,给那些想参加又无从下手的人些帮助.这次文章就先讲讲几个做题的技巧,毕竟明天就初测了,说不定有的 ...

  8. 计算机连续乘法连加总数怎么用,excel乘法函数-Excel函数公式:计数、求和、查询及一对多查询实用万能函数解读...

    Excel中,函数公式的威力强大是众所周知的,但是,好多人还是应用不好,今天,我们对常用的万能公式,做一下讲解,希望对大家的工作有所帮助. 一.多条件计数统计--Countifs函数. 目的:计算销往 ...

  9. mysql有什么好用的小函数_盘点MySQL中比较实用的函数

    之前小编在工作中遇到一些处理数据的问题,例如完成日期格式化,获取几天后的时间,生成指定格式的编码等问题,这时候小编经常会写一大堆逻辑代码来进行处理,还自己感觉自己很流弊的样子,后来却发现同事遇到相同的 ...

最新文章

  1. 【转】学习汇编前你应该知道的知识
  2. mysql添加自团_Mysql入门基础 数据库创建篇
  3. postergresql mysql_PosttgreSQL快速入门:PostgreSQL的安装和配置
  4. panda.read_csv的常用参数说明
  5. 程序员应该知道的七个图形工具
  6. 剑指offer——3.实现数组中重复数字查找
  7. 第十届全国社会媒体处理大会 (SMP 2021) 征文通知
  8. 道一MD5校验工具发布
  9. unexpected indent错误
  10. Windows文件资源管理器访问统信(UOS)虚拟机文件夹
  11. JS测试显示屏分辨率以及屏幕尺寸
  12. Word学习笔记:P6-文档封面、页眉、页脚设置
  13. QT在windows上检测USB端口插拔
  14. 解决数据库日期返回格式不是yyyy-MM-dd HH:mm:ss 的问题
  15. 知乎上102个简短而深刻的回答:看完人生豁然开朗
  16. 全面屏手机时代,指纹识别究竟该何去何从?
  17. c4d fbx大小_C4D设计模型大全,多达23.7GB
  18. C语言中malloc与free
  19. java版我的世界附魔指令_我的世界手机版附魔指令大全 怎么使用附魔指令
  20. 使用了未经检查或不安全的操作_安全生产无隐患,瓦斯检查员安全操作技术规程...

热门文章

  1. 解决域中打印机不能共享打印的问题
  2. SQL DATEADD (Transact-SQL)根据需要返回时间,
  3. python 爬取_使用 Python 和 BeautifulSoup 来做爬虫抓取
  4. SpringMVC之RequestHeader注解与CookieValue注解详解
  5. 40Linux组41Linux所有者42Linux所在组43Linux修改所有组
  6. 14Linux远程登录And15Linux远程文件传输
  7. 2-2Pytorch1.5环境配置
  8. 手机linux比windows省电,为什么win10比ubuntu省电?
  9. php 滑动 图片,JQuery图片滑动
  10. idata界面_iData手持终端常见问题集,持续更新中...