//判断是否登录后台
function admin_status()
{
$admin_info = Session::get('admin_info');
if(empty($admin_info)){
return false;
}else{
return true;
}
}
//获取ip地址
function getIP()
{
if (getenv("HTTP_CLIENT_IP"))
$ip = getenv("HTTP_CLIENT_IP");
else if(getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if(getenv("REMOTE_ADDR"))
$ip = getenv("REMOTE_ADDR");
else $ip = "Unknow";
return $ip;
}
// 根据ip获取地址
function get_address($ip)
{
$result = json_decode(file_get_contents('http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip='.$ip.'&format=json'));
$province = isset($result->province) ? $result->province : '';
$city = isset($result->city) ? $result->city : '';
return $province.$city;
}
//过滤敏感字符
function deletehtml($str)
{
$str = trim($str); //清除字符串两边的空格
$str = strip_tags($str); //利用php自带的函数清除html格式
// $str = preg_replace("/\t/", "", $str); //使用正则表达式匹配需要替换的内容,如:空格,换行,并将替换为空。
$str = preg_replace("/\r\n/", "", $str);
$str = preg_replace("/\r/", "", $str);
$str = preg_replace("/\n/", "", $str);
$str = preg_replace("/ /", "", $str);
$str = preg_replace("/ /", "", $str); //匹配html中的空格
$str = str_replace(" ", "", $str);
$str = str_replace("·", "", $str);
$str = str_replace("”", "", $str);
$str = str_replace("“", "", $str);
return trim($str); //返回字符串
}
// 使用curl模拟请求
function http_curl($url, $method='GET', $data='')
{
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
if($method=='POST'){
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
if ($data != ''){
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
}
}
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作
curl_close($curl); // 关闭CURL会话
return $tmpInfo; // 返回数据
}
//object转array
function object2array($object)
{
if (is_object($object)) {
foreach ($object as $key => $value) {
$array[$key] = $value;
}
} else {
$array = $object;
}
return $array;
}
//$file文件$type文件类型$size最大上传
function upload_file($file,$type,$size,$position='/static/home/images/')
{
// 移动到框架应用根目录/public/uploads/ 目录下
//$info = $file->validate(['size'=>$size,'ext'=>$type])->move($position);
$position_file = ROOT_PATH.'/public'.$position;
$info = $file->validate(['size'=>$size,'ext'=>$type])->rule('date')->move($position_file);
if($info){
return str_replace('\\','/','ad_touxiang/'.$info->getSaveName());
}
// 成功上传后 获取上传信息
// 输出 jpg
//echo $info->getExtension();
// 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
//return $info->getSaveName();
//输出 42a79759f284b767dfcb2a0197904287.jpg
//return $position.'/'.$info->getSaveName();
else{
//return false;
// 上传失败获取错误信息
echo $file->getError();
die();
}
}
//判断是不是手机访问
function isMobile()
{
// 如果有HTTP_X_WAP_PROFILE则一定是移动设备
if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
{
return true;
}
// 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
if (isset ($_SERVER['HTTP_VIA']))
{
// 找不到为flase,否则为true
return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
}
// 脑残法,判断手机发送的客户端标志,兼容性有待提高
if (isset ($_SERVER['HTTP_USER_AGENT']))
{
$clientkeywords = array ('nokia',
'sony',
'ericsson',
'mot',
'samsung',
'htc',
'sgh',
'lg',
'sharp',
'sie-',
'philips',
'panasonic',
'alcatel',
'lenovo',
'iphone',
'ipod',
'blackberry',
'meizu',
'android',
'netfront',
'symbian',
'ucweb',
'windowsce',
'palm',
'operamini',
'operamobi',
'openwave',
'nexusone',
'cldc',
'midp',
'wap',
'mobile'
);
// 从HTTP_USER_AGENT中查找手机浏览器的关键字
if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
{
return true;
}
}
// 协议法,因为有可能不准确,放到最后判断
if (isset ($_SERVER['HTTP_ACCEPT']))
{
// 如果只支持wml并且不支持html那一定是移动设备
// 如果支持wml和html但是wml在html之前则是移动设备
if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html'))))
{
return true;
}
}
return false;
}
//二维数组去掉重复值
function two_array_unique($arr, $key)
{
$tmp_arr = array();
foreach($arr as $k => $v)
{
if(in_array($v[$key], $tmp_arr)) //搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true
{
unset($arr[$k]); //销毁一个变量 如果$tmp_arr中已存在相同的值就删除该值
}
else {
$tmp_arr[$k] = $v[$key]; //将不同的值放在该数组中保存
}
}
//ksort($arr); //ksort函数对数组进行排序(保留原键值key) sort为不保留key值
return $arr;
}
//**秒/分钟前
function formatTime($value)
{
if(time() - $value < 60) {
return (time() - $value).'秒前';
}
if(time() - $value > 60 && time() - $value < 3600) {
return ceil((time() - $value)/60).'分钟前';
}
if(time() - $value > 3600 && time() - $value < 86400) {
return ceil((time() - $value)/3600).'小时前';
}
if(time() - $value > 86400 && time() - $value < 172800) {
return '1天前';
}
return date('Y-m-d H:i:s', $value);
}
//thinkphp5 验证码重写
'captcha' => [
// 验证码字符集合
'codeSet' => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',
// 验证码字体大小(px)
'fontSize' => 16,
// 是否画混淆曲线
'useCurve' => false,
// 验证码图片高度
'imageH' => 40,
// 验证码图片宽度
'imageW' => 150,
// 验证码位数
'length' => 4,
// 验证成功后是否重置
'reset' => true
],
/**
* 隐藏手机号中间4位
* @param $phone
* @return mixed
*/
function hidetel($phone){
$IsWhat = preg_match('/(0[0-9]{2,3}[-]?[2-9][0-9]{6,7}[-]?[0-9]?)/i',$phone);
if($IsWhat == 1){
return preg_replace('/(0[0-9]{2,3}[-]?[2-9])[0-9]{3,4}([0-9]{3}[-]?[0-9]?)/i','$1****$2',$phone);
}else{
return preg_replace('/(1[3587]{1}[0-9])[0-9]{4}([0-9]{4})/i','$1****$2',$phone);
}
}
宠物免费领养小程序,欢迎来踩