php一些公用函数的集合


Posted in PHP onMarch 27, 2008

/*获得客户端ip地址*/
    function getIP() {
        if(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"),"unknown")) {
                $ip = getenv("HTTP_CLIENT_IP");
        }
        else if(getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"),"unknown")) {
                $ip = getenv("HTTP_X_FORWARDED_FOR");
        }
        else if(getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"),"unknown")) {
                $ip = getenv("REMOTE_ADDR");
        }
        else if(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'],"unknown")) {
                $ip = $_SERVER['REMOTE_ADDR'];
        }
        else {
                $ip = "unknown";
        }

        return($ip);
}

/*验证IP地址函数*/
function checkIP($ip) {
        return preg_match((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?);
}

/*用户输入内容过滤函数*/
function getStr($str) {
    $tmpstr = trim($str);
    $tmpstr = strip_tags($tmpstr);
    $tmpstr = htmlspecialchars($tmpstr);

    /*加入字符转义*/
    $tmpstr = addslashes($tmpstr);

    return $tmpstr;
}

/*容量大小计算函数*/
function sizecount($filesize) {
        if($filesize >= 1073741824) {
                $filesize = round($filesize / 1073741824 * 100) / 100 . ' G';
        } elseif($filesize >= 1048576) {
                $filesize = round($filesize / 1048576 * 100) / 100 . ' M';
        } elseif($filesize >= 1024) {
                $filesize = round($filesize / 1024 * 100) / 100 . ' K';
        } else {
                $filesize = $filesize . ' bytes';
        }
        return $filesize;
}

/*简单防SQL注入函数*/
function getSQL($feild) {
    $tmpfeild = mysql_escape_string($feild);

    return $tmpfeild;
}
/*$num必须为英文字符或数字0-9*/
function getNums($num) {
    return (ctype_alnum($num));
}

/*$char必须为英文字符*/
function getChar($char) {
    return (ctype_alpha($char));
}
/*匹配qq(5-12)位*/
function getQQ($qq) {
    return preg_match("/^\b[0-9]{5,12}\b/",$qq);
}
/*匹配电子邮件地址*/
function getEmail($email) {
    return strlen($email)>6 && preg_match("/^\w+@(\w+\.)+[com]|[cn]$/" , $email);
// preg_match("/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/",$email);
}

/*生成email连接*/
function emailconv($email,$tolink=1) {
        $email=str_replace(array('@','.'),array('@','.'),$email);
        return $tolink ? '<a href="mailto: '.$email.'">'.$email.'</a>':$email;
}

/*检查ip是否被允许访问*/
function ipaccess($ip,$accesslist) {
        return preg_match("/^(".str_replace(array("\r\n",' '),array('|',''),preg_quote($accesslist,'/')).")/",$ip);
}

/*若标题过长,此函数可显示前几个字符,剩余字符用...代替*/
function cutstr($string, $length) {
    if(strlen($string) > $length) {
        for($i = 0; $i < $length - 3; $i++) {
                   /*返回字符的序数值*/
            $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
        }
        return $strcut.' ...';
    } else {
        return $string;
    }
}

PHP 相关文章推荐
PHP调用JAVA的WebService简单实例
Mar 11 PHP
PHP实现采集中国天气网未来7天天气
Oct 15 PHP
php生成圆角图片的方法
Apr 07 PHP
浅谈PHP中output_buffering
Jul 13 PHP
php实现无限级分类(递归方法)
Aug 06 PHP
深入讲解PHP Session及如何保持其不过期的方法
Aug 18 PHP
php 的反射详解及示例代码
Aug 25 PHP
PHP数组生成XML格式数据的封装类实例
Nov 10 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
php strftime函数获取日期时间(switch用法)
May 16 PHP
PHP实现正则匹配所有括号中的内容
Jun 22 PHP
PHP+jQuery实现即点即改功能示例
Feb 21 PHP
PHP之变量、常量学习笔记
Mar 27 #PHP
php日历[测试通过]
Mar 27 #PHP
PHP与MySQL开发中页面乱码的产生与解决
Mar 27 #PHP
php中cookie的作用域
Mar 27 #PHP
简单的PHP图片上传程序
Mar 27 #PHP
php中变量及部分适用方法
Mar 27 #PHP
php Undefined index和Undefined variable的解决方法
Mar 27 #PHP
You might like
php插入中文到sqlserver 2008里出现乱码的解决办法分享
2012/07/19 PHP
PHP微信开发之二维码生成类
2015/06/26 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
php使用自带dom扩展进行元素匹配的原理解析
2020/05/29 PHP
js验证表单第二部分
2006/11/25 Javascript
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
在html页面中包含共享页面的方法
2008/10/24 Javascript
jQuery前台数据获取实现代码
2011/03/16 Javascript
Javascript页面添加到收藏夹的简单方法
2013/08/07 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
Angular2学习教程之组件中的DOM操作详解
2017/05/28 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
react+redux的升级版todoList的实现
2017/12/18 Javascript
JavaScript ES2019中的8个新特性详解
2019/02/20 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
Python实现的简单算术游戏实例
2015/05/26 Python
深入理解Python变量与常量
2016/06/02 Python
使用python生成目录树
2018/03/29 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
使用python模拟命令行终端的示例
2019/08/13 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
python 实现压缩和解压缩的示例
2020/09/22 Python
Python类class参数self原理解析
2020/11/19 Python
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
2017/08/18 HTML / CSS
最新远光软件笔试题面试题内容
2013/11/08 面试题
军训感想500字
2014/02/20 职场文书
教师求职信范文
2014/05/24 职场文书
新闻工作者先进事迹
2014/05/26 职场文书
三月学雷锋活动总结
2014/06/26 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
2014年小学工作总结
2014/11/26 职场文书
解除租房协议书
2014/12/03 职场文书
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android