常用公共函数

公共函数有借鉴各个大神的代码如有侵权请联系本人删除或修改


<?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;
	}
}
?>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值