php自定義函數(shù)

將xml格式轉(zhuǎn)換為數(shù)組
在我們請求一些第三方接口的時候量淌,要么返回給你json類型的數(shù)據(jù)格式虹茶,要么就是xml或者其他的,如果是json的話,很方便能直接使用急但,當(dāng)遇到xml格式的時候园匹,就需要轉(zhuǎn)換為數(shù)組格式的,方便使用蜀肘。
/**
 * 將xml格式轉(zhuǎn)換為數(shù)組
 * @param string $xml xml字符串
 * @return mixed
 */
function xml_to_array($xml = '')
{
    // 利用函數(shù)simplexml_load_string()把xml字符串載入對象中
    $obj = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
    // 編碼對象后酌予,再解碼即可得到數(shù)組
    $arr = json_decode(json_encode($obj), true);
    return $arr;
}
復(fù)制代碼隱藏手機(jī)號中間四位數(shù)
通常磺箕,為了安全和保護(hù)用戶隱私奖慌,用戶手機(jī)號等關(guān)鍵信息抛虫,是不能完全暴露在界面上公開顯示的,就需要處理一下简僧,比如通常是隱藏中間四位數(shù)……
/**
 * 隱藏手機(jī)號中間四位數(shù)為****
 * @param string $mobile 正常手機(jī)號
 * @return mixed
 */
function replace_phone($mobile = '')
{
    $new_mobile = substr_replace($mobile, '****', 3, 4);
    return $new_mobile;
}
復(fù)制代碼最簡單的API請求通用返回數(shù)據(jù)格式
這里建椰,我就最簡單的說明一下,一般API請求岛马,最基礎(chǔ)要求返回的數(shù)據(jù)格式棉姐,通常呢,可以細(xì)分為成功返回和失敗返回啦逆,大家可以根據(jù)實際情況處理伞矩,在很多框架中,都有直接封裝好的方法夏志,大家也可以去看看框架里是怎么處理的乃坤。
/**
 * 最簡單的Ajax請求返回數(shù)據(jù)格式
 * @param string $msg 返回提示信息
 * @param int $code 返回標(biāo)識符號
 * @param array $data 返回數(shù)據(jù)
 */
function ajax_return($msg = '', $code = 0, $data = [])
{
    $return['code'] = $code;
    $return['msg'] = $msg;
    $return['data'] = $data;
    exit(json_encode($return, JSON_UNESCAPED_UNICODE));
}
復(fù)制代碼截取字符串
通常,在一些列表或者固定范圍內(nèi),顯示一定長度的字符串的時候湿诊,如果我們不控制范圍的話狱杰,很可能會導(dǎo)致超出界面顯示,或者溢出顯示厅须,導(dǎo)致頁面布局不美觀等仿畸,這個時候,就需要我們控制顯示字符串的長度朗和,超出部分截取掉……
/**
 * 截取字符串错沽,超出部分用省略符號顯示
 * @param string $text 待截取字符串
 * @param int $length 截取長度,默認(rèn)全部截取
 * @param string $rep 截取超出替換的字符串眶拉,默認(rèn)為省略號
 * @return string
 */
function cut_string($text = '', $length = 0, $rep = '…')
{
    if (!empty($length) && mb_strlen($text, 'utf8') > $length) {
        $text = mb_substr($text, 0, $length, 'utf8') . $rep;
    }
    return $text;
}
復(fù)制代碼根據(jù)生日計算年齡
在一些論壇或者交友類平臺中甥捺,經(jīng)常會看到,某某年齡18歲镀层,如果當(dāng)你遇到這類開發(fā)需求的時候镰禾,是不是也得處理一下,我是個善良的開發(fā)者嘛唱逢,這種事情吴侦,我肯定幫想到了,讓我來就行了坞古,安排上备韧,已經(jīng)寫好了,可以直接拿來用痪枫。
/**
 * 根據(jù)生日計算年齡
 * @param string $date 生日的年月日
 * @return int
 */
function get_age($date = '')
{
    $age = 0;
    $time = strtotime($date);
    // 日期非法织堂,則不處理
    if (!$time) {
        return $age;
    }
    // 計算時間年月日差
    $date = date('Y-m-d', $time);
    list($year, $month, $day) = explode("-", $date);
    $age = date("Y", time()) - $year;
    $diff_month = date("m") - $month;
    $diff_day = date("d") - $day;
    // 不滿周歲年齡減1
    if ($age < 0 || $diff_month < 0 || $diff_day < 0) {
        $age--;
    }
    return $age;
}
復(fù)制代碼日期時間顯示格式轉(zhuǎn)換
最常見的,我們每天刷微信朋友圈的生活奶陈,左下角的那個時間易阳,比如:10分鐘前、2小時前吃粒、昨天等潦俺,你是否也遇到過這類的時間顯示轉(zhuǎn)換的需求,這類開發(fā)需求找我啊徐勃,我都給安排好了事示,拿來即用的那種哦……
/**
 * 日期時間顯示格式轉(zhuǎn)換
 * @param int $time 時間戳
 * @return bool|string
 */
function transfer_show_time($time = 0)
{
    // 時間顯示格式
    $day_time = date("m-d H:i", $time);
    $hour_time = date("H:i", $time);
    // 時間差
    $diff_time = time() - $time;
    $date = $day_time;
    if ($diff_time < 60) {
        $date = '剛剛';
    } else if ($diff_time < 60 * 60) {
        $min = floor($diff_time / 60);
        $date = $min . '分鐘前';
    } else if ($diff_time < 60 * 60 * 24) {
        $h = floor($diff_time / (60 * 60));
        $date = $h . '小時前 ' . $hour_time;
    } else if ($diff_time < 60 * 60 * 24 * 3) {
        $day = floor($diff_time / (60 * 60 * 24));
        if ($day == 1) {
            $date = '昨天 ' . $day_time;
        } else {
            $date = '前天 ' . $day_time;
        }
    }
    return $date;
}
復(fù)制代碼獲取毫秒數(shù)
日常開發(fā)中,我們一般都是通過time()直接獲取時間戳秒數(shù)僻肖,很少會遇到獲取毫秒數(shù)的需求肖爵,但是呢,有備無患臀脏,萬一啥時候一個坑比需求有這個要求呢劝堪,那怎么也得滿足吧法挨,作為一個職業(yè)的開發(fā)者,一般都是有求必應(yīng)的……
/**
 * 獲取毫秒數(shù)
 * @return string
 */
function get_millisecond()
{
    list($t1, $t2) = explode(' ', microtime());
    $ms = sprintf('%.0f', (floatval($t1) + floatval($t2)) * 1000);
    return $ms;
}
復(fù)制代碼CURL請求之GET方式
通常幅聘,我們都會遇到需要請求第三方接口的凡纳,而且一般也都會封裝自己的接口請求方法,大同小異帝蒿,這是最基礎(chǔ)的GET請求封裝
/**
 * CURL請求之GET方式
 * @param string $url 請求接口地址
 * @return bool|mixed
 */
function curl_get($url = '')
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    // 不驗證SSL證書荐糜。
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $res = curl_exec($ch);
    curl_close($ch);
    return $res;
}
復(fù)制代碼CURL請求之POST方式
很多第三方接口,一般都是POST方式的比較多葛超,所以暴氏,我也給大家封裝了一個基礎(chǔ)的請求方法,大家可以根據(jù)自己的實際情況绣张,進(jìn)行修改和完善答渔。
/**
 * CURL請求之POST方式
 * @param string $url 請求接口地址
 * @param array $data 請求參數(shù)
 * @param int $timeout 超時時間
 * @return mixed
 */
function curl_post($url = '', $data = [], $timeout = 3000)
{
    $post_data = http_build_query($data, '', '&');
    header("Content-type:text/html;charset=utf-8");
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_HEADER, false);
    $res = curl_exec($ch);
    curl_close($ch);
    return $res;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者侥涵。
  • 序言:七十年代末沼撕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子芜飘,更是在濱河造成了極大的恐慌务豺,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嗦明,死亡現(xiàn)場離奇詭異笼沥,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)娶牌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門奔浅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诗良,你說我怎么就攤上這事汹桦。” “怎么了累榜?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵营勤,是天一觀的道長灵嫌。 經(jīng)常有香客問我壹罚,道長,這世上最難降的妖魔是什么寿羞? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任猖凛,我火速辦了婚禮,結(jié)果婚禮上绪穆,老公的妹妹穿的比我還像新娘辨泳。我一直安慰自己虱岂,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布菠红。 她就那樣靜靜地躺著第岖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪试溯。 梳的紋絲不亂的頭發(fā)上蔑滓,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天,我揣著相機(jī)與錄音遇绞,去河邊找鬼键袱。 笑死,一個胖子當(dāng)著我的面吹牛摹闽,可吹牛的內(nèi)容都是我干的蹄咖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼付鹿,長吁一口氣:“原來是場噩夢啊……” “哼澜汤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起舵匾,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤银亲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后纽匙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體务蝠,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年烛缔,在試婚紗的時候發(fā)現(xiàn)自己被綠了馏段。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡践瓷,死狀恐怖院喜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晕翠,我是刑警寧澤喷舀,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站淋肾,受9級特大地震影響硫麻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜樊卓,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一拿愧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧碌尔,春花似錦浇辜、人聲如沸券敌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽待诅。三九已至,卻和暖如春熊镣,著一層夾襖步出監(jiān)牢的瞬間咱士,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工轧钓, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留序厉,地道東北人。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓毕箍,卻偏偏與公主長得像弛房,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子而柑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353