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源码加密 仿微盾PHP加密专家(PHPCodeLock)
May 06 PHP
php的memcached客户端memcached
Jun 14 PHP
php命令行用法入门实例教程
Oct 27 PHP
PHP正则验证Email的方法
Jun 15 PHP
带你了解PHP7 性能翻倍的关键
Nov 19 PHP
thinkphp实现分页显示功能
Dec 03 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
Dec 06 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
Feb 15 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
Jul 03 PHP
PHP htmlspecialchars_decode()函数用法讲解
Mar 01 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
Mar 29 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
May 25 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+mysql分页代码详解
2008/03/27 PHP
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
jquery触发a标签跳转事件示例代码
2013/07/21 Javascript
JQuery获取或设置ckeditor的数据(示例代码)
2013/11/15 Javascript
js清空表单数据的两种方式(遍历+reset)
2014/07/18 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
jQuery实现左右滑动的toggle方法
2018/03/03 jQuery
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
python实现socket端口重定向示例
2014/02/10 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
纯CSS3打造动感漂亮时尚的扇形菜单
2014/03/18 HTML / CSS
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
海外淘书首选:AbeBooks
2017/07/31 全球购物
意大利和国际最佳时尚品牌:Drestige
2019/12/28 全球购物
红旗团支部事迹材料
2014/01/27 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
年终总结会议主持词
2014/03/17 职场文书
社区四风存在问题及整改措施
2014/10/26 职场文书
客房领班岗位职责
2015/02/11 职场文书
2015年小学二年级班主任工作总结
2015/05/21 职场文书
2015年电教工作总结
2015/05/26 职场文书
演讲开头怎么书写?
2019/08/06 职场文书
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis