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,$,$p,$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,$,$p,$title='title',$val[$id]));

}

}

return $tree;

}

function tree_to_list($list,$,$p,$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,$,$p,$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 = 'service@baipuhui.com'; // 要发送的邮箱

$mail->Password = 'Oph1234'; // SMTP 的密码,在邮箱账号内获取

$mail->SMTPSecure = 'ssl'; // 规则

$mail->Port = 465; // 端口

$mail->setFrom('service@baipuhui.com', $title);

$mail->addAddress($to , 'carson_yu'); // 接收方

// $mail->addAddress($str); // Name is optional

$mail->addReplyTo('service@baipuhui.com', $title);

// $mail->addCC('cc@example.com');

// $mail->addBCC('bcc@example.com');

// $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;

}

?>