頂部導航開始 -->

php自定義常用函數

//判斷是否登錄后臺
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);
    }
}


自學php博客
請先登陸后發表評論
  • 最新評論
  • 總共0條評論
  • ? 2014-2016 zixuephp.cn 版權所有
  • ICP證:皖ICP備16012107號
  • 聯系郵箱:[email protected]
  • 交流請加微信:weibobf2899 或掃下方二維碼
双大床红利扑克1手APP