一、 验证

    /**
* 判断用户名是否规范
*/
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. JPos学习

    基于JPos的消息交换系统 消息交换系统需求解读 消息交换系统不不是一个具体的业务系统,而是业务系统的运转的基础框架: 他的运转是体现在报文交换上的: 要定义一个可被不同业务系统使用的报文规范: 报文 ...

  2. loadrunner 并发操作集合点配置

    在loadrunner的虚拟用户中,术语concurrent(并发)和simultaneous(同时)存在一些区别,concurrent 是指虚拟场景中参于运行的虚拟用户.而simultaneous与 ...

  3. 【POJ3254】Corn Fields(状压DP)

    题意: 一个M x N矩阵里有很多格子,每个格子有两种状态,可以放牧和不可以放牧,可以放牧用1表示,否则用0表示,在这块牧场放牛,要求两个相邻的方格不能同时放牛,即牛与牛不能相邻.问有多少种放牛方案( ...

  4. vagrant的学习 之 打包分发

    vagrant的学习 之 打包分发 一.打包Box: (1)关闭虚拟机. vagrant halt (2)打包: vagrant package 这样打包出来的文件叫package.box. 指定生成 ...

  5. Permutation Sequence(超时,排列问题)

    The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of the p ...

  6. [Bzoj4817] [Sdoi2017]树点涂色 (LCT神题)

    4817: [Sdoi2017]树点涂色 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 629  Solved: 371[Submit][Status ...

  7. 在访问RESTful接口时出现:Could not write content: No serializer found for class的问题解决小技巧收集

    注意:市面上对于写RESTful是用RestFul,其实是不规范的,标准写法RESTful. 在Java上,处理这个应该是没有继承Serializable类,然后通过Eclipse生成serialVe ...

  8. C# DataGridView,右键单击RowHeader时显示右键菜单怎么做?

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)         {       ...

  9. The 2014 ACM-ICPC Asia Mudanjiang Regional Contest 【部分题解】

    2014牡丹江亚洲区域赛邀请赛 B题:图论题目 题解:这里 K题:想法题 分析:两种变化.加入和交换.首先:星号是n的话最少须要的数字是n+1,那么能够首先推断数字够不够,不够的话如今最前面添数字,假 ...

  10. 3.将maven项目jar纳入maven仓库,Mave项目依赖另外一个Maven项目的案例

     1 若想让maven项目依赖另外一个maven项目.被依赖的项目要在maven仓库中有对应的jar包,所以要对依赖的项目运行mvninstall命令. 2 新建第二个项目模块HelloFrien ...