您好,登錄后才能下訂單哦!
本篇內容主要講解“php中常用的函數總結”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“php中常用的函數總結”吧!
/** * 字符串編碼轉換 * * @param string $str 待處理的字符 * @param string $in_charset 輸入編碼 * @param string $out_charset 輸出編碼 * @return string */ function str_iconv($str, $in_charset = 'UTF-8', $out_charset = 'GBK') { $str = mb_convert_encoding($str, $out_charset, $in_charset); return $str; }
/** * 數組編碼轉換 * * @param array $arr 待處理的數組 * @param string $in_charset 輸入編碼 * @param string $out_charset 輸出編碼 * @return array */ function arr_iconv($arr, $in_charset = 'UTF-8', $out_charset = 'GBK'){ $arr = eval('return ' . mb_convert_encoding(var_export($arr,true), $out_charset, $in_charset) . ';'); return $arr; }
/** * 從內容中匹配出圖片信息(有多少圖片信息就匹配出多少) * * @param string $content 內容信息 * @param boolean $b_only_img_url 是否只獲取圖片地址,默認為true * @return array * <li>當$b_only_img_url = true時,只返回圖片地址的一維數組</li> * <li>當$b_only_img_url = false時,返回圖片地址的多種信息,二維數組,如下:</li> * <li>img_tag => '<img src="https://cache.yisu.com/upload/information/20200310/52/106968.jpg" />'</li> * <li>img_src => 'src="https://cache.yisu.com/upload/information/20200310/52/106968.jpg"'</li> * <li>img_url => 'https://cache.yisu.com/upload/information/20200310/52/106968.jpg'</li> */ function get_img_list_from_content($content, $b_only_img_url = true){ preg_match_all('/<img[^>]*?(?P<img_src_arr>src\s*=\s*([\'"]|"|'|')(?P<img_url_arr>.*?)([\'"]|"|'|'))[^>]*?>/msi', $content, $match); $arr_temp = array(); if($match['img_url_arr']) { foreach($match['img_url_arr'] as $key => $img_url) { if($b_only_img_url){ $img_info = $img_url; } else { $img_info = array( 'img_tag' => $match[0][$key], 'img_src' => $match['img_src_arr'][$key], 'img_url' => $match['img_url_arr'][$key], ); } $arr_temp[] = $img_info; } } return $arr_temp; }
/** * 獲取一個Hash編碼 * * @param string $str 字符串 * @return string */ function make_hash_code($str) { if(empty($str)) return ''; $mdv = md5($str); $mdv1 = substr($mdv,0,16); $mdv2 = substr($mdv,16,16); $crc1 = abs(crc32($mdv1)); $crc2 = abs(crc32($mdv2)); return bcmul($crc1,$crc2); }
/** * 根據當天的時間,返回此周末的時間 * * @param string $date * @return array $date_arr($Sat,$Sun) */ function get_weekend_by_date(){ $year = date("Y"); $month = date("m"); $day = date("d"); $nowday = mktime(0,0,0,$month,$day,$year); $w=(int)date("w",$nowday); if($w==0){ $Sat = mktime(0,0,0,$month,$day - 1,$year); $Sun = mktime(0,0,0,$month,$day + 1,$year); } else { $t = 6 - $w; $Sat = mktime(0,0,0,$month,$day + $t,$year); $Sun = mktime(0,0,0,$month,$day + $t + 2,$year); } return array("Sat"=>$Sat,"Sun"=>$Sun); } /* * 根據時間英文名稱,返回特定時間段戳 * @desc 返回今天,周末,下周,未來,過去,某個時間段對應的時間戳 * @param string $time_type 時間形式(today, weekend, next_week,future_all,history, time_to_time) * @param $search_end_time 當time_type為time_to_time時,需要傳入時間戳 * @return array; */ function get_timestamp_by_time_type($time_type = "today", $search_end_time = "") { // 支持的日期格式名稱 // $time_type_arr = array('today', 'weekend', 'next_week', 'future_arr', 'history', 'time_to_time'); switch ($time_type) { case "today": //今天 $today = strtotime(date('Y-m-d')); $tomorrow = $today+86400; $querys["start_time"] = $tomorrow; $querys["end_time"] = $today; break; case "weekend": //周末 $arr = mforum_get_weekend_by_date(); $querys["start_time"] = $arr["Sun"]; $querys["end_time"] = $arr["Sat"]; break; case "next_week": //未來7天 $today = strtotime(date('Y-m-d')); $next_week = $today+(86400*7); $tomorrow = $today+86400; $querys["start_time"] = $next_week; $querys["end_time"] = $tomorrow; break; case "future_all": //未來全部 $nowtime=time(); $querys["end_time"] = $nowtime; break; case "history": //歷史活動 $nowtime=time(); $querys["end_time"] = "< {$nowtime}"; break; case "time_to_time": //選擇時間段 $end_time = strtotime($search_end_time); if(!empty($end_time)) { $day = strtotime(date('Y-m-d',$end_time)); $tomorrow = $day+86400; $querys["start_time"] = $tomorrow; $querys["end_time"] = $day; } break; default: break; } return $querys; }
/** * 根據過期時間判斷剩余的天數 * @desc 如果為0,則表示活動已經結束 * @param $expire_time 時間戳 * @return float|int */ function check_remaining_days($expire_time) { // 獲取當前時間 $cur_time = time(); $expire_time = (int)$expire_time; $diff_time = ($expire_time - $cur_time); $remaining_days_count = 0; if($diff_time > 0) { // 計算剩余的天數 $remaining_days_count = ceil($diff_time / (24 * 3600)); } return $remaining_days_count; }
// php獲取當月天數及當月第一天及最后一天、上月第一天及最后一天實現方法 1.獲取上個月第一天及最后一天. echo date('Y-m-01', strtotime('-1 month')); echo "<br/>"; echo date('Y-m-t', strtotime('-1 month')); echo "<br/>"; 2.獲取當月第一天及最后一天. $BeginDate=date('Y-m-01', strtotime(date("Y-m-d"))); echo $BeginDate; echo "<br/>"; echo date('Y-m-d', strtotime("$BeginDate +1 month -1 day")); echo "<br/>"; 3.獲取當天年份、月份、日及天數. echo " 本月共有:".date("t")."天"; echo " 當前年份".date('Y'); echo " 當前月份".date('m'); echo " 當前幾號".date('d'); echo "<br/>"; 4.使用函數及數組來獲取當月第一天及最后一天,比較實用 function getthemonth($date) { $firstday = date('Y-m-01', strtotime($date)); $lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day")); return array($firstday,$lastday); } $today = date("Y-m-d"); $day=getthemonth($today); echo "當月的第一天: ".$day[0]." 當月的最后一天: ".$day[1]; echo "<br/>"; 5.封裝了一個方法,開箱即用: $year = 2017; $month = 2; function get_month_first_and_last_day($year, $month) { if(empty($year) || empty($month)) { return array(); } $date = $year . "-" . $month; $begin_date = date('Y-m-01 00:00:00', strtotime($date)); $last_date = date('Y-m-d 23:59:59', strtotime("$begin_date +1 month -1 day")); return array('begin_date' => $begin_date, 'last_date' => $last_date); } $ret = get_month_first_and_last_day($year, $month); print_r($ret);Array( [begin_date] => 2017-02-01 00:00:00 [last_date] => 2017-02-28 23:59:59)
* 根據二維數組的數據字段名返回其對應的值數組 * * @param array $rows 二維數組 * @param string $field_name 字段名 * @param boolean $b_off_empty 是否排除空值,默認:true * @return array */ function array_values_by_field_name($rows, $field_name, $b_off_empty = false){ $ret = array(); foreach($rows as $row) { if(isset($row[$field_name])) { if($b_off_empty) { if(!empty($row[$field_name])) { $ret[] = $row[$field_name]; } } else { $ret[] = $row[$field_name]; } } } return $ret; }
到此,相信大家對“php中常用的函數總結”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。