<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                測試變量 ~~~ if (!function_exists('dump')) { function dump($arr){ echo '<pre>'.print_r($arr,TRUE).'</pre>'; } } ~~~ 查找子字符串 ~~~ function findStr($string, $find) { return !(strpos($string, $find) === FALSE); } ~~~ 多維數組轉換成一維數組 ~~~ function _arr($array,$return=[]){ array_walk_recursive($array,function($value)use(&$return){$return[]=$value;}); return $return; } ~~~ emoji轉換解碼 de ~~~ function emoji($str, $is = 'en') { if ('en' == $is) { if (!is_string($str)) return $str; if (!$str || $str == 'undefined') return ''; $text = json_encode($str); $text = preg_replace_callback("/(\\\u[ed][0-9a-f]{3})/i", function ($str) { return addslashes($str[0]); }, $text); return json_decode($text); } else { $text = json_encode($str); $text = preg_replace_callback('/\\\\\\\\/i', function ($str) { return '\\'; }, $text); return json_decode($text); } } ~~~ 去除數組值兩端空格 function trimarr($Input){ if (!is_array($Input)) return trim($Input); return array_map('trimarr', $Input); } /** * 時間友好顯示,傳入時間戳 */ ~~~ function timeline($time) { if (time() <= $time) { return date("Y-m-d H:i:s", $time); } else { $t = time() - $time; $f = array( '31536000' => '年', '2592000' => '個月', '604800' => '星期', '86400' => '天', '3600' => '小時', '60' => '分鐘', '1' => '秒' ); foreach ($f as $k => $v) { if (0 != $c = floor($t / (int)$k)) { return $c . $v . '前'; } } } } ~~~ 獲取文件擴展名 ~~~ function fileExt($file) { return strtolower(pathinfo($file, 4)); } ~~~ /** * post提交 * @param $url * @param $msg * @return mixed */ ~~~ function post($url, $msg) {//post ssl $ch = curl_init(); if (class_exists('\CURLFile')) { curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true); } else { if (defined('CURLOPT_SAFE_UPLOAD')) { curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); } } //$msg = array('media'=>"@".$filepath); //5.6+ $msg = array('media'=>new \CURLFile($filepath)); preg_match('/https:\/\//', $url) ? $ssl = TRUE : $ssl = FALSE; curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_URL, $url); if ($ssl) { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); } curl_setopt($ch, CURLOPT_POSTFIELDS, $msg); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($ch); curl_close($ch); return $data; } ~~~ ~~~ function get($url) { $ch = curl_init(); preg_match('/https:\/\//', $url) ? $ssl = TRUE : $ssl = FALSE; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); if ($ssl) { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($ch); curl_close($ch); return $data; } ~~~ /** * 導出csv數據,不支持大數據,大數據用分頁導出 * $arr = array( * array('用戶名','密碼','郵箱'), * array( * array('A用戶','123456','xiaohai1@zhongsou.com'), * array('B用戶','213456','xiaohai2@zhongsou.com'), * array('C用戶','123456','xiaohai3@zhongsou.com') * )); * putcsv("導出文件",$arr); * * 導出csv模板 * $arr = array(array('用戶名','密碼','郵箱')); * putcsv("導出模板",$arr); * 文件名不帶.csv,自動加 * $filename 導出文件名 * $arr 導出數組 */ ~~~ function putcsv($filename, $arr) { if (empty($arr)) { return false; } $export_str = implode(',', $arr[0]) . "\n"; if (!empty($arr[1])) { foreach ($arr[1] as $k => $v) { $export_str .= implode(',', $v) . "\n"; } } header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=" . $filename . date('Y-m-d-H-i-s') . ".csv"); ob_start(); ob_end_clean(); echo "\xEF\xBB\xBF" . $export_str;//解決WPS和excel不亂碼 } ~~~ /** * 導入csv,編碼ANSI * read.csv數據 * * 商戶名稱, 昵稱, 手機號 * 惠吃惠喝, 會吃,18291443322 * egeme, 依加米,18923451622 * 徐匯區,上海,18291447788 * 衣服, 買衣服,18291448824 * 米掌柜, MI,18291448822 * $path = 'read.csv'; * $arr= getcsv($path); * 導入csv返回數組,注意導入文件一定要是ANSI編碼,也就是WPS和excel打開不亂碼 * $path 文件路徑 * */ ~~~ function getcsv($path) { $handle = fopen($path, 'r'); $dataArray = array(); $row = 0; while ($data = fgetcsv($handle)) { $num = count($data); for ($i = 0; $i < $num; $i++) { $dataArray[$row][$i] = mb_convert_encoding($data[$i], "utf-8", 'GBK'); } $row++; } return $dataArray; } ~~~ ~~~ function isWeixin() { $agent = $_SERVER ['HTTP_USER_AGENT']; if (! strpos ( $agent, "icroMessenger" )) { return false; } return true; } 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[34578]{1}[0-9])[0-9]{4}([0-9]{4})/i','$1****$2',$phone); } } ~~~ /** * * @param 生成字符長度 $len * @param 生成類型默認大小寫數字,0大小寫 1數字 2大寫 3小寫 4中文 $type * @param 添加字符后綴 $addChars * * @return */ ~~~ function randstr($len=6,$type='',$addChars='') { $str =''; switch($type) { case 0: $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.$addChars; break; case 1: $chars= str_repeat('0123456789',3); break; case 2: $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZ'.$addChars; break; case 3: $chars='abcdefghijklmnopqrstuvwxyz'.$addChars; break; case 4: $chars = "們以我到他會作時要動國產的一是工就年階義發成部民可出能方進在了不和有大這主中人上為來分生對于學下級地個用同行面說種過命度革而多子后自社加小機也經力線本電高量長黨得實家定深法表著水理化爭現所二起政三好十戰無農使性前等反體合斗路圖把結第里正新開論之物從當兩些還天資事隊批點育重其思與間內去因件日利相由壓員氣業代全組數果期導平各基或月毛然如應形想制心樣干都向變關問比展那它最及外沒看治提五解系林者米群頭意只明四道馬認次文通但條較克又公孔領軍流入接席位情運器并飛原油放立題質指建區驗活眾很教決特此常石強極土少已根共直團統式轉別造切九你取西持總料連任志觀調七么山程百報更見必真保熱委手改管處己將修支識病象幾先老光專什六型具示復安帶每東增則完風回南廣勞輪科北打積車計給節做務被整聯步類集號列溫裝即毫知軸研單色堅據速防史拉世設達爾場織歷花受求傳口斷況采精金界品判參層止邊清至萬確究書術狀廠須離再目海交權且兒青才證低越際八試規斯近注辦布門鐵需走議縣兵固除般引齒千勝細影濟白格效置推空配刀葉率述今選養德話查差半敵始片施響收華覺備名紅續均藥標記難存測士身緊液派準斤角降維板許破述技消底床田勢端感往神便賀村構照容非搞亞磨族火段算適講按值美態黃易彪服早班麥削信排臺聲該擊素張密害侯草何樹肥繼右屬市嚴徑螺檢左頁抗蘇顯苦英快稱壞移約巴材省黑武培著河帝僅針怎植京助升王眼她抓含苗副雜普談圍食射源例致酸舊卻充足短劃劑宣環落首尺波承粉踐府魚隨考刻靠夠滿夫失包住促枝局菌桿周護巖師舉曲春元超負砂封換太模貧減陽揚江析畝木言球朝醫校古呢稻宋聽唯輸滑站另衛字鼓剛寫劉微略范供阿塊某功套友限項余倒卷創律雨讓骨遠幫初皮播優占死毒圈偉季訓控激找叫云互跟裂糧粒母練塞鋼頂策雙留誤礎吸阻故寸盾晚絲女散焊功株親院冷徹彈錯散商視藝滅版烈零室輕血倍缺厘泵察絕富城沖噴壤簡否柱李望盤磁雄似困鞏益洲脫投送奴側潤蓋揮距觸星松送獲興獨官混紀依未突架寬冬章濕偏紋吃執閥礦寨責熟穩奪硬價努翻奇甲預職評讀背協損棉侵灰雖矛厚羅泥辟告卵箱掌氧恩愛停曾溶營終綱孟錢待盡俄縮沙退陳討奮械載胞幼哪剝迫旋征槽倒握擔仍呀鮮吧卡粗介鉆逐弱腳怕鹽末陰豐霧冠丙街萊貝輻腸付吉滲瑞驚頓擠秒懸姆爛森糖圣凹陶詞遲蠶億矩康遵牧遭幅園腔訂香肉弟屋敏恢忘編印蜂急拿擴傷飛露核緣游振操央伍域甚迅輝異序免紙夜鄉久隸缸夾念蘭映溝乙嗎儒殺汽磷艱晶插埃燃歡鐵補咱芽永瓦傾陣碳演威附牙芽永瓦斜灌歐獻順豬洋腐請透司危括脈宜笑若尾束壯暴企菜穗楚漢愈綠拖牛份染既秋遍鍛玉夏療尖殖井費州訪吹榮銅沿替滾客召旱悟刺腦措貫藏敢令隙爐殼硫煤迎鑄粘探臨薄旬善福縱擇禮愿伏殘雷延煙句純漸耕跑澤慢栽魯赤繁境潮橫掉錐希池敗船假亮謂托伙哲懷割擺貢呈勁財儀沉煉麻罪祖息車穿貨銷齊鼠抽畫飼龍庫守筑房歌寒喜哥洗蝕廢納腹乎錄鏡婦惡脂莊擦險贊鐘搖典柄辯竹谷賣亂虛橋奧伯趕垂途額壁網截野遺靜謀弄掛課鎮妄盛耐援扎慮鍵歸符慶聚繞摩忙舞遇索顧膠羊湖釘仁音跡碎伸燈避泛亡答勇頻皇柳哈揭甘諾概憲濃島襲誰洪謝炮澆斑訊懂靈蛋閉孩釋乳巨徒私銀伊景坦累勻霉杜樂勒隔彎績招紹胡呼痛峰零柴簧午跳居尚丁秦稍追梁折耗堿殊崗挖氏刃劇堆赫荷胸衡勤膜篇登駐案刊秧緩凸役剪川雪鏈漁啦臉戶洛孢勃盟買楊宗焦賽旗濾硅炭股坐蒸凝竟陷槍黎救冒暗洞犯筒您宋弧爆謬涂味津臂障褐陸啊健尊豆拔莫抵桑坡縫警挑污冰柬嘴啥飯塑寄趙喊墊丹渡耳刨虎筆稀昆浪薩茶滴淺擁穴覆倫娘噸浸袖珠雌媽紫戲塔錘震歲貌潔剖牢鋒疑霸閃埔猛訴刷狠忽災鬧喬唐漏聞沈熔氯荒莖男凡搶像漿旁玻亦忠唱蒙予紛捕鎖尤乘烏智淡允叛畜俘摸銹掃畢璃寶芯爺鑒秘凈蔣鈣肩騰枯拋軌堂拌爸循誘祝勵肯酒繩窮塘燥泡袋朗喂鋁軟渠顆慣貿糞綜墻趨彼屆墨礙啟逆卸航衣孫齡嶺騙休借".$addChars; break; default : $chars='ABCDEFGHIJKMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789'.$addChars; break; } if($len>10 ) { $chars= $type==1? str_repeat($chars,$len) : str_repeat($chars,5); } if($type!=4) { $chars = str_shuffle($chars); $str = substr($chars,0,$len); }else{ for($i=0;$i<$len;$i++){ $str.= cutstr($chars,1, floor(mt_rand(0,mb_strlen($chars,'utf-8')-1)),0); } } return $str; } ~~~ /** * * @param 字符串 $str * @param 長度 $length * @param 開始位置 $start * @param 是否顯示... $suffix * @param 編碼 $charset * * 截取字符串 */ ~~~ if (!function_exists('cutstr')) { function cutstr($str, $length, $start = 0, $suffix = true, $charset = "utf-8") { if (function_exists("mb_substr")) $slice = mb_substr($str, $start, $length, $charset); elseif (function_exists('iconv_substr')) { $slice = iconv_substr($str, $start, $length, $charset); if (false === $slice) { $slice = ''; } } else { $re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/"; $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/"; $re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/"; $re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/"; preg_match_all($re[$charset], $str, $match); $slice = join("", array_slice($match[0], $start, $length)); } return $suffix ? $slice . '...' : $slice; } } ~~~ /** * * @param 字節大小 $size * @param 保留小數位數 $dec * * 格式化文件大小 */ ~~~ function getfileSize($size, $dec=2) { $a = array("B", "KB", "MB", "GB", "TB", "PB"); $pos = 0; while ($size >= 1024) { $size /= 1024; $pos++; } return round($size,$dec)." ".$a[$pos]; } ~~~ 概率算法 ~~~ proArr array(100,200,300,400) function get_prize(){//獲取中獎 $prize_arr = array( array('id'=>1,'prize'=>'平板電腦','v'=>1), array('id'=>2,'prize'=>'數碼相機','v'=>1), array('id'=>3,'prize'=>'音箱設備','v'=>1), array('id'=>4,'prize'=>'4G優盤','v'=>1), array('id'=>5,'prize'=>'10Q幣','v'=>1), array('id'=>6,'prize'=>'下次沒準就能中哦','v'=>95), ); foreach ($prize_arr as $key => $val) { $arr[$val['id']] = $val['v']; } $ridk = getrand($arr); //根據概率獲取獎項id $res['yes'] = $prize_arr[$ridk-1]['prize']; //中獎項 unset($prize_arr[$ridk-1]); //將中獎項從數組中剔除,剩下未中獎項 shuffle($prize_arr); //打亂數組順序 for($i=0;$i<count($prize_arr);$i++){ $pr[] = $prize_arr[$i]['prize']; } $res['no'] = $pr; return $res; } ~~~ ~~~ function getRand($proArr) { $result = ''; $proSum = array_sum($proArr); foreach ($proArr as $key => $proCur) { $randNum = mt_rand(1, $proSum); if ($randNum <= $proCur) { $result = $key; break; } else { $proSum -= $proCur; } } unset ($proArr); return $result; } ~~~ 去除空行與空格 ~~~ function trimStr($str) { $str = trim($str); $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); return trim($str); } ~~~ //去除數組中值兩端空格,支持excel ~~~ function trimArray($Input){ if (!is_array($Input)) return preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/","",$Input); return array_map('TrimArray', $Input); } ~~~ ~~~ if (!function_exists('getip')) { function getIp() { $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; if (!preg_match("/^\d+\.\d+\.\d+\.\d+$/", $ip)) { $ip = '0'; } return $ip; } } 獲取內存 function getMemory(){ return round((memory_get_usage()/1024/1024),3)."M"; } 隨即顏色 function randColor(){ $char='abcdef0123456789'; $str=''; for($i=0;$i<6;$i++){ $str .= substr($char,mt_rand(0,15),1); } return '#'.$str; } ~~~ xml與數組互換 ~~~ function arr2xml($arr, $level = 1, $ptagname = '') { $s = $level == 1 ? "<xml>" : ''; foreach($arr as $tagname => $value) { if (is_numeric($tagname)) { $tagname = $value['TagName']; unset($value['TagName']); } if(!is_array($value)) { $s .= "<{$tagname}>".(!is_numeric($value) ? '<![CDATA[' : '').$value.(!is_numeric($value) ? ']]>' : '')."</{$tagname}>"; } else { $s .= "<{$tagname}>".self::arr2xml($value, $level + 1)."</{$tagname}>"; } } $s = preg_replace("/([\x01-\x08\x0b-\x0c\x0e-\x1f])+/", ' ', $s); return $level == 1 ? $s."</xml>" : $s; } /** xml轉換數組 */ function xml2arr($xml) { if (empty($xml)) { return array(); } $result = array(); $xmlobj = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); if($xmlobj instanceof SimpleXMLElement) { $result = json_decode(json_encode($xmlobj), true); if (is_array($result)) { return $result; } else { return array(); } } else { return $result; } } ~~~ 創建文件或文件夾 ~~~ /* 創建文件或文件夾 參數是數組 ["qq/","qq.txt","qqq/tt/"]; */ function fileCreate($files) { foreach ($files as $key => $value) { if(substr($value, -1) == '/'){ if(!is_dir($value)){mkdir($value, 0777, true);} }else{ if(!file_exists($value)){file_put_contents($value, '');} } } } ~~~ /** * * @param undefined $type 彈出類型 1,2,3 * @param undefined $info 提示語 * @param undefined $url 跳轉地址 * * @return */ ~~~ function alert($type=1,$info="",$url=""){ if(1==$type){//自動關閉 $strs = empty($info)?"":"alert('$info');"; echo "<script>".$strs."document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { WeixinJSBridge.call('closeWindow');});</script>";exit; }elseif(2==$type){//顯示跳轉中... $urls = empty($url)?"":'location.href="'.$url.'";'; $strs = empty($info)?"正在跳轉中...":$info; echo "<meta charset='utf-8'>"; die('<script type="text/javascript">document.write("<meta name=\"viewport\" content=\"width=device-width,initial-scale=1,user-scalable=0\"><div style=\"font-size:16px;margin:30px auto;text-align:center;\">'.$strs.'</div>");'.$urls.';</script>'); }elseif(3==$type){//普通彈出,跳轉 $strs = empty($info)?"":"alert('$info');"; $urls = empty($url)?"":'location.href="'.$url.'";'; die('<script type="text/javascript">'.$strs.$urls.'</script>'); }elseif(4==$type){//藍色i echo "<meta charset='utf-8'>"; die('<script>document.write("<title>提示</title><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=0\"><link rel=\"stylesheet\" href=\"https://res.wx.qq.com/open/libs/weui/0.4.3/weui.min.css\"><div class=\"weui_msg\"><div class=\"weui_icon_area\"><i class=\"weui_icon_info weui_icon_msg\"></i></div><div class=\"weui_text_area\"><h4 class=\"weui_msg_title\">'.$info.'</h4></div></div>");document.addEventListener("WeixinJSBridgeReady", function onBridgeReady() {WeixinJSBridge.call("hideOptionMenu");});</script>'); }elseif(5==$type){//紅色警告! echo "<meta charset='utf-8'>"; die('<script>document.write("<title>提示</title><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=0\"><link rel=\"stylesheet\" href=\"https://res.wx.qq.com/open/libs/weui/0.4.3/weui.min.css\"><div class=\"weui_msg\"><div class=\"weui_icon_area\"><i class=\"weui_icon_msg weui_icon_warn\"></i></div><div class=\"weui_text_area\"><h4 class=\"weui_msg_title\">'.$info.'</h4></div></div>");document.addEventListener("WeixinJSBridgeReady", function onBridgeReady() {WeixinJSBridge.call("hideOptionMenu");});</script>'); }elseif(6==$type){//綠色成功√ echo "<meta charset='utf-8'>"; die('<script>document.write("<title>提示</title><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=0\"><link rel=\"stylesheet\" href=\"https://res.wx.qq.com/open/libs/weui/0.4.3/weui.min.css\"><div class=\"weui_msg\"><div class=\"weui_icon_area\"><i class=\"weui_icon_msg weui_icon_success\"></i></div><div class=\"weui_text_area\"><h4 class=\"weui_msg_title\">'.$info.'</h4></div></div>");document.addEventListener("WeixinJSBridgeReady", function onBridgeReady() {WeixinJSBridge.call("hideOptionMenu");});</script>'); } } ~~~ 數組排序:數組/排序字段/升降序asc升序,desc降序 ~~~ function array_sort($array, $keys, $type='asc'){ $keysvalue = $new_array = array(); foreach ($array as $k => $v){ $keysvalue[$k] = $v[$keys]; } if($type == 'asc'){ asort($keysvalue); }else{ arsort($keysvalue); } reset($keysvalue); foreach ($keysvalue as $k => $v){ $new_array[$k] = $array[$k]; } return $new_array; } ~~~ /** * 計算兩地之間距離 * @param undefined $lat1 經度1 * @param undefined $lng1 緯度1 * @param undefined $lat2 經度2 * @param undefined $lng2 緯度2 * @param 1 $len_type 1是米,2,千米 * @param undefined $decimal,保留兩位小數 * * @return */ ~~~ function getDistance($lat1, $lng1, $lat2, $lng2, $len_type = 1, $decimal = 2) { $pi = 3.1415926000000001; $er = 6378.1369999999997; $radLat1 = ($lat1 * $pi) / 180; $radLat2 = ($lat2 * $pi) / 180; $a = $radLat1 - $radLat2; $b = (($lng1 * $pi) / 180) - (($lng2 * $pi) / 180); $s = 2 * asin(sqrt(pow(sin($a / 2), 2) + (cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2)))); $s = $s * $er; $s = round($s * 1000); if (1 < $len_type) { $s /= 1000; } return round($s, $decimal); } ~~~ ~~~ function isutf8($string) { $c = 0; $b = 0; $bits = 0; $len = strlen($string); for($i=0; $i<$len; $i++) { $c = ord($string[$i]); if($c > 128) { if(($c >= 254)) return false; elseif($c >= 252) $bits=6; elseif($c >= 248) $bits=5; elseif($c >= 240) $bits=4; elseif($c >= 224) $bits=3; elseif($c >= 192) $bits=2; else return false; if(($i+$bits) > $len) return false; while($bits > 1) { $i++; $b=ord($string[$i]); if($b < 128 || $b > 191) return false; $bits--; } } } return true; } ~~~ 判斷是否POST ~~~ if(!function_exists('is_post')){ function is_post() { return isset($_SERVER['REQUEST_METHOD']) && strtoupper($_SERVER['REQUEST_METHOD'])=='POST'; } } ~~~ 判斷是否ajax ~~~ if(!function_exists('is_ajax')){ function is_ajax() { return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtoupper($_SERVER['HTTP_X_REQUESTED_WITH'])=='XMLHTTPREQUEST'; } } ~~~ 判斷是否get ~~~ if(!function_exists('is_get')){ function is_get() { return isset($_SERVER['REQUEST_METHOD']) && strtoupper($_SERVER['REQUEST_METHOD'])=='GET'; } } ~~~ 字符串與數組互相轉換,轉換自動判斷是否數組 ~~~ function str2arr($var,$str=','){ if(is_array($var)){ return implode($str,$var); }else{ return explode($str,$var); } } ~~~ /** * * @param 代碼編號 $code * @param 返回的信息 $message * @param 數據 * * @return */ ~~~ function json($code=200,$message='請求成功',$list=array(),$total=0){ $json = array( 'code'=>$code, 'msg'=>$message ); if(!empty($list)){ $json['list'] = $list; } if(!empty($total)){ $json['total'] = $total; } header('Content-type: application/json'); exit(json_encode1($json)); } ~~~ 轉換實體 ~~~ function htmlencode($var) { if (is_array($var)) { foreach ($var as $key => $value) { $var[htmlspecialchars($key)] = html2($value); } } else { $var = str_replace('&amp;', '&', htmlspecialchars($var, ENT_QUOTES)); } return $var; } function htmldecode($var){ return htmlspecialchars_decode($var); } ~~~ 生成唯一id字符串 ~~~ function createid(){ return md5(uniqid()); } ~~~ 圖像信息 ~~~ function getimginfo($src){ $ext = fileext($src); if($ext!='gif' && $ext!='png' && $ext!='jpg'){ return ''; } $srcarr = getimagesize($src); $arr = array(1=>'gif','jpg','png'); return "像素: ".$srcarr[0]." X ".$srcarr[1]." 格式: ".$arr[$srcarr[2]]; } ~~~ ~~~ /** * 把秒數轉換為時分秒的格式 * @param Int $times 時間,單位 秒 * @return String */ function sec2time($seconds){ $seconds = (int)$seconds; if ($seconds >3600){ $hours =intval($seconds/3600); $minutes = $seconds % 3600; $time = $hours.":".gmstrftime('%M:%S',$minutes); }else{ $time = gmstrftime('%H:%M:%S',$seconds); } return $time; } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看