一、 验证

    /**
* 判断用户名是否规范
*/
function is_username($username)
{
if (preg_match("/^[a-zA-Z]{1}([0-9a-zA-Z]|[._]){3,19}$/",$username))
{
return true;
}
}
    /**
* 判断密码是否规范
*/
function is_password($password)
{
if (preg_match("/^[\@A-Za-z0-9\!\#\$\%\^\&\*\.\~]{6,22}$/",$password))
{
return true;
}
}
    /**
* 判断是否为数字
*/
function is_number($number)
{
if (preg_match("/^[0-9]*[1-9][0-9]*$/", $number))
{
return true;
}
}
    /**
* 判断是否为邮件地址
*/
function is_email($email)
{
if (preg_match("/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/", $email))
{
return true;
}
}
    /**
* 判断是否为字母
*/
function is_letter($letter)
{
if (preg_match("/^[a-z]+$/", $letter))
{
return true;
}
}
    /**
* 验证文本域输入的内容
*/
function is_text($text)
{
if (preg_match("/^[\x{4e00}-\x{9fa5}a-zA-Z0-9,,。.??!!*-_\s]+$/u", $text))
{
return true;
}
}
    /**
* 验证文本框输入的内容
*/
function is_textarea($textarea)
{
if (preg_match("/^[\x{4e00}-\x{9fa5}a-zA-Z0-9,,。.??!!*-_@=#\s\n\r]+$/u", $textarea))
{
return true;
}
}
    /**
* 判断 文件/目录 是否可写
*/
function check_writeable($file)
{
if (file_exists($file))
{
if (is_dir($file))
{
$dir = $file;
if ($fp = @fopen("$dir/test.txt", 'w'))
{
@fclose($fp);
@unlink("$dir/test.txt");
$writeable = 1;
}
else
{
$writeable = 0;
}
}
else
{
if ($fp = @fopen($file, 'a+'))
{
@fclose($fp);
$writeable = 1;
}
else
{
$writeable = 0;
}
}
}
else
{
$writeable = 2;
} return $writeable;
}
    /**
+----------------------------------------------------------
* 递归方式的对变量中的特殊字符进行转义
+----------------------------------------------------------
*/
function addslashes_deep($value)
{
if (empty ($value))
{
return $value;
} if (is_array($value))
{
foreach ((array) $value as $k => $v)
{
unset ($value[$k]);
$k = addslashes($k);
if (is_array($v))
$value[$k] = addslashes_deep($v);
else
$value[$k] = addslashes($v);
}
}
else
{
$value = addslashes($value);
}
return $value;
} /**
+----------------------------------------------------------
* 递归方式的对变量中的特殊字符去除转义
+----------------------------------------------------------
*/
function stripslashes_deep($value)
{
if (empty ($value))
{
return $value;
} if (is_array($value))
{
foreach ((array) $value as $k => $v)
{
unset ($value[$k]);
$k = stripslashes($k);
if (is_array($v))
{
$value[$k] = stripslashes_deep($v);
}
else
{
$value[$k] = stripslashes($v);
}
}
}
else
{
$value = stripslashes($value);
}
return $value;
} /**
+----------------------------------------------------------
* 交互数据转义操作
+----------------------------------------------------------
*/
function dou_magic_quotes()
{
if (!@ get_magic_quotes_gpc())
{
if (!empty ($_GET))
$_GET = addslashes_deep($_GET);
if (!empty ($_POST))
$_POST = addslashes_deep($_POST);
$_COOKIE = addslashes_deep($_COOKIE);
$_REQUEST = addslashes_deep($_REQUEST);
}
}
    /**
+----------------------------------------------------------
* 获取真实IP地址
+----------------------------------------------------------
*/
function get_ip()
{
$ip = false;
if (!empty ($_SERVER["HTTP_CLIENT_IP"]))
{
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty ($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ips = explode(", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip)
{
array_unshift($ips, $ip);
$ip = FALSE;
}
for ($i = 0; $i < count($ips); $i++)
{
if (!preg_match("/^(10|172\.16|192\.168)\./", $ips[$i]))
{
$ip = $ips[$i];
break;
}
}
}
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}

PHP小函数集-篇一的更多相关文章

  1. Android 之窗口小部件高级篇--App Widget 之 RemoteViews

    Android 之窗口小部件高级篇--App Widget 之 RemoteViews 在之前的一篇博文(Android 之窗口小部件详解--App Widget)中,已经介绍了App Widget的 ...

  2. C#常用函数--通用篇

    C#常用函数→通用篇转载地址→http://www.cnblogs.com/superfang/archive/2008/07/02/1233706.html以前我都是"原文地址" ...

  3. php常用Stream函数集介绍

    php常用Stream函数集介绍 作者: 字体:[增加 减小] 类型:转载 时间:2013-06-24   本篇文章是对php中的常用Stream函数集进行了详细的分析介绍,需要的朋友参考下     ...

  4. perl5 附录一 函数集(未定稿)

    附录一 函数集(未定稿) by flamephoenix 一.进程处理函数  1.进程启动函数  2.进程终止函数  3.进程控制函数  4.其它控制函数二.数学函数三.字符串处理函数四.标量转换函数 ...

  5. 微信小程序入门篇

    微信小程序入门篇: 准备工作 IDE搭建 就不多说了,没有内测码去下载个破解版吧,我用了一下,学习完全够了!IDE破解版+安装教程 图片发自简书App 知识准备 JavaScrip还是要看看的,推荐教 ...

  6. 使用getopt_long来解析参数的小函数模板

    getopt_long原型 #define no_argument 0 #define required_argument 1 #define optional_argument 2 struct o ...

  7. 几个非常有用的js小函数

    function $(v){ if(typeof v==="function"){ window.onload=v; }else if(typeof v==="strin ...

  8. JS_ECMA基本语法中的几种封装的小函数-2

    大家好!今天继续给大家写一下ECMA中的剩下的小函数以及实用的实例: 首先先给大家说一下字符串.数组.数学方法以及json的一点小知识点: 字符串方法: str.length str.charAt(i ...

  9. JS_ECMA基本语法中的几种封装的小函数-1

    今天给大家介绍js ECMA中几个封装的小函数以及一些常用的函数小案例: 1,找重复的函数 <script> //在数组里面找重复: function findInArr(n,arr){ ...

随机推荐

  1. Ubuntu启用IPv6上google的方法

    Pv6就是我们通常所说的互联网协议,是TCP/IP的核心协议,那么在Linux下如何开启IPv6呢?下面以Ubuntu为例,给大家介绍下Ubuntu启用IPv6的方法. 方法: $sudo apt-g ...

  2. windows7 下安装使用memcached

    Memcached 安装使用 本地环境:Windows7 64位web环境:wamp集成环境,php版本:PHP Version 7.1.17 学习参考网站: RUNOOB.COM官网  http:/ ...

  3. iOS 混合变换旋转 CGAffineTransform 的使用

    在ios 中, Core Graphics 提供了一系列的函数可以在一个变换的基础上做深层次的变换,如果做一个既要缩放又要旋转的变换,以下的方法比较实用. CGAffineTransformScale ...

  4. 最少拦截系统-----hdu1257(dp+最长上升子序列)

    Problem Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高 ...

  5. Java的finally语句在try或catch中的return语句执行之后还是之前?

    import java.util.HashMap; import java.util.Map; public class FinallyDemo1 { public static void main( ...

  6. CSS制作简单图标

    CSS制作图标包括知识点如border-width.border-style.border-color.border-radius.对元素的定位拼接.旋转等结合起来. 图标效果如下(拖动滑块可缩放图标 ...

  7. mysql登录退出命令

    1. MySQL登录与退出登录Mysql:“输入mysql -u帐号 -p密码 这是登陆mysql退出:mysql > exit;以下是实例参考下: 登录Mysql:“输入mysql -uroo ...

  8. mysql too many connection 解决办法

    SHOW VARIABLES LIKE "max_connections"; SHOW VARIABLES LIKE "wait_timeout"; SET G ...

  9. 《从0到1》读书笔记第一章&quot;未来的挑战&quot;第1记:把握潮流风向

    这几天刚到手当前炙手可热的来自PayPal创始人Peter Thiel的<Zero to One>.中文名<从0到1>,由高玉芳翻译.中信出版社出版.由于到货时刚好有事情在忙, ...

  10. [RxJS] `add` Inner Subscriptions to Outer Subscribers to `unsubscribe` in RxJS

    When subscribers create new "inner" sources and subscriptions, you run the risk of losing ...