數(shù)十年來(lái),php一直是全球最受歡迎的編程語(yǔ)言之一。PHP開(kāi)發(fā)具有快速安全、易于維護(hù)、大量可用軟件庫(kù)、以及更少的手動(dòng)編程量等特點(diǎn)。如今,PHP在網(wǎng)站中的使用量已高達(dá)79%。本文將給大家分享一下php程序員日常工作內(nèi)容之學(xué)習(xí)筆記分享
1.php獲取數(shù)組中含有相同元素的方法
public function get_array_same_value($arr){ foreach ($arr as $key => $val) { $value = $val; unset($arr[$key]); if(in_array($value,$arr)){ $sameArr[] = $value; } } return $sameArr; }
說(shuō)明:遍歷數(shù)組中所有的值,先把值賦予$value,再刪除當(dāng)前元素,通過(guò)in_array函數(shù)判斷數(shù)組中是否含有當(dāng)前元素,有則將相同的元素賦予$sameArr變量,重復(fù)執(zhí)行直至所有元素
2.PHP處理微信昵稱特殊符號(hào)過(guò)濾方法
方法一:
protected function removeEmoji($clean_text) { // Match Emoticons $regexEmoticons = '/[\x{1F600}-\x{1F64F}]/u'; $clean_text = preg_replace($regexEmoticons, '', $clean_text); // Match Miscellaneous Symbols and Pictographs $regexSymbols = '/[\x{1F300}-\x{1F5FF}]/u'; $clean_text = preg_replace($regexSymbols, '', $clean_text); // Match Transport And Map Symbols $regexTransport = '/[\x{1F680}-\x{1F6FF}]/u'; $clean_text = preg_replace($regexTransport, '', $clean_text); // Match Miscellaneous Symbols $regexMisc = '/[\x{2600}-\x{26FF}]/u'; $clean_text = preg_replace($regexMisc, '', $clean_text); // Match Dingbats $regexDingbats = '/[\x{2700}-\x{27BF}]/u'; $clean_text = preg_replace($regexDingbats, '', $clean_text); return $clean_text; }
方法二:
preg_replace("/[\x{1F600}-\x{1F64F}\x{1F300}-\x{1F5FF}\x{1F680}-\x{1F6FF}\x{2600}-\x{26FF}\x{2700}-\x{27BF}]/u","","這里是昵稱")
方法三:
// 過(guò)濾掉emoji表情 function filterEmoji($str){ $str = preg_replace_callback( '/./u', function (array $match) { return strlen($match[0]) >= 4 ? '' : $match[0]; }, $str); return $str; }
3.PHP array_column() 函數(shù)
array_column() 返回輸入數(shù)組中某個(gè)單一列的值。
PHP 版本:5.5+
語(yǔ)法
array_column(array,column_key,index_key);
實(shí)例
從記錄集中取出 last_name 列,用相應(yīng)的 "id" 列作為鍵值:
// 表示由數(shù)據(jù)庫(kù)返回的可能記錄集的數(shù)組 <?php $a = array( array( 'id' => 5698, 'first_name' => 'Bill', 'last_name' => 'Gates', ), array( 'id' => 4767, 'first_name' => 'Steve', 'last_name' => 'Jobs', ), array( 'id' => 3809, 'first_name' => 'Mark', 'last_name' => 'Zuckerberg', ) ); $last_names = array_column($a, 'last_name'); print_r($last_names); ?>
輸出:
Array( [0] => Gates [1] => Jobs [2] => Zuckerberg)
4.PHP判斷變量是否為整型
1、is_int()
2、is_numeric()
兩個(gè)函數(shù)的區(qū)別:
當(dāng)變量為字符串'1'時(shí)
is_int()的返回值為false,
is_numeric()的返回值為true
當(dāng)變量為數(shù)字1時(shí),兩個(gè)都為true
is_int()的返回值為true
is_numeric()的返回值為true
5.PHP下開(kāi)啟PDO MySQL的擴(kuò)展
PDO擴(kuò)展為PHP訪問(wèn)數(shù)據(jù)zd庫(kù)定義了一個(gè)輕量級(jí)的、一致性的接口,它提供了一個(gè)數(shù)據(jù)訪問(wèn)抽象層,這樣,無(wú)論使用什么數(shù)據(jù)庫(kù),都可以通過(guò)一致的函數(shù)版執(zhí)行查詢和獲取數(shù)據(jù)。
開(kāi)啟PDO和PDO_MySQL擴(kuò)展
方法:
1、找到php.ini文件
2、打開(kāi)后,搜索 extension=php_pdo.dll 和 extension=php_pdo_mysql.dll ,去掉前面“;”的注釋。
最終這兩行配權(quán)置內(nèi)容如下:
extension=php_pdo.dll extension=php_pdo_mysql.dll
重新啟動(dòng)apache或者iis后,在phpinfo函數(shù)中查看,是否開(kāi)啟
6.PHP將字符串的每個(gè)單詞的首字符變成大寫(xiě)
將傳入的字符串的每個(gè)單詞的首字符變成大寫(xiě)
$str = 'hellow word'; echo ucwords($str); //輸出:Hellow Word
7.PHP將字符串中所有單詞改為大寫(xiě)
將字符串中所有單詞改為大寫(xiě)并且返回轉(zhuǎn)換后的字符串
$str = "Hello Word"; $str = strtolower($str); echo $str; //輸出HELLOW WORD
8.PHP將所有單詞改為小寫(xiě)
將字符串中所有單詞改為小寫(xiě)并且返回轉(zhuǎn)換后的字符串
$str = "Hello Word"; $str = strtolower($str); echo $str; //輸出hellow word
9.PHP首字母大寫(xiě)
將字符串首字母轉(zhuǎn)換成大寫(xiě),直接返回轉(zhuǎn)換后的字符串
$foo = 'hello world!'; $foo = ucfirst($foo); // Hello world!
10.Thinkphp header獲取參數(shù)失敗的原因
比如我們前后分離的時(shí)候常用在頭部傳入token的方式
正常情況下
$header = Request::header();
即可獲取到頭部所有參數(shù),但最近發(fā)現(xiàn)獲取不到access_token
F12調(diào)試的時(shí)候access_token明明有值,也傳過(guò)去了,但php就是獲取不到
原因:access_token命名是用_下滑杠分割,但header一般都是用-分割
解決:把a(bǔ)ccess_token改為access-token或者token即可
11.PHP驗(yàn)證身份證格式的公共方法
/** * 身份證驗(yàn)證函數(shù) * @param $idcard * @return bool */ function check_idcard($idcard){ // 只能是18位 if(strlen($idcard)!=18){ return false; } // 取出本體碼 $idcard_base = substr($idcard, 0, 17); // 取出校驗(yàn)碼 $verify_code = substr($idcard, 17, 1); // 加權(quán)因子 $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); // 校驗(yàn)碼對(duì)應(yīng)值 $verify_code_list = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); // 根據(jù)前17位計(jì)算校驗(yàn)碼 $total = 0; for($i=0; $i<17; $i++){ $total += substr($idcard_base, $i, 1)*$factor[$i]; } // 取模 $mod = $total % 11; // 比較校驗(yàn)碼 if($verify_code == $verify_code_list[$mod]){ return true; }else{ return false; } }
12.報(bào)錯(cuò):trim() expects parameter 1 to be string, int given
主要是trim缺少參數(shù)
注:參數(shù)必須是字符串(整型也會(huì)報(bào)錯(cuò))
13.PHP實(shí)現(xiàn)手機(jī)號(hào)碼中間四位數(shù)替換成星號(hào)*
示例:
字符串截取法
/** * 中間加密 字符串截取法 */ public static function encryptTel($tel) { $new_tel = substr($tel, 0, 3).'****'.substr($tel, 7); return $new_tel; }
替換字符串
/** * 中間加密 替換字符串的子串 */ public static function encryptTel($tel) { $new_tel = substr_replace($tel, '****', 3, 4); return $new_tel; }
正則
/** * 中間加密 用正則 */ public static function encryptTel($tel) { $new_tel = preg_replace('/(\d{3})\d{4}(\d{4})/', '$1****$2', $tel); return $new_tel; }
14.PHP7引入的“??”和“?:”的區(qū)別
??是PHP7新增的特性 $a ?? 0 等同于 isset($a) ? $a : 0。 $a ?: 0 等同于 $a ? $a : 0。 empty: 判斷一個(gè)變量是否為空(null、false、00、0、’0′、』這類,都會(huì)返回true)。 isset: 判斷一個(gè)變量是否設(shè)置(值為false、00、0、’0′、』這類,也會(huì)返回true)。
15.PHP生成一個(gè)六位數(shù)的核銷碼
PHP生成一個(gè)六位數(shù)的核銷碼
$unique_no = substr(base_convert(md5(uniqid(md5(microtime(true)),true)), 16, 10), 0, 6);
不管是多少位數(shù),隨機(jī)總會(huì)有概率重復(fù)
建議在插入數(shù)據(jù)庫(kù)之前,先去查詢當(dāng)前表是否已經(jīng)有該碼
有:重新生成
沒(méi)有:直接插入
以上就是“php程序員日常工作內(nèi)容之學(xué)習(xí)筆記分享”的詳細(xì)內(nèi)容,想要了解更多php教程歡迎關(guān)注編程學(xué)習(xí)網(wǎng)
掃碼二維碼 獲取免費(fèi)視頻學(xué)習(xí)資料
- 本文固定鏈接: http://www.wangchenghua.com/post/8461/
- 轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載必須在正文中標(biāo)注并保留原文鏈接
- 掃碼: 掃上方二維碼獲取免費(fèi)視頻資料