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,,。.??!!*-_@=#\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小函数集-篇一的更多相关文章
- Android 之窗口小部件高级篇--App Widget 之 RemoteViews
		Android 之窗口小部件高级篇--App Widget 之 RemoteViews 在之前的一篇博文(Android 之窗口小部件详解--App Widget)中,已经介绍了App Widget的 ... 
- C#常用函数--通用篇
		C#常用函数→通用篇转载地址→http://www.cnblogs.com/superfang/archive/2008/07/02/1233706.html以前我都是"原文地址" ... 
- php常用Stream函数集介绍
		php常用Stream函数集介绍 作者: 字体:[增加 减小] 类型:转载 时间:2013-06-24 本篇文章是对php中的常用Stream函数集进行了详细的分析介绍,需要的朋友参考下 ... 
- perl5 附录一 函数集(未定稿)
		附录一 函数集(未定稿) by flamephoenix 一.进程处理函数 1.进程启动函数 2.进程终止函数 3.进程控制函数 4.其它控制函数二.数学函数三.字符串处理函数四.标量转换函数 ... 
- 微信小程序入门篇
		微信小程序入门篇: 准备工作 IDE搭建 就不多说了,没有内测码去下载个破解版吧,我用了一下,学习完全够了!IDE破解版+安装教程 图片发自简书App 知识准备 JavaScrip还是要看看的,推荐教 ... 
- 使用getopt_long来解析参数的小函数模板
		getopt_long原型 #define no_argument 0 #define required_argument 1 #define optional_argument 2 struct o ... 
- 几个非常有用的js小函数
		function $(v){ if(typeof v==="function"){ window.onload=v; }else if(typeof v==="strin ... 
- JS_ECMA基本语法中的几种封装的小函数-2
		大家好!今天继续给大家写一下ECMA中的剩下的小函数以及实用的实例: 首先先给大家说一下字符串.数组.数学方法以及json的一点小知识点: 字符串方法: str.length str.charAt(i ... 
- JS_ECMA基本语法中的几种封装的小函数-1
		今天给大家介绍js ECMA中几个封装的小函数以及一些常用的函数小案例: 1,找重复的函数 <script> //在数组里面找重复: function findInArr(n,arr){ ... 
随机推荐
- ubuntu samba 配置简介
			Ubuntu 11.04下虚拟机Samba的共享配置详细步骤 一. Ubuntu 11.04下Samba的安装: $ sudo apt-get insall samba ... 
- Python基础教程笔记——第2章:列表和元组
			python shell 里重复上一次的命令:Alt+p 2.3 列表:Python的苦力 (1)list函数 (2)列表赋值,不蹦蹦为一个元素不存在的位置赋值 (3)删除元素,del name[1] ... 
- Python高级进阶(二)Python框架之Django写图书管理系统(LMS)
			正式写项目准备前的工作 Django是一个Web框架,我们使用它就是因为它能够把前后端解耦合而且能够与数据库建立ORM,这样,一个Python开发工程师只需要干自己开发的事情就可以了,而在使用之前就我 ... 
- HDU 1024 【DP】
			题意: 给n个数将其分成连续的m组,使得这些组的数加和最大,组与组之间可以空数. /* dp[i][j]表示将前j个数分成i个组最大值 状态转移方程是: dp[i][j]=max(dp[i-1][0. ... 
- POJ 3264 Balanced Lineup(RMQ_ST)
			题目链接:http://poj.org/problem? id=3264 Description For the daily milking, Farmer John's N cows (1 ≤ N ... 
- 【深度探索c++对象模型】Function语义学之成员函数调用方式
			非静态成员函数 c++的设计准则之一就是:非静态成员函数至少和一般的非成员函数有相同的效率.编译器内部已将member函数实体转换为对等的nonmember函数实体. 转化步骤: 1.改写函数原型以安 ... 
- Office WORD如何为每一页设置不同的页眉页脚
			如下图所示,我想要为封面和目录,摘要等等设置不同的页眉页脚(一般封面和目录不需要页脚) 而从正文开始,套用相同的页眉和以页数作为页脚(注意"第一章 绪论"不是这个文档的第一页) ... 
- Linux经常使用命令(更新中)
			文件类: 1.创建目录:mkdir 例:sudo mkdir test 2.创建空文件:touch 例:sudo touch test.txt 3.删除文件:rm 删除文件不须要确认:rm -f 例: ... 
- OSChinaclient源代码学习(2)--缓存的设计
			一.缓存的作用 请求数据的时候,首先进行推断,能否够从缓存中获取数据,假设满足条件,则直接从缓存中获取数据.否则请求新的数据.这样比没有缓存的情况下.每次都要从server请求数据要快,并且.没有网的 ... 
- SQL yog过期后教你怎么让他不过期
			打开注册表 安装sqlyog后,进入注册表编辑器,进入\HEYK_CURRENT_USER\Software\,找到以{}括起来的那项直接干掉! 1, regedit 2,修改 3, 
