一文總結常用PHP業(yè)務邏輯demo
項目開發(fā)常用業(yè)務邏輯代碼
項目開發(fā)中經(jīng)常用到的業(yè)務邏輯代碼,總結在此處,備用。
1、加密解密函數(shù):
function?encryptDecrypt($key,?$string,?$decrypt){ ????if($decrypt){ ????????$decrypted?=?rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256,?md5($key),?base64_decode($string),?MCRYPT_MODE_CBC,?md5(md5($key))),?"12"); ????????return?$decrypted; ????}else{ ????????$encrypted?=?base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,?md5($key),?$string,?MCRYPT_MODE_CBC,?md5(md5($key)))); ????????return?$encrypted; ????} }
在使用的時候我們可以為加密的字符串,設置一個加密KEY值,解密的時候傳入這個KEY值即可獲得密文原文。$decrypt取值0和1時分別對應加密、解密。
2、上傳圖片方向糾正:
由于每個人拍照姿勢都不一樣,難免有人拍照上傳的圖片出現(xiàn)倒立的情況,下面這個業(yè)務邏輯可以自動糾正上傳圖片的方向。
$image?=?imagecreatefromstring(file_get_contents($_FILES['image_upload']['tmp_name'])); $exif?=?exif_read_data($_FILES['image_upload']['tmp_name']); if(!emptyempty($exif['Orientation']))?{ ????switch($exif['Orientation'])?{ ????????case?8: ????????????$image?=?imagerotate($image,90,0); ????????????break; ????????case?3: ????????????$image?=?imagerotate($image,180,0); ????????????break; ????????case?6: ????????????$image?=?imagerotate($image,-90,0); ????????????break; ????} }
3、拆分姓名中的姓氏和名字
/** ?*?拆分姓名(姓氏和名字) ?*?@param?string?$fullname?全名(如:百里屠蘇) ?*?@return?array?一維數(shù)組[0=>'姓氏',1=>'名稱'] ?*?@return?array ?*/ function?splitName($fullname){ ????$hyphenated?=?array( ????????'百里','北堂','北野','北宮','辟閭', ????????'淳于','成公','陳生','褚?guī)?,'城池', ????????'端木','東方','東郭','東野','東門','第五','大狐','段干','段陽','第二','東宮', ????????'公孫','公冶','公羊','公良','公西','公孟','公伯','公析','公肩','公堅','公乘','公皙','公戶','公廣','公儀','公祖','公玉','公仲','公上','公門','公山','高堂','高陽','郭公','谷梁','毌將','毌丘','單于','叱干','叱利','車非', ????????'獨孤','大野','獨吉','達奚','東里', ????????'哥舒','貫丘', ????????'皇甫','黃龍','胡母','何陽','赫連','呼延','賀蘭','賀若','黑齒','斛律','斛粟', ????????'夾谷','九方','即墨','吉胡', ????????'可頻', ????????'梁丘','閭丘','洛陽','陵尹','冷富','龍丘','令狐', ????????'慕容','萬俟','抹捻', ????????'納蘭','南榮', ????????'南宮','南郭','女媧','南伯','南容','南門','南野', ????????'歐陽','歐侯', ????????'濮陽','普周','仆固','仆散','蒲察', ????????'青陽','漆雕','亓官','渠丘','屈突','屈盧','鉗耳', ????????'壤駟','汝嫣', ????????'上官','少室','少叔','司徒','司馬','司空','司寇','士孫','申屠','申徒','申鮮','申叔','夙沙','叔先','叔仲','叔孫','侍其','是云','索盧','厙狄', ????????'澹臺','太史','太叔','太公','屠岸','唐古','拓跋','同蹄','禿發(fā)', ????????'聞人','巫馬','微生','王孫','無庸','完顏', ????????'夏侯','西門','信平','鮮于','軒轅','相里','新垣','徐離姓', ????????'羊舌','羊角','延陵','於陵','伊祁','吾丘','樂正','宇文','尉遲','耶律', ????????'諸葛','顓孫','仲孫','仲長','鐘離','宗政','主父','中叔','左人','左丘','宰父','長兒','仉督','長孫','子車','子書','子桑' ????); ????$vLength?=?mb_strlen($fullname,?'utf-8'); ????$lastname?=?''; ????$firstname?=?'';//前為姓,后為名 ????if($vLength?>?2){ ????????$preTwoWords?=?mb_substr($fullname,?0,?2,?'utf-8');//取命名的前兩個字,看是否在復姓庫中 ????????if(in_array($preTwoWords,?$hyphenated)){ ????????????$lastname?=?$preTwoWords; ????????????$firstname?=?mb_substr($fullname,?2,?10,?'utf-8'); ????????}else{ ????????????$lastname?=?mb_substr($fullname,?0,?1,?'utf-8'); ????????????$firstname?=?mb_substr($fullname,?1,?10,?'utf-8'); ????????} ????}else?if($vLength?==?2){//全名只有兩個字時,以前一個為姓,后一下為名 ????????$lastname?=?mb_substr($fullname?,0,?1,?'utf-8'); ????????$firstname?=?mb_substr($fullname,?1,?10,?'utf-8'); ????}else{ ????????$lastname?=?$fullname; ????} ????return?array($lastname,?$firstname); }
4、打印輸出數(shù)據(jù)到文件
/** ?*?打印輸出數(shù)據(jù)到文件 ?*?@param?mixed?$data ?*?@param?bool?$replace ?*?@param?string|null?$pathname ?*/ function?p($data,?$replace?=?false,?$pathname?=?null) { ????is_null($pathname)?&&?$pathname?=?RUNTIME_PATH?.?date('Ymd')?.?'.txt'; ????$str?=?(is_string($data)???$data?:?(is_array($data)?||?is_object($data))???print_r($data,?true)?:?var_export($data,?true))?.?"\n"; ????$replace???file_put_contents($pathname,?$str)?:?file_put_contents($pathname,?$str,?FILE_APPEND); }
這個函數(shù)雖然很小巧,但是在調(diào)試一些內(nèi)部執(zhí)行數(shù)據(jù)的時候非常有用,且很方便的輸出我們要查看的數(shù)據(jù)。
5、隨機字符生成
/* ?*?隨機字符生成 ?*/ function?randStr($len=6,$format='all')?{ ????switch($format)?{ ????????case?'all': ????????????$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-@#~';?break; ????????case?'char': ????????????$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-@#~';?break; ????????case?'number': ????????????$chars='0123456789';?break; ????????case?'charnum': ????????????$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; ????????????break; ????????case?'verify': ????????????$chars='ABCDEFGHIJKMNPQRSTUVWXYZ23456789'; ????????????break; ????} ????mt_srand(); ????$password=""; ????while(strlen($password)<$len) ????????$password.=substr($chars,(mt_rand()%strlen($chars)),1); ????return?$password; }
6、生成唯一訂單號
/* ?*?生成唯一訂單號 ?*/ function?CreateOrderId(){ ????$order_id_main?=?date('YmdHis')?.?rand(10000000,99999999); ????//訂單號碼主體長度 ????$order_id_len?=?strlen($order_id_main); ????$order_id_sum?=?0; ????for($i=0;?$i<$order_id_len;?$i++){ ????????$order_id_sum?+=?(int)(substr($order_id_main,$i,1)); ????} ????//唯一訂單號碼(YYYYMMDDHHIISSNNNNNNNNCC) ????$order_id?=?$order_id_main?.?str_pad((100?-?$order_id_sum?%?100)?%?100,2,'0',STR_PAD_LEFT); ????return?$order_id; }
7、獲取毫秒級時間戳。
關于獲取毫秒級時間戳其實只需要一行代碼,網(wǎng)上很多人專門寫了很多函數(shù)去處理。因為毫秒級的時間戳是13位,int類會溢出。操作使用時可以以float類型或string類型均可。
$timestamp = substr(microtime(true)*1000,0,13);
8、獲取文章中的圖片
/* ?*?獲取文章圖片 ?*/ function?getContentPic($content,$num='1'){ ????$pattern="/<img.*?src=[\'|\"](.*?)[\'|\"].*?[\/]?>/"; ????preg_match_all($pattern,htmlspecialchars_decode($content),$match); ????if(!emptyempty($match[1])?&&?$num?==?1){ ????????return?$match[1][0]; ????}else{ ????????return?$match[1]; ????} ????return?''; }
9、重寫PHP array_push實現(xiàn)自由添加數(shù)組鍵值
/* ?*?重寫array_push ?*?@param?$array?array?目標數(shù)組 ?*?@param?$value?mix?鍵值 ?*?@param?$position?int?索引位置 ?*?@param?$key?string?鍵名 ?*?@return?Array ?*/ function?array_push_position(&$array,?$value=0,?$position,?$key?=?null) { ????$count?=?0; ????$return?=?array(); ????foreach?($array?as?$k?=>?$v) ????{ ????????if?($count?==?$position) ????????{ ????????????if?(!$key)?$key?=?$count; ????????????$return[$key]?=?$value; ????????????$inserted?=?true; ????????} ????????$return[$k]?=?$v; ????????$count++; ????} ????if?(!$key)?$key?=?$count; ????if?(!$inserted)?$return[$key]; ????$array?=?$return; ????return?$array; }
10、修改XML文件節(jié)點
(可以很方便的生成網(wǎng)站地圖,方便SEO優(yōu)化)
/* ?*?Xml文件增加節(jié)點 ?*?@param?$filename?string?文件路徑 ?*?@param?$data?array?追加數(shù)組 ?*?@param?$nodename?string?節(jié)點名稱 ?*?@return?boole ?*/ function?addXmlNode($filename,$data,$nodename){ ????if(is_array($data)?&&?!emptyempty($data)?&&?is_file($filename)?&&?is_string($nodename)){ ????????$contents?=?file_get_contents($filename); ????????$xml?=?@simplexml_load_string($contents); ????????foreach($data?as?$key=>$value){ ????????????foreach($data[$key]?as?$k=>$v){ ????????????????$item?=?$xml->addChild($nodename); ????????????????$item->addChild($k,$v); ????????????} ????????} ????????$xml->asXML(); ????????$xmlDocument?=?new?DOMDocument('1.0'); ????????$xmlDocument->preserveWhiteSpace?=?false; ????????$xmlDocument->formatOutput?=?true; ????????$xmlDocument->loadXML($xml->asXML(),LIBXML_NOERROR); ????????$res?=?file_put_contents($filename,$xmlDocument->saveXML()); ????????return??$res?!==?false?true:$res; ????}else{ ????????throw?new?\think\Exception('Incorrect?parameters'); ????} }
提示:上述方法基于thinkPHP的異常拋出,如果非thinkPHP框架記得自行修改上述代碼,以免報錯。我懶得改了。
11、uuid生成
生成UUID的格式:8-4-4-4-12
function?createUUID(){ ????$chars?=?md5(uniqid(mt_rand(),?true)); ????$uuid?=?substr?(?$chars,?0,?8?)?.?'-' ????????.?substr?(?$chars,?8,?4?)?.?'-' ????????.?substr?(?$chars,?12,?4?)?.?'-' ????????.?substr?(?$chars,?16,?4?)?.?'-' ????????.?substr?(?$chars,?20,?12?); ????return?$uuid?; }
12、計算兩個日期中間相差多少年多少月多少天多少小時
function?diffTimes($stime=null){ ????$stime?=?emptyempty($stime)?time():strtotime($stime); ????$now?=?time(); ????//$dateMonthOne?=?explode('-',?date('Y-m',?$stime)); ????//$dateMonthTwo?=?explode('-',?date('Y-m',?$now)); ????$diff?=?[]; ????$diff['hours']?=?($now?-?$stime)?/?(60?*?60); ????//$diff['day']?=?($now?-?$stime)?/?(60?*?60?*?24); ????//$diff['month']?=?abs($dateMonthOne[0]?-?$dateMonthTwo[0])?*?12?+?abs($dateMonthOne[1]?-?$dateMonthTwo[1]); ????//$diff['year']?=?date('Y',?$now)?-?date('Y',?$stime); ????return?intval($diff['hours'])."小時"; }
13、分鐘數(shù)轉時分
function?min2hour($min){ ????$hours?=?intval($min/60); ????$minutes?=?$min?%?60; ????return?$hours."小時".$minutes."分"; }
14、時間友好展示
剛剛、幾分鐘前、幾天前、幾年前
function?mdate($time?=?NULL)?{ ????$text?=?''; ????$time?=?$time?===?NULL?||?$time?>?time()???time()?:?intval($time); ????$t?=?time()?-?$time;?//時間差?(秒) ????$y?=?date('Y',?$time)-date('Y',?time());//是否跨年 ????switch($t){ ????????case?$t?==?0: ????????????$text?=?'剛剛'; ????????????break; ????????case?$t?<?60: ????????????$text?=?$t?.?'秒前';?//?一分鐘內(nèi) ????????????break; ????????case?$t?<?60?*?60: ????????????$text?=?floor($t?/?60)?.?'分鐘前';?//一小時內(nèi) ????????????break; ????????case?$t?<?60?*?60?*?24: ????????????$text?=?floor($t?/?(60?*?60))?.?'小時前';?//?一天內(nèi) ????????????break; ????????case?$t?<?60?*?60?*?24?*?3: ????????????$text?=?floor($time/(60*60*24))?==1??'昨天?'?.?date('H:i',?$time)?:?'前天?'?.?date('H:i',?$time)?;?//昨天和前天 ????????????break; ????????case?$t?<?60?*?60?*?24?*?30: ????????????$text?=?date('m-d?H:i',?$time);?//一個月內(nèi) ????????????break; ????????case?$t?<?60?*?60?*?24?*?365&&$y==0: ????????????$text?=?date('m-d',?$time);?//一年內(nèi) ????????????break; ????????default: ????????????$text?=?date('Y-m-d',?$time);?//一年以前 ????????????break; ????} ????return?$text; }
15、隱藏字符串中間一部分,用*代替
function?hideStr($string,?$bengin=0,?$len?=?4,?$type?=?0,?$glue?=?"@")?{ ????if?(emptyempty($string)) ????????return?false; ????$array?=?array(); ????if?($type?==?0?||?$type?==?1?||?$type?==?4)?{ ????????$strlen?=?$length?=?mb_strlen($string); ????????while?($strlen)?{ ????????????$array[]?=?mb_substr($string,?0,?1,?"utf8"); ????????????$string?=?mb_substr($string,?1,?$strlen,?"utf8"); ????????????$strlen?=?mb_strlen($string); ????????} ????} ????if?($type?==?0)?{ ????????for?($i?=?$bengin;?$i?<?($bengin?+?$len);?$i++)?{ ????????????if?(isset($array[$i])) ????????????????$array[$i]?=?"*"; ????????} ????????$string?=?implode("",?$array); ????}else?if?($type?==?1)?{ ????????$array?=?array_reverse($array); ????????for?($i?=?$bengin;?$i?<?($bengin?+?$len);?$i++)?{ ????????????if?(isset($array[$i])) ????????????????$array[$i]?=?"*"; ????????} ????????$string?=?implode("",?array_reverse($array)); ????}else?if?($type?==?2)?{ ????????$array?=?explode($glue,?$string); ????????$array[0]?=?hideStr($array[0],?$bengin,?$len,?1); ????????$string?=?implode($glue,?$array); ????}?else?if?($type?==?3)?{ ????????$array?=?explode($glue,?$string); ????????$array[1]?=?hideStr($array[1],?$bengin,?$len,?0); ????????$string?=?implode($glue,?$array); ????}?else?if?($type?==?4)?{ ????????$left?=?$bengin; ????????$right?=?$len; ????????$tem?=?array(); ????????for?($i?=?0;?$i?<?($length?-?$right);?$i++)?{ ????????????if?(isset($array[$i])) ????????????????$tem[]?=?$i?>=?$left???"*"?:?$array[$i]; ????????} ????????$array?=?array_chunk(array_reverse($array),?$right); ????????$array?=?array_reverse($array[0]); ????????for?($i?=?0;?$i?<?$right;?$i++)?{ ????????????$tem[]?=?$array[$i]; ????????} ????????$string?=?implode("",?$tem); ????} ????return?$string; }
使用說明:
第一個參數(shù)是需要轉換的字符串;
第二個參數(shù)是隱藏的起始位置,當type=4時表示左側保留長度;
第三個參數(shù)是需要隱藏的字符串個數(shù)(長度)當type=4時表示右側保留長度;
第四個參數(shù)type取值所代表的意義:0,從左向右隱藏;1,從右向左隱藏;2,從指定字符位置分割前由右向左隱藏;3,從指定字符位置分割后由左向右隱藏;4,保留首末指定字符串。
第五個參數(shù)是分隔符。
16、二維數(shù)組按指定鍵排序
function?array_msort($array,?$cols) { ????$colarr?=?array(); ????foreach?($cols?as?$col?=>?$order)?{ ????????$colarr[$col]?=?array(); ????????foreach?($array?as?$k?=>?$row)?{?$colarr[$col]['_'.$k]?=?strtolower($row[$col]);?} ????} ????$eval?=?'array_multisort('; ????foreach?($cols?as?$col?=>?$order)?{ ????????$eval?.=?'$colarr[\''.$col.'\'],'.$order.','; ????} ????$eval?=?substr($eval,0,-1).');'; ????eval($eval); ????$ret?=?array(); ????foreach?($colarr?as?$col?=>?$arr)?{ ????????foreach?($arr?as?$k?=>?$v)?{ ????????????$k?=?substr($k,1); ????????????if?(!isset($ret[$k]))?$ret[$k]?=?$array[$k]; ????????????$ret[$k][$col]?=?$array[$k][$col]; ????????} ????} ????return?$ret; }
17、Base64圖片流轉圖片文件
function?saveBase64Image($base64_image_content,$image_path){ ????if?(preg_match('/^(data:\s*image\/(\w+);base64,)/',?$base64_image_content,?$result)){ ????????//圖片后綴 ????????$type?=?$result[2]; ????????if($type=='jpeg'){ ????????????$type='jpg'; ????????} ????????//保存位置--圖片名 ????????$image_name=date('His').str_pad(mt_rand(1,?99999),?5,?'0',?STR_PAD_LEFT).".".$type; ????????//$image_path?=?'/static/upload/quanzi/'.$memberid.'/image/'; ????????$image_url?=?$image_path.$image_name; ????????if(!is_dir(ROOT_PATH.$image_path)){ ????????????mkdir(ROOT_PATH.$image_path,0755,true); ????????} ????????//解碼 ????????$decode=base64_decode(str_replace($result[1],?'',?$base64_image_content)); ????????if?(file_put_contents(ROOT_PATH.$image_url,?$decode)){ ????????????$data['code']='0'; ????????????$data['imageName']=$image_name; ????????????$data['image_url']=$image_url; ????????????$data['type']=$type; ????????????$data['msg']='保存成功!'; ????????}else{ ????????????$data['code']='1'; ????????????$data['imgageName']=''; ????????????$data['image_url']=''; ????????????$data['type']=''; ????????????$data['msg']='圖片保存失??!'; ????????} ????}else{ ????????$data['code']='1'; ????????$data['imgageName']=''; ????????$data['image_url']=''; ????????$data['type']=''; ????????$data['msg']='base64圖片格式有誤!'; ????} ????return?$data; }
18、隨機昵稱
function?randnickname(){ ????$tou=array('快樂','冷靜','醉熏','瀟灑','糊涂','積極','冷酷','深情','粗暴','溫柔','可愛','愉快','義氣','認真','威武','帥氣','傳統(tǒng)','瀟灑','漂亮','自然','專一','聽話','昏睡','狂野','等待','搞怪','幽默','魁梧','活潑','開心','高興','超帥','留胡子','坦率','直率','輕松','癡情','完美','精明','無聊','有魅力','豐富','繁榮','飽滿','炙熱','暴躁','碧藍','俊逸','英勇','健忘','故意','無心','土豪','樸實','興奮','幸福','淡定','不安','闊達','孤獨','獨特','瘋狂','時尚','落后','風趣','憂傷','大膽','愛笑','矮小','健康','合適','玩命','沉默','斯文','香蕉','蘋果','鯉魚','鰻魚','任性','細心','粗心','大意','甜甜','酷酷','健壯','英俊','霸氣','陽光','默默','大力','孝順','憂慮','著急','緊張','善良','兇狠','害怕','重要','危機','歡喜','欣慰','滿意','跳躍','誠心','稱心','如意','怡然','嬌氣','無奈','無語','激動','憤怒','美好','感動','激情','激昂','震動','虛擬','超級','寒冷','精明','明理','猶豫','憂郁','寂寞','奮斗','勤奮','現(xiàn)代','過時','穩(wěn)重','熱情','含蓄','開放','無辜','多情','純真','拉長','熱心','從容','體貼','風中','曾經(jīng)','追尋','儒雅','優(yōu)雅','開朗','外向','內(nèi)向','清爽','文藝','長情','平常','單身','伶俐','高大','懦弱','柔弱','愛笑','樂觀','???,'酷炫','神勇','年輕','嘮叨','瘦瘦','無情','包容','順心','暢快','舒適','靚麗','負責','背后','簡單','謙讓','彩色','縹緲','歡呼','生動','復雜','慈祥','仁愛','魔幻','虛幻','淡然','受傷','雪白','高高','糟糕','順利','閃閃','羞澀','緩慢','迅速','優(yōu)秀','聰明','含糊','俏皮','淡淡','堅強','平淡','欣喜','能干','靈巧','友好','機智','機靈','正直','謹慎','儉樸','殷勤','虛心','辛勤','自覺','無私','無限','踏實','老實','現(xiàn)實','可靠','務實','拼搏','個性','粗獷','活力','成就','勤勞','單純','落寞','樸素','悲涼','憂心','潔凈','清秀','自由','小巧','單薄','貪玩','刻苦','干凈','壯觀','和諧','文靜','調(diào)皮','害羞','安詳','自信','端莊','堅定','美滿','舒心','溫暖','專注','勤懇','美麗','靦腆','優(yōu)美','甜美','甜蜜','整齊','動人','典雅','尊敬','舒服','嫵媚','秀麗','喜悅','甜美','彪壯','強健','大方','俊秀','聰慧','迷人','陶醉','悅耳','動聽','明亮','結實','魁梧','標致','清脆','敏感','光亮','大氣','老遲到','知性','冷傲','呆萌','野性','隱形','笑點低','微笑','笨笨','難過','沉靜','火星上','失眠','安靜','純情','要減肥','迷路','爛漫','哭泣','賢惠','苗條','溫婉','發(fā)嗲','會撒嬌','貪玩','執(zhí)著','瞇瞇眼','花癡','想人陪','眼睛大','高貴','傲嬌','心靈美','愛撒嬌','細膩','天真','怕黑','感性','飄逸','怕孤獨','忐忑','高挑','傻傻','冷艷','愛聽歌','還單身','怕孤單','懵懂'); ????$do?=?array("的","愛","","與","給","扯","和","用","方","打","就","迎","向","踢","笑","聞","有","等于","保衛(wèi)","演變"); ????$wei=array('嚓茶','涼面','便當','毛豆','花生','可樂','燈泡','哈密瓜','野狼','背包','眼神','緣分','雪碧','人生','牛排','螞蟻','飛鳥','灰狼','斑馬','漢堡','悟空','巨人','綠茶','自行車','保溫杯','大碗','墨鏡','魔鏡','煎餅','月餅','月亮','星星','芝麻','啤酒','玫瑰','大叔','小伙','哈密瓜,數(shù)據(jù)線','太陽','樹葉','芹菜','黃蜂','蜜粉','蜜蜂','信封','西裝','外套','裙子','大象','貓咪','母雞','路燈','藍天','白云','星月','彩虹','微笑','摩托','板栗','高山','大地','大樹','電燈膽','磚頭','樓房','水池','雞翅','蜻蜓','紅牛','咖啡','機器貓','枕頭','大船','諾言','鋼筆','刺猬','天空','飛機','大炮','冬天','洋蔥','春天','夏天','秋天','冬日','航空','毛衣','豌豆','黑米','玉米','眼睛','老鼠','白羊','帥哥','美女','季節(jié)','鮮花','服飾','裙子','白開水','秀發(fā)','大山','火車','汽車','歌曲','舞蹈','老師','導師','方盒','大米','麥片','水杯','水壺','手套','鞋子','自行車','鼠標','手機','電腦','書本','奇跡','身影','香煙','夕陽','臺燈','寶貝','未來','皮帶','鑰匙','心鎖','故事','花瓣','滑板','畫筆','畫板','學姐','店員','電源','餅干','寶馬','過客','大白','時光','石頭','鉆石','河馬','犀牛','西牛','綠草','抽屜','柜子','往事','寒風','路人','橘子','耳機','鴕鳥','朋友','苗條','鉛筆','鋼筆','硬幣','熱狗','大俠','御姐','蘿莉','毛巾','期待','盼望','白晝','黑夜','大門','黑褲','鋼鐵俠','啞鈴','板凳','楓葉','荷花','烏龜','仙人掌','襯衫','大神','草叢','早晨','心情','茉莉','流沙','蝸牛','戰(zhàn)斗機','冥王星','獵豹','棒球','籃球','樂曲','電話','網(wǎng)絡','世界','中心','魚','雞','狗','老虎','鴨子','雨','羽毛','翅膀','外套','火','絲襪','書包','鋼筆','冷風','八寶粥','烤雞','大雁','音響','招牌','胡蘿卜','冰棍','帽子','菠蘿','蛋撻','香水','泥猴桃','吐司','溪流','黃豆','櫻桃','小鴿子','小蝴蝶','爆米花','花卷','小鴨子','小海豚','日記本','小熊貓','小懶豬','小懶蟲','荔枝','鏡子','曲奇','金針菇','小松鼠','小蝦米','酒窩','紫菜','金魚','柚子','果汁','百褶裙','項鏈','帆布鞋','火龍果','奇異果','煎蛋','唇彩','小土豆','高跟鞋','戒指','雪糕','睫毛','鈴鐺','手鏈','香氛','紅酒','月光','酸奶','銀耳湯','咖啡豆','小蜜蜂','小螞蟻','蠟燭','棉花糖','向日葵','水蜜桃','小蝴蝶','小刺猬','小丸子','指甲油','康乃馨','糖豆','薯片','口紅','超短裙','烏冬面','冰淇淋','棒棒糖','長頸鹿','豆芽','發(fā)箍','發(fā)卡','發(fā)夾','發(fā)帶','鈴鐺','小饅頭','小籠包','小甜瓜','冬瓜','香菇','小兔子','含羞草','短靴','睫毛膏','小蘑菇','跳跳糖','小白菜','草莓','檸檬','月餅','百合','紙鶴','小天鵝','云朵','芒果','面包','海燕','小貓咪','龍貓','唇膏','鞋墊','羊','黑貓','白貓','萬寶路','金毛','山水','音響','尊云','西安'); ????$tou_num=rand(0,331); ????$do_num=rand(0,19); ????$wei_num=rand(0,327); ????$type?=?rand(0,1); ????if($type==0){ ????????$username=$tou[$tou_num].$do[$do_num].$wei[$wei_num]; ????}else{ ????????$username=$wei[$wei_num].$tou[$tou_num]; ????} ????return?$username;?//輸出生成昵稱 }
19、去除文本中指定的HTML標簽
function?strip_selected_tags($text,?$tags?=?array()){ ????$args?=?func_get_args(); ????$text?=?array_shift($args); ????$tags?=?func_num_args()?>?2???array_diff($args,array($text)):(array)$tags; ????foreach?($tags?as?$tag){ ????????if(preg_match_all('/<'.$tag.'[^>]*>(.*)<\/'.$tag.'>/iU',?$text,?$found)){ ????????????$text?=?str_replace($found[0],$found[1],$text); ????????} ????} ????return?$text; }
20、人民幣金額友好顯示:多少萬、多少億
function?transnum($num,$type){ ????//type:1單位個???2單位萬 ????$result?=?array(); ????$leng?=?pow(10,2);//小數(shù)位修改最后一個數(shù)字 ????switch($type){ ????????case?1: ????????????if($num?>=?10000){ ????????????????$result['num']?=?intval(($num/10000)*$leng)/$leng; ????????????????if($result['num']?>=?10000){ ????????????????????$result['num']?=?intval(($num/100000000)*$leng)/$leng; ????????????????????$result['rem']?=?"億"; ????????????????}else{ ????????????????????$result['rem']?=?"萬"; ????????????????} ????????????}else{ ????????????????$result['num']?=?intval($num*$leng)/$leng; ????????????????$result['rem']?=?""; ????????????} ????????????break; ????????case?2: ????????????if($num?>=?10000){ ????????????????????$result['num']?=?intval(($num/10000)*$leng)/$leng; ????????????????????$result['rem']?=?"億"; ????????????}else{ ????????????????$result['num']?=?intval($num*$leng)/$leng; ????????????????$result['rem']?=?"萬"; ????????????} ????????????break; ????} ????return?$result['num'].$result['rem']; }
21、二維數(shù)組去重
/** ?*?去掉二維數(shù)組中的重復項 ?*?@param?$array2D??????????數(shù)組 *?@param?$keyArray?????????還原時字段對應的key ?*?@return?array????????????去掉了重復項的數(shù)組 */ ?function?array_unique_fb($array2D,$keyArray){ ????????$temp=array(); ????????foreach?($array2D?as?$v){ ????????????$v?=?join(",",$v);??//降維,也可以用implode,將一維數(shù)組轉換為用逗號連接的字符串 ????????????$temp[]?=?$v; ????????} ?????$temp?=?array_unique($temp);????//去掉重復的字符串,也就是重復的一維數(shù)組 ????????foreach?($temp?as?$k?=>?$v){ ????????????//$temp[$k]?=?explode(",",$v);???//再將拆開的數(shù)組重新組裝 ???????????$temp[$k]=?array_combine($keyArray?,explode(",",trim($v))); ?????} ????????return?$temp; ?}
以上就是常用PHP業(yè)務邏輯demo總結的詳細內(nèi)容,更多關于PHP業(yè)務邏輯資料請關注腳本之家其它相關文章!
相關文章
PHP的數(shù)組中提高元素查找與元素去重的效率的技巧解析
這篇文章主要介紹了PHP的數(shù)組中提高元素查找與元素去重的效率的技巧解析,文中對比了相關方法的執(zhí)行速度來總結數(shù)組中使元素查找和去重更加高效的辦法,需要的朋友可以參考下2016-03-03file_get_contents獲取不到網(wǎng)頁內(nèi)容的解決方法
file_get_contents獲取不到網(wǎng)頁內(nèi)容的解決方法,需要的朋友可以參考一下2013-03-03百度工程師講PHP函數(shù)的實現(xiàn)原理及性能分析(二)
這篇文章主要介紹了百度工程師講PHP函數(shù)的實現(xiàn)原理及性能分析(二),本文講解了類方法、性能對比、內(nèi)置函數(shù)和用戶函數(shù)性能對比等內(nèi)容,需要的朋友可以參考下2015-05-05