PHP小函数集-篇一

一、
验证


    /**
* 判断用户名是否规范
*/
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,,。.??!!*[email protected]=#\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 ([email protected] 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小函数集-篇一,布布扣,bubuko.com

时间: 2024-10-14 15:29:26

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

微信小程序入门篇

微信小程序入门篇: 准备工作 IDE搭建 就不多说了,没有内测码去下载个破解版吧,我用了一下,学习完全够了!IDE破解版+安装教程 图片发自简书App 知识准备 JavaScrip还是要看看的,推荐教程 廖雪峰大神的博客 HTML+CSS 大概知道是干啥的就行 从零开始 微信小程序中就四种类型的文件 js ---------- JavaScrip文件 json -------- 项目配置文件,负责窗口颜色等等 wxml ------- 类似HTML文件 wxss ------- 类似CSS文件

php 函数集介绍

php源代码之函数集介绍 array_change_key_case — 返回字符串键名全为小写或大写的数组 array_chunk — 将一个数组分割成多个 array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值 array_count_values — 统计数组中所有的值出现的次数 array_diff_assoc — 带索引检查计算数组的差集 array_diff_key — 使用键名比较计算数组的差集 array_diff_uassoc — 用用户

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

附录一 函数集(未定稿) by flamephoenix 一.进程处理函数  1.进程启动函数  2.进程终止函数  3.进程控制函数  4.其它控制函数二.数学函数三.字符串处理函数四.标量转换函数五.数组和列表函数六.关联数组函数 一.进程处理函数 1.进程启动函数 函数名 eval 调用语法 eval(string) 解说 将string看作Perl语句执行.正确执行后,系统变量[email protected]为空串,如果有错误,[email protected]中为错误信息. 例子 $

C#常用函数--通用篇

C#常用函数→通用篇转载地址→http://www.cnblogs.com/superfang/archive/2008/07/02/1233706.html以前我都是"原文地址"→后来发现不准确有些是转载别人的但是不写原文地址→还是"转载地址"准确点→ 1.DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime

Java多线程知识小抄集(一)

本文主要整理博主遇到的Java多线程的相关知识点,适合速记,故命名为"小抄集".本文没有特别重点,每一项针对一个多线程知识做一个概要性总结,也有一些会带一点例子,习题方便理解和记忆. 1. interrupted与isInterrupted的区别 interrupted():测试当前线程是否已经是中断状态,执行后具有状态标志清除为false的功能. isInterrupted():测试线程Thread对象是否已经是中断状态,但不清楚状态标志. 方法: public static boo

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

大家好!今天继续给大家写一下ECMA中的剩下的小函数以及实用的实例: 首先先给大家说一下字符串.数组.数学方法以及json的一点小知识点: 字符串方法: str.length str.charAt(i):取字符串中的某一个; str.indexOf('e');找第一个出现的位置;找不到返回-1; str.lastIndexOf('e'):找最后一个e出现的位置;找不到返回-1; str.toUpperCase();转大写 str.toLowerCase();转小写 str.substring(起

JS_ECMA基本语法中的几种封装的小函数

先来回顾一下我们的字符串: 字符串方法: str.length str.charAt(i):取字符串中的某一个; str.indexOf('e');找第一个出现的位置;找不到返回-1; str.lastIndexOf('e'):找最后一个e出现的位置;找不到返回-1; str.toUpperCase();转大写 str.toLowerCase();转小写 str.substring(起始位置,结束位置):字符串截取; str.split('切割的方式');字符串切割;字符串转数组;数组方法:删除

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

getopt_long原型 #define no_argument 0 #define required_argument 1 #define optional_argument 2 struct option { const char *name; //名称,下面实例中使用的--help,--version int has_arg; //是否有参数,可选0,1,2三个值,就是上面的那三个宏定义 int *flag; //返回值,传入的一个int指针,表示该参数的解析结果,如果是NULL,那么返

python若干小函数的使用

preface:一些python的小函数,好像挺方便的,记录下来. #coding:utf-8 #------------------- #split()的maxsplit()参数,第二个参数数值,代表着对前多少个分隔符进行分裂. print 'hello,world,foo,bar'.split(',',2) #['hello', 'world', 'foo,bar'] #------------------- #当遍历的时候,用enumerate()同时获得元素和下标.第二个参数数值表示从该