php 常用通用功能封装函数库

<?php

/*
* 通用函数库
*/
/*
* 断点调试
*/
function p($a) {
echo '<pre>';
print_r($a);
echo '</pre>';
exit();
}
/** mobile_login()是否登录
* @return number
*/
function mobile_login(){
$user = session('user');
if (empty($user)) {
return 0;
} else {
$token =C('TOKEN');
$timeout = (int)$token['login_timeout'];
//验证当前session cookie是否过期
$signKey = $user['sign_str'];
$session_key = session($signKey);
$cookie_key = cookie($signKey);
//检测cookie保存的签名是否完整
if(!$cookie_key){
return 0;
}else {
$cookie_keyArr = explode('_', $cookie_key);
//判断签名是否过期
if((end($cookie_keyArr) + $timeout) < time()){
cookie($signKey,null,-$timeout);
return 0;
}else {
//校验session cookie存放的登录签名是否一致
if ($cookie_keyArr[0] != $session_key){
cookie($signKey,null,-$timeout);
return 0;
}else {
cookie($signKey,$cookie_keyArr[0] . '_' . time(),$timeout);
return $user['uid'];
}
}
}
}
}

/** is_login()是否登录
* @return number
*/
function is_login(){
$user = session('user_auth');
if (empty($user)) {
return 0;
} else {
$token =C('TOKEN');
$timeout = (int)$token['login_timeout'];
//验证当前session cookie是否过期
$signKey = $user['sign_str'];
$session_key = session($signKey);
$cookie_key = cookie($signKey);
//检测cookie保存的签名是否完整
if(!$cookie_key){
return 0;
}else {
$cookie_keyArr = explode('_', $cookie_key);
//判断签名是否过期
if((end($cookie_keyArr) + $timeout) < time()){
cookie($signKey,null,-$timeout);
return 0;
}else {
//校验session cookie存放的登录签名是否一致
if ($cookie_keyArr[0] != $session_key){
cookie($signKey,null,-$timeout);
return 0;
}else {
cookie($signKey,$cookie_keyArr[0] . '_' . time(),$timeout);
return $user['uid'];
}
}
}
}
}

/** is_login()是否登录
* @return number
*/
function is_logins(){
$user = session('user');
if (empty($user)) {
return 0;
} else {
$token =C('TOKEN');
$timeout = (int)$token['login_timeout'];
//验证当前session cookie是否过期
$signKey = $user['sign_str'];
$session_key = session($signKey);
$cookie_key = cookie($signKey);
//检测cookie保存的签名是否完整
if(!$cookie_key){
return 0;
}else {
$cookie_keyArr = explode('_', $cookie_key);
//判断签名是否过期
if((end($cookie_keyArr) + $timeout) < time()){
cookie($signKey,null,-$timeout);
return 0;
}else {
//校验session cookie存放的登录签名是否一致
if ($cookie_keyArr[0] != $session_key){
cookie($signKey,null,-$timeout);
return 0;
}else {
cookie($signKey,$cookie_keyArr[0] . '_' . time(),$timeout);
return $user['uid'];
}
}
}
}
}

/** data_auth_sign() 数据签名
* @param array $data 签名数组
* @return string 返回加密签名
*/
function data_auth_sign($data) {
//数据类型检测
if(!is_array($data)){
$data = (array)$data;
}
ksort($data); //排序
$code = http_build_query($data); //url编码并生成query字符串
$sign = sha1($code); //生成签名
return $sign;
}


/** is_administrator() 是否系统管理员
* @param string $uid
* @return boolean
*/
function is_administrator($uid = null){
$uid = is_null($uid) ? is_login() : $uid;
return $uid && (intval($uid) === C('USER_ADMINISTRATOR'));
}

/** encryptPassword 密码加密函数
* @param string $str
* @param string $code
* @return string
*/
function encryptPassword ($str,$code){
$string = md5(md5($str) . $code);
return $string;
}

/** en_code() 密码加密函数
* @param string $str
* @param string $code
* @return string
*/
function en_code($str,$code){
$string = md5(md5($str) . $code);
return $string;
}

/**
* 返回网站信息
* @return array 数组
*/
function siteInfo(){
$siteinfo = C("WEBSITE");
$siteinfo = is_array($siteinfo)? $siteinfo :array();
return $siteinfo;
}

/** randCode() 随机码函数
* @param number $length 随机码长度
* @param number $type 选择随机码类型
* @return string
*/
function randCode($length = 5, $type = 0) {
$arr = array(1 => "0123456789", 2 => "abcdefghijklmnopqrstuvwxyz", 3 => "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 4 => "~@#$%^&*(){}[]|");
if ($type == 0) {
array_pop($arr);
$string = implode("", $arr);
} else if ($type == "-1") {
$string = implode("", $arr);
} else {
$string = $arr[$type];
}
$count = strlen($string) - 1;
for ($i = 0; $i < $length; $i++) {
$str[$i] = $string[rand(0, $count)];
$code .= $str[$i];
}
return $code;
}

/** get_ip()获取真实IP函数
* @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字
* @return string
*/
function get_ip($type=0){
$type = $type ? 1:0;
static $ip = null;
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
$long = sprintf("%u",ip2long($ip));
$ip = $long ? array($ip, $long) : array('0.0.0.0', 0);
return $ip[$type];
}

/** get_ip()获取真实IP函数
* @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字
* @return string
*/
function get_true_ip($type=0){
$type = $type ? 1:0;
static $ip = null;
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
$long = sprintf("%u",ip2long($ip));
$ip = $long ? array($ip, $long) : array('0.0.0.0', 0);
return $ip[$type];
}

/** cut_str()字符串截取函数
* @param string $str 截取对象
* @param number $len 截取长度
* @param number $start 截取开始位置
* @param number $suffix 结束位置是否加省略号
* @return string
*/
function cut_str($str, $len = 100, $start = 0, $suffix = 1){
$str = strip_tags(trim(strip_tags($str)));
$str = str_replace(array("\n", "\t"), "", $str);
$strlen = mb_strlen($str);

while ($strlen) {
$array[] = mb_substr($str, 0, 1, "utf8");
$str = mb_substr($str, 1, $strlen, "utf8");
$strlen = mb_strlen($str);
}

$end = $len + $start;
$str = "";

for ($i = $start; $i < $end; $i++) {
$str .= $array[$i];
}

return $len < count($array) ? ($suffix == 1 ? $str . "&hellip;" : $str) : $str;
}


/** set_config() 创建配置文件函数
* @param string $name 文件名
* @param string $value 写入的值
* @param string $path 文件存放路径
* @return boolean
*/
function set_config($name, $value = "", $path = DATA_PATH){
static $_cache = array();

$filename = $path . $name . ".php";

if ("" !== $value) {
if (is_null($value)) {
return false !== strpos($name, "*") ? array_map("unlink", glob($filename)) : unlink($filename);
}
else {
$dir = dirname($filename);

if (!is_dir($dir)) {
mkdir($dir, 493, true);
}

$_cache[$name] = $value;
return file_put_contents($filename, strip_whitespace("<?php\treturn " . var_export($value, true) . ";?>"));
}
}

if (isset($_cache[$name])) {
return $_cache[$name];
}

if (is_file($filename)) {
$value = include ($filename);
$_cache[$name] = $value;
}
else {
$value = false;
}

return $value;
}

/** getmessagepic()提取文章内容中的图片
* @param string $content
* @return string
*/
function getcontentpic($content) {
$pic = '';
$content = stripslashes($content);
$content = preg_replace("/\<img src=\".*?image\/face\/(.+?).gif\".*?\>\s*/is", '', $content); //移除表情符
preg_match("/src\=[\"\']*([^\>\s]{25,105})\.(jpg|gif|png)/i", $content, $mathes);
if(!empty($mathes[1]) || !empty($mathes[2])) {
$pic = "{$mathes[1]}.{$mathes[2]}";
}
return addslashes($pic);
}

/** delDir()删除文件夹及文件夹内文件函数
* @param string $path 文件夹路径
* @param string $delDir 是否删除改
* @return boolean
*/
function delDir($path, $del = false){
$handle = opendir($path);
if ($handle) {
while (false !== ($item = readdir($handle))) {
if (($item != ".") && ($item != "..")) {
is_dir("$path/$item") ? delDir("$path/$item", $del) : unlink("$path/$item");
}
}

closedir($handle);

if ($del) {
return rmdir($path);
}
}elseif (file_exists($path)) {
return unlink($path);
}else {
return false;
}
}

/** getpage() 分页函数
* @param number $count
* @param number $pagesize
* @return
*/
function getpage($count, $pagesize = 10) {
$page = new Think\Page($count, $pagesize);
$page->setConfig('header', '<span class="rows">共&nbsp;<b>%TOTAL_ROW%</b>&nbsp;条记录&nbsp;&nbsp;第&nbsp;<b>%NOW_PAGE%</b>&nbsp;页/共&nbsp;<b>%TOTAL_PAGE%</b>&nbsp;页</span>');
$page->setConfig('prev', '上一页');
$page->setConfig('next', '下一页');
$page->setConfig('last', '末页');
$page->setConfig('first', '首页');
$page->setConfig('theme', '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%');
$page->lastSuffix = false;//最后一页不显示为总页数
return $page;
}

/**
* list_sort_by()对查询结果集进行排序
* @param array $list 查询结果
* @param string $field 排序的字段名
* @param array $sortby 排序类型
* asc正向排序 desc逆向排序 nat自然排序
* @return array
*/
function list_sort_by($list,$field, $sortby='asc') {
if(is_array($list)){
$refer = $resultSet = array();
foreach ($list as $i => $data)
$refer[$i] = &$data[$field];
switch ($sortby) {
case 'asc': // 正向排序
asort($refer);
break;
case 'desc':// 逆向排序
arsort($refer);
break;
case 'nat': // 自然排序
natcasesort($refer);
break;
}
foreach ( $refer as $key=> $val)
$resultSet[] = &$list[$key];
return $resultSet;
}
return false;
}

/**
* list_to_tree()将数组转为树形结构
* @param array $list
* @param string $id
* @param string $pid
* @param string $title
* @param number $parentid
* @return array
*/
function list_to_tree($list,$id='id',$pid='pid',$title='title',$parentid=0,$tree=array()){
static $tree =array();
foreach ($list as $key=> $val){
if ($val[$pid] ==$parentid){
$tree[] = $val;
unset($list[$key]);
$tree = array_merge($list,list_to_tree($list,$id='id',$pid='pid',$title='title',$val[$id]));
}
}
return $tree;
}

function tree_to_list($list,$id='id',$pid='pid',$title='title',$parentid=0){

}

/*
* 获取发布时间与当前时间差
* @param int $the_time 发布时间
* return string
* 唐相豪
*/
function time_tran($the_time) {
$now_time = time();
$dur = $now_time - $the_time;
if ($dur < 0) {
return $the_time;
} else {
if ($dur < 60) {
return $dur . '秒前';
} else {
if ($dur < 3600) {
return floor($dur / 60) . '分钟前';
} else {
if ($dur < 86400) {
return floor($dur / 3600) . '小时前';
} else {
//return floor($dur / 86400) . '天前';
return date('Y-m-d H:i',$the_time);
}
}
}
}
}
/*// 根据$pid获取后代分类
function getTrees($list,$pid=0,$level=0) {
static $tree = array();

// 如果$list为null,说明是想清空数据
if(is_null($list))
{
$tree = array();
return $tree;
}

foreach($list as $row) {
if($row['pid']==$pid) {
$row['level'] = $level;
$tree[] = $row;
getTrees($list, $row['id'], $level + 1);
}
}
return $tree;
}*/
/**
* list_to_tree2() 将数组转为父子型属性结构数组
* @param array $list
* @param string $id
* @param string $pid
* @param string $child
* @return array
*/
function list_to_tree2($list,$id='id',$pid="pid",$child="_child",$tree =array()){
if (is_array($list)){
$refer = array();
foreach ($list as $key => $data) {
$refer[$data[$id]] =& $list[$key];
}
foreach ($list as $key => $data) {
// 判断是否存在parent
$parentid = $data[$pid];
if (0 == $parentid) {
$tree[] =& $list[$key];
}else{
if (isset($refer[$parentid])) {
$parent =& $refer[$parentid];
$parent[$child][] =& $list[$key];
}
}
}
}
return $tree;
}


/**
* tree_to_list2()将父子型结构数组还原成正常数组
* @param array $tree
* @param string $child
* @param string $order
* @param array $list
* @return array
*/
function tree_to_list2($tree, $child = '_child', $order='id', &$list = array()){
if(is_array($tree)) {
$refer = array();
foreach ($tree as $key => $value) {
$reffer = $value;
if(isset($reffer[$child])){
unset($reffer[$child]);
tree_to_list($value[$child], $child, $order, $list);
}
$list[] = $reffer;
}
$list = list_sort_by($list, $order, $sortby='asc');
}
return $list;
}

/**
* 邮件发送函数
* @param string $to 发送地址
* @param string $title 发送标题
* @param string $content 发送内容
*/
function sendMail($to, $title, $content,$sendname="尊敬的客户") {
var_dump($to);
Vendor('PHPMailer.PHPMailerAutoload');
include './Include/Library/Vendor/PHPMailer/class.smtp.php';
$mail = new \PHPMailer(); //实例化
$mail->IsSMTP(); // 启用SMTP
//$mail->SMTPDebug = true;
$mail->Host=C('MAIL_HOST'); //smtp服务器的名称(这里以QQ邮箱为例)
$mail->SMTPAuth = C('MAIL_SMTPAUTH'); //启用smtp认证
$mail->Port = C('MAIL_PORT'); //端口
//$mail->SMTPSecure = C('MAIL_SECURE'); //加密方式
$mail->Username = C('MAIL_USERNAME'); //你的邮箱名
$mail->Password = C('MAIL_PASSWORD') ; //邮箱密码
$mail->From = C('MAIL_FROM'); //发件人地址(也就是你的邮箱地址)
$mail->FromName = C('MAIL_FROMNAME'); //发件人姓名
$mail->AddAddress($to,$sendname);
$mail->WordWrap = 50; //设置每行字符长度
$mail->IsHTML(C('MAIL_ISHTML')); // 是否HTML格式邮件
$mail->CharSet=C('MAIL_CHARSET'); //设置邮件编码
$mail->Subject =$title; //邮件主题
$mail->Body = $content; //邮件内容
$mail->AltBody = "这是一个纯文本的身体在非营利的HTML电子邮件客户端"; //邮件正文不支持HTML的备用显示
if ($mail->send()){
return true;
}else {
return $mail->ErrorInfo;
}
}


//无极限
function getTree($list,$pid=0) {
static $tree = array();
foreach($list as $row) {
if($row['pid']==$pid) {
$tree[] = $row;
getTree($list, $row['id']);
}
unset($row);
}
return $tree;
}

/*检查邮箱格式*/

function checkEmail($email){

$pattern = "/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/";
if (preg_match($pattern, $email)){
return true;
}
return false;
}
/*检查手机格式*/
function checkPhone($phone){

$pattern = "/^[1][3,5,8][0-9]{9}$/";
if (preg_match($pattern, $phone)){
return true;
}
return false;
}

/**
* 获取指定的用户的称呼
* @param number $uid
* @return string $name
*/
function getUserName($uid){
$map['uid'] = $uid;
$info = M("Member")->field("account,nickname")->where($map)->find();
if (empty($info['nickname']))
$name = $info['account'];
else
$name = $info['nickname'];
return $name;
}

/**
* 浏览历史
* @param string $module
* @param number $id
* @param number $max
* @param string $timeOut
* @return boolean
*/
function browseHistory($module,$id,$max=4,$timeOut=0){
$module = $module ? strtolower($module) : "";
if (empty($module) || empty($id)) return false;
$timeOut = $timeOut ? time()+$timeOut : time()+3600*24*30;
$name = "history_" . $module;
if (cookie($name)){
$history = unserialize(cookie($name));
array_unshift($history, $id);
$history = array_unique($history);
while (count($history)>$max){
array_pop($history);
}
cookie($name,serialize($history),$timeOut,"/");
}else {
$history = serialize(array($id));
cookie($name,$history,$timeOut,"/");
}
return true;
}

/*
*前端尾部链接的显示
*@param int $limit
*/
function getLinks($limit){

$link = M('links');
$list = $link->field('id,name,ico,url')->where('is_show = 1 and status = 1')->order('id desc')->limit($limit)->select();
return $list;
}

/**
* 判断用户是否有权限访问
* @param number $uid 用户UID
* @return boolean true 允许 false 禁止
*/
function isAccess($uid){
$group = M("AuthGroupAccess")->field("group_id")->where(array("uid"=>$uid))->find();
if (empty($group))return 0;
$accessArr = M("AuthGroup")->field("id,type")->order("id ASC")->select();
$adminAccess = $vipAccess = $plainAccess =array();
foreach ($accessArr as $key=>$val){
switch ($val['type']){
case 0:
$adminAccess[] = $val['id'];
break;
case 1:
$vipAccess[] = $val['id'];
break;
case 2:
$plainAccess[] = $val['id'];
break;
default:
break;
}
}
unset($accessArr);
if(in_array($group['group_id'], $adminAccess)){
return 10;
}else if(in_array($group['group_id'], $vipAccess)){
return 10;
}else if(in_array($group['group_id'], $plainAccess)){
$count = count($plainAccess);
$accNum=array();
for ($i=0;$i<$count;$i++){
if ($group['group_id']>$plainAccess[$i])
$accNum[] = $i;
}
return count($accNum);
}else {
return 0;
}
}

/**
* 是否是手机设备浏览
* @param string $user_agent 代理参数
* @return boolean 返回布尔值
*/
function is_mobile($user_agent){
$user_agent = strtolower($user_agent);
$is_mobile = false;
$mobile_browser = Array(
"mqqbrowser", //手机QQ浏览器
"opera mobi", //手机opera
"juc","iuc",//uc浏览器
"fennec","ios","applewebKit/420","applewebkit/525","applewebkit/532","ipad","iphone","ipaq","ipod",
"iemobile", "windows ce",//windows phone
"240×320","480×640","acer","android","anywhereyougo.com","asus","audio","blackberry","blazer","coolpad" ,"dopod", "etouch", "hitachi","htc","huawei", "jbrowser", "lenovo","lg","lg-","lge-","lge", "mobi","moto","nokia","phone","samsung","sony","symbian","tablet","tianyu","wap","xda","xde","zte"
);
//是否在手机设备中
foreach ($mobile_browser as $device) {
if (stristr($user_agent, $device)) {
$is_mobile = true;
break;
}
}
return $is_mobile;
}

/**
* 商家信誉等级
* @param integer $credit 商家信誉数值
* @return string 返回数据
*/
function sellerCreditLevel($credit){
$credit = intval($credit);
if($credit<=10){
$str = "<span class='fa fa-heart icon-red'></span>";
}else if($credit > 10 && $credit <= 40){
$str = "<span class='fa fa-heart icon-red'></span><span class='fa fa-heart icon-red'></span>";
}else if($credit > 40 && $credit <= 90){
$str = "<span class='fa fa-heart icon-red'></span><span class='fa fa-heart icon-red'></span><span class='fa fa-heart icon-red'></span>";
}else if($credit > 90 && $credit <= 150){
$str = "<span class='fa fa-heart icon-red'></span><span class='fa fa-heart icon-red'></span><span class='fa fa-heart icon-red'></span><span class='fa fa-heart icon-red'></span>";
}else if($credit > 151 && $credit <= 250){
$str = "<span class='fa fa-heart icon-red'></span><span class='fa fa-heart icon-red'></span><span class='fa fa-heart icon-red'></span><span class='fa fa-heart icon-red'></span><span class='fa fa-heart icon-red'></span>";
}else if($credit > 251 && $credit <= 500){
$str = "<span class='fa fa-diamond icon-blue'></span>";
}else if($credit > 500 && $credit <= 1000){
$str = "<span class='fa fa-diamond icon-blue'></span><span class='fa fa-diamond icon-blue'></span>";
}else if($credit > 1000 && $credit <= 2000){
$str = "<span class='fa fa-diamond icon-blue'></span><span class='fa fa-diamond icon-blue'></span><span class='fa fa-diamond icon-blue'></span>";
}else if($credit > 2000 && $credit <= 5000){
$str = "<span class='fa fa-diamond icon-blue'></span><span class='fa fa-diamond icon-blue'></span><span class='fa fa-diamond icon-blue'></span><span class='fa fa-diamond icon-blue'></span>";
}else if($credit > 5000 && $credit <= 10000){
$str = "<span class='fa fa-diamond icon-blue'></span><span class='fa fa-diamond icon-blue'></span><span class='fa fa-diamond icon-blue'></span><span class='fa fa-diamond icon-blue'></span><span class='fa fa-diamond icon-blue'></span>";
}else if($credit > 10000 && $credit <= 20000){
$str = "<span class='fa fa-diamond icon-orange'></span>";
}else if($credit > 20000 && $credit <= 50000){
$str = "<span class='fa fa-diamond icon-orange'></span><span class='fa fa-diamond icon-orange'></span>";
}else if($credit > 50000 && $credit <= 100000){
$str = "<span class='fa fa-diamond icon-orange'></span><span class='fa fa-diamond icon-orange'></span><span class='fa fa-diamond icon-orange'></span>";
}else if($credit > 100000 && $credit <= 200000){
$str = "<span class='fa fa-diamond icon-orange'></span><span class='fa fa-diamond icon-orange'></span><span class='fa fa-diamond icon-orange'></span><span class='fa fa-diamond icon-orange'></span>";
}else if($credit > 200000 && $credit <= 500000){
$str = "<span class='fa fa-diamond icon-orange'></span><span class='fa fa-diamond icon-orange'></span><span class='fa fa-diamond icon-orange'></span><span class='fa fa-diamond icon-orange'></span><span class='fa fa-diamond icon-orange'></span>";
}else if($credit > 500000 && $credit <= 1000000){
$str = "<span class='fa fa-trophy icon-golden'></span>";
}else if($credit > 1000000 && $credit <= 2000000){
$str = "<span class='fa fa-trophy icon-golden'></span><span class='fa fa-trophy icon-golden'></span>";
}else if($credit > 2000000 && $credit <= 5000000){
$str = "<span class='fa fa-trophy icon-golden'></span><span class='fa fa-trophy icon-golden'></span><span class='fa fa-trophy icon-golden'></span>";
}else if($credit > 5000000 && $credit <= 10000000){
$str = "<span class='fa fa-trophy icon-golden'></span><span class='fa fa-trophy icon-golden'></span><span class='fa fa-trophy icon-golden'></span><span class='fa fa-trophy icon-golden'></span>";
}else if($credit > 10000000){
$str = "<span class='fa fa-trophy icon-golden'></span><span class='fa fa-trophy icon-golden'></span><span class='fa fa-trophy icon-golden'></span><span class='fa fa-trophy icon-golden'></span><span class='fa fa-trophy icon-golden'></span>";
}
return $str;
}
/**
* 显示文字首尾字符
* @param string $str 显示的文字
* @return string $data 返回字符串
*/
function firstStrLast($str){
$data = '';
//获取字符长度
$strLen = mb_strlen($str,'utf-8')-1;
$data .= mb_substr($str,0,1,'utf-8');
$data .= '***';
$data .= mb_substr($str,$strLen,1,'utf-8');
return $data;
}
/**
*生成随机码
*/
function codesNum(){
$codesNum = strval(rand(100000, 999999));
return $codesNum;
}
/**
*第三方登录
*/
function qq_login()
{

Vendor('QQconnect.API.qqConnectAPI');
// require_once("../../API/qqConnectAPI.php");
$qc = new QC();
$qc->qq_login();
}


function getOpenid()
{
Vendor('QQconnect.API.qqConnectAPI');
$qc = new QC();
$qc->qq_callback();
$openId = $qc->get_openid();
return $openId;
}

function get_qq_user_info()
{
Vendor('QQconnect.API.qqConnectAPI');
$qc = new QC();
return $arr = $qc->get_user_info();
}

// 百度翻译接口
function translate($str){
Vendor('mobile.Translate');
$t = new \Translate();
$reslut = $t->exec($str, $from = 'zh', $to = 'en');
return $reslut;
}

//用户发送订单邮件
function qqmail($to, $title, $content)
{
//$str = I($_POST['mail']);exit();
// 引入的文件
Vendor('PHPMailer.PHPMailerAutoload');

$mail = new PHPMailer;
$mail->Charset='UTF-8';
//$mail->SMTPDebug = 3; // Enable verbose debug output

$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.exmail.qq.com '; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // 发送方
$mail->Username = '[email protected]'; // 要发送的邮箱
$mail->Password = 'Oph1234'; // SMTP 的密码,在邮箱账号内获取
$mail->SMTPSecure = 'ssl'; // 规则
$mail->Port = 465; // 端口

$mail->setFrom('[email protected]', $title);
$mail->addAddress($to , 'carson_yu'); // 接收方
// $mail->addAddress($str); // Name is optional
$mail->addReplyTo('[email protected]', $title);
// $mail->addCC('[email protected]');
// $mail->addBCC('[email protected]');

// $mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
// $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
$mail->isHTML(true); // Set email format to HTML

$mail->Subject = $title;
$mail->Body = $content;
$mail->AltBody = $content;

if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
return ture;

}

}

/**
* 删除目录及目录下所有文件或删除指定文件
* @param str $path 待删除目录路径
* @param int $delDir 是否删除目录,1或true删除目录,0或false则只删除文件保留目录(包含子目录)
* @return bool 返回删除状态
*/
function delDirAndFile($path, $delDir = FALSE) {
$handle = opendir($path);
if ($handle) {
while (false !== ( $item = readdir($handle) )) {
if ($item != "." && $item != "..")
is_dir("$path/$item") ? delDirAndFile("$path/$item", $delDir) : unlink("$path/$item");
}
closedir($handle);
if ($delDir)
return rmdir($path);
}else {
if (file_exists($path)) {
return unlink($path);
} else {
return FALSE;
}
}
}

/**
* @method 多维数组变成一维数组
* @staticvar array $result_array
* @param type $array
* @return type $array
* @author yanhuixian
*/
function arrToOne($multi) {
$arr = array();
foreach ($multi as $key => $val) {
if( is_array($val) ) {
$arr = array_merge($arr, arrToOne($val));
} else {
$arr[] = $val;
}
}
return $arr;
}

// 二维数组去除重复
function array_unique_fb($array2D){
foreach ($array2D as $v){
$v=join(',',$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
$temp[]=$v;
}
$temp=array_unique($temp); //去掉重复的字符串,也就是重复的一维数组
foreach ($temp as $k => $v){
$temp[$k]=explode(',',$v); //再将拆开的数组重新组装
}
return $temp;
}

/**
* 分词
*/
function searchfenci($str)
{
Vendor('Pscws4.pscws4','','.class.php');
$pscws = new PSCWS4('utf8');

$pscws->set_dict('./Include/Library/Vendor/Pscws4/etc/dict.utf8.xdb');
$pscws->set_rule('./Include/Library/Vendor/Pscws4/etc/rules.ini');

$pscws->send_text($str);

$tops = $pscws->get_tops(3, 'n,v');
$tempArr = array();
foreach ($tops as $value) {
$tempArr[]=$value['word'];
}
return $tempArr;
}
/**
* 二维数组去除空值
*/
function filter_array($arr, $values = ["",'', null, false, 0, '0',[]]) {
foreach ($arr as $k => $v) {
if (is_array($v) && count($v)>0) {
$arr[$k] = filter_array($v, $values);
}
foreach ($values as $value) {
if ($v === $value) {
unset($arr[$k]);
break;
}
}
}
return $arr;
}

/**
* 根据地址获取经纬度
*/
function getIp($address) {
$url='http://api.map.baidu.com/geocoder/v2/?address='.$address.'&output=json&ak=mEXtjf4OSUfZXFy2nQymHs0quvG9CUNP';
if($result=file_get_contents($url))
{
$res= explode(',"lat":', substr($result, 40,36));
// $res= array_merge($res[0],$res[1]);
return $res;

}
}


function getpao($arr) {
$len=count($arr);
//设置一个空数组 用来接收冒出来的泡
//该层循环控制 需要冒泡的轮数
for($i=1;$i<$len;$i++)
{ //该层循环用来控制每轮 冒出一个数 需要比较的次数
for($k=0;$k<$len-$i;$k++)
{
if($arr[$k]>$arr[$k+1])
{
$tmp=$arr[$k+1];
$arr[$k+1]=$arr[$k];
$arr[$k]=$tmp;
}
//var_dump($arr[$k]);
//var_dump($arr[$k+1]);
}

}
return $arr;
}


?>

猜你喜欢

转载自www.cnblogs.com/jierong12/p/9152214.html