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 相关文章推荐
杏林同学录(七)
Oct 09 PHP
php5.2时间相差8小时
Jan 15 PHP
zend api扩展的php对象的autoload工具
Apr 18 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
Jun 17 PHP
xss防御之php利用httponly防xss攻击
Mar 21 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
Apr 10 PHP
PHP使用Pthread实现的多线程操作实例
Nov 14 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
Aug 20 PHP
Laravel多域名下字段验证的方法
Apr 04 PHP
php5.6.x到php7.0.x特性小结
Aug 17 PHP
在Laravel中实现使用AJAX动态刷新部分页面
Oct 15 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
java EJB 加密与解密原理的一个例子
2008/01/11 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
2014/04/21 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
2015/04/14 PHP
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
轻松创建nodejs服务器(10):处理上传图片
2014/12/18 NodeJs
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
简单谈谈gulp-changed插件
2017/02/21 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
利用JS实现scroll自定义滚动效果详解
2017/10/17 Javascript
深入理解react-router 路由的实现原理
2018/09/26 Javascript
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
在vue中实现给每个页面顶部设置title
2020/07/29 Javascript
vue实现公共方法抽离
2020/07/31 Javascript
Python处理Excel文件实例代码
2017/06/20 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
python制作mysql数据迁移脚本
2019/01/01 Python
css3使网页、图片变成灰色兼容大多数浏览器
2014/07/02 HTML / CSS
HTML5+CSS3绘制锯齿状的矩形
2016/03/01 HTML / CSS
儿科主治医生个人求职信
2013/09/23 职场文书
模具数控专业自荐信
2014/01/27 职场文书
幼儿园小班教学反思
2014/02/02 职场文书
2014庆六一活动方案
2014/03/02 职场文书
党的群众路线教育实践活动动员会主持词
2014/03/20 职场文书
2014年工作总结及2015工作计划
2014/12/12 职场文书
2014年终工作总结范本
2014/12/15 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书
重阳节简报
2015/07/20 职场文书
工作感想范文
2015/08/07 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书