公共函数有借鉴各个大神的代码如有侵权请联系本人删除或修改
<?php
/**
* 公共函数类
*/
class CFn
{
private static $secretKey = 'TOIOMMBGTFTPOKPOLMKNGYT'; //秘钥
//+++++++++++++++++++++++++分页相关++++++++++++++++++++++++++++++++++++++++++++++++
/**
* 计算分页偏移量 当前页 总页数
* $page 页数
* $count 总页数
* @return 分页偏移量 offset 当前页码page 总页数count 每页数量pageSize
*/
public static function _getOffsetPageSize($page, $count, $pageSize)
{
$pageSize = $pageSize ? $pageSize : 10;
$pages = ceil($count/$pageSize);
if($page < 1)
{
$page = 1;
}
if($page > $pages && $pages > 0)
{
$page = $pages;
}
$_offset = ($page -1) * $pageSize;
return array('page'=>$page ,'offset'=>$_offset, 'pageSize'=>$pageSize, 'count'=>$pages);
}
//+++++++++++++++++++++++++密码校验码等++++++++++++++++++++++++++++++++++++++++++++++++
/**
* 密码加密
* @return 加密串
*/
public static function passwordEncode($txt)
{
srand((double)microtime() * 1000000);
$rand = rand( 1, 10000 );
$encrypt_key = md5( $rand );
$ctr = 0;
$tmp = '';
for($i = 0;$i < strlen($txt); $i++)
{
$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
$tmp .= $encrypt_key[$ctr].($txt[$i] ^ $encrypt_key[$ctr++]);
}
$encrypt_key = md5(self::$secretKey);
$ctr = 0;
$tmp = '';
for($i = 0; $i < strlen($txt); $i++)
{
$c= $ctr == strlen($encrypt_key) ? 0 : $ctr;
$tmp .= $txt[$i] ^ $encrypt_key[$ctr++];
}
return base64_encode( $tmp );
}
/**
* 生成纯数字的校验码
*/
public static function generateCode()
{
$checkCodeDigit = 5;
$_randCode = "";
for ($i = 0; $i < $checkCodeDigit; $i++) {
if ($i == 0)
{
//考虑到数据库存储校验码为int类型所以第一个随机数不能为0
$_randCode .= rand(1, 9);
} else
{
$_randCode .= rand(0, 9);
}
}
return $_randCode;
}
/**
* 生成随机密码
*/
public static function generateRandPassword ()
{
// 密码字符集,可任意添加你需要的字符
$chars = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
'i', 'j', 'k', 'l','m', 'n', 'o', 'p', 'q', 'r', 's',
't', 'u', 'v', 'w', 'x', 'y','z', 'A', 'B', 'C', 'D',
'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L','M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y','Z',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
$length = 10;
// 在 $chars 中随机取 $length 个数组元素键名
$keys = array_rand($chars, $length);
$password = '';
for($i = 0; $i < $length; $i++)
{
// 将 $length 个数组元素连接成字符串
$password .= $chars[$keys[$i]];
}
return $password;
}
//+++++++++++++++++++++++++数据处理++++++++++++++++++++++++++++++++++++++++++++++++
/**
* 为插入语句的参数添加单引号
* data 字符串类型参数
* return 返回带单引号的参数
*/
public static function addQMark ($data)
{
return "'" . $data . "'";
}
/**
* 为图片拼接全路径
* @return 拼接了全路径的地址
* @author panchengze 2014-07-01
*/
public static function addWebHost ($webHost, $param)
{
$_param = "";
if (empty($param))
{
return "";
}
$decodeParam = json_decode($param, true);
if ($decodeParam)
{
$param = $decodeParam;
}
if (is_array($param))
{
foreach ($param as $k=>$v)
{
$param[$k] = $webHost . $v;
}
$_param = $param;
} else
{
$_param = $webHost . $param;
}
return $_param;
}
/**
* 将类似于"a1,a2,a3"这样的数据类型变为"'a1','a2','a3'" 目的是为了数据库查询使用 例如 in ('a1','a2')
* @return string
*/
public static function stringForInSql ($str)
{
$_arr = explode(',', $str);
foreach($_arr as $k=>$v)
{
$_arr[$k] = self::addQMark($v);
}
$_str = implode(',', $_arr);
return $_str;
}
/**
* 将array(array(id=>1), array(id=>2));类型的id转化为字符串类型1,2
* @$data 要转化的数据二维数组
* @$key 要组装的数组的key
* @return 字符串 类似 '1,2,3'
*/
public static function covertToIds($data, $key)
{
$_str = '';
foreach((array)$data as $v)
{
$_str .= $v[$key] . ',';
}
$_str = substr($_str, 0, strlen($_str) - 1);
return $_str;
}
}
?>