/** * 鄒顥 * zouhao619@gmail.com *//** * 擷取當前毫秒 * @return string */function get_millisecond() {$t = explode ( " ", microtime () );$t = $t [1] . ($t [0] * 1000);$t2 = explode ( ".", $t );return $t2 [0];}/** * curl類比http/https post請求 * @param string $url請求網址 * @param array $data請求參數 * @return string網址內容 */function curl_post($url,$data=array()){$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER,true) ; // 擷取資料返回curl_setopt($ch, CURLOPT_POST,true) ; // 啟用時會發送一個常規的POST請求,類型為:application/x-www-form-urlencoded,就像表單提交的一樣。curl_setopt($ch, CURLOPT_POSTFIELDS,$data); // 在HTTP中的“POST”操作。如果要傳送一個檔案,需要一個@開頭的檔案名稱if(substr($url,0,5)=='https'){curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);}$content=curl_exec($ch);curl_close($ch) ;return $content;}/** * curl類比http get請求 * @param string $url請求網址 * @param string|array $data請求參數 * @return string網址內容 */function curl_get($url,$data=array()){$url=rtrim($url,'/');if(!empty($data)){if(is_array($data)){$first=true;foreach($data as $k=>$v){if($first){$url.='?';$first=false;}else{$url.='&';}$url.="{$k}={$v}";}}else{$data=ltrim('?',$data);$url.='?'.$data;}}$ch = curl_init($url);curl_setopt($ch,CURLOPT_HEADER,false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 擷取資料返回if(substr($url,0,5)=='https'){curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);}$content = curl_exec($ch);curl_close($ch);return $content;}/** * 二維數組按索引值排序 * @param array $arr 二維數組 * @param string $keys索引值 * @param string $type升序:asc,降序:desc(else) * @return array */function array_sort($arr,$keys,$type='asc'){$keysvalue = $new_array = array();foreach ($arr 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] = $arr[$k];}return $new_array;}/** * 擷取用戶端ip * @param number $type * @return string */function get_client_ip($type = 0) {$type = $type ? 1 : 0;static $ip = NULL;if ($ip !== NULL) return $ip[$type];if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);$pos = array_search('unknown',$arr);if(false !== $pos) unset($arr[$pos]);$ip = trim($arr[0]);}elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {$ip = $_SERVER['HTTP_CLIENT_IP'];}elseif (isset($_SERVER['REMOTE_ADDR'])) {$ip = $_SERVER['REMOTE_ADDR'];}// IP地址合法驗證$long = sprintf("%u",ip2long($ip));$ip = $long ? array($ip, $long) : array('0.0.0.0', 0);return $ip[$type];}/** * 將字串轉換為駝峰式命名 * * @param string $str * @param boolean $big * true大駝峰式 false小駝峰式 * @return string */function hump_type($str, $big = false) {$str = strtolower ( $str );$big and ucfirst ( $str );$str = preg_replace ( "/_([a-zA-Z])/e", "strtoupper('\\1')", $str );return $str;}/** * 遍曆刪除檔案夾 * * @param string $path * 檔案夾地址 * @return boolean */function delete_files($path) {if (is_file ( $path )) {return unlink ( $path );}if (is_dir ( $path )) {$handle = opendir ( $path );if ($handle != false) {while ( false !== ($file = readdir ( $handle )) ) {if (in_array ( $file, array ('.','..' ) ))continue;$file = $path . '/' . $file;if (is_dir ( $file )) {delete_files ( $file );} else if (is_file ( $file )) {if (unlink ( $file ) == false)return false;}}closedir ( $handle );}return true;}}/** * 截取字串(可截取utf8的) * * @param string $str * @param int $start * @param int $length * @param string $trim * @param string $charset * @return string */function sub($str, $start, $length, $trim = "...", $charset = 'UTF-8') {$length+=2;if (function_exists ( 'mb_get_info' )) {$iLength = mb_strlen ( $str, $charset );$str = mb_substr ( $str, $start, $length, $charset );if($length< $iLength - $start){$length-=2;return mb_substr ( $str, $start, $length, $charset ).$trim;}else{return $str;}} else {preg_match_all ( "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/", $str, $info );$str = join ( "", array_slice ( $info [0], $start, $length ) );return ($length < (sizeof ( $info [0] ) - $start)) ? $str . $trim : $str;}}/** * 遊覽器友好輸出 * 無線參數 */function dump() {$data=func_get_args();ob_start ();foreach($data as $v){var_dump ( $v );}$output = ob_get_clean ();if (! extension_loaded ( 'xdebug' )) {$output = preg_replace ( '/\]\=\>\n(\s+)/m', '] => ', $output );$output = '<pre>' . htmlspecialchars ( $output, ENT_QUOTES ) . '</pre>';}echo ($output);}/** * 從左邊查詢子串,找到則刪除子串,只刪除一次 * * @param string $str * @param string $find * @return string */function substr_left_once($str, $find) {$start = strpos ( $str, $find );if (is_bool ( $start )) {return $str;} else {return substr ( $str, $start + strlen ( $find ), strlen ( $str ) );}}/** * 從右邊查詢子串,找到則刪除子串,只刪除一次 * * @param string $str * @param string $find * @return string */function substr_right_once($str, $find) {$end = strrpos ( $str, $find );if (is_bool ( $end )) {return $str;} else {return substr ( $str, 0, $end );}}