数十年来,php一直是全球最受欢迎的编程语言之一。PHP开发具有快速安全、易于维护、大量可用软件库、以及更少的手动编程量等特点。如今,PHP在网站中的使用量已高达79%。本文将给大家分享一下php程序员日常工作内容之学习笔记分享
1.php获取数组中含有相同元素的方法
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; }
说明:遍历数组中所有的值,先把值赋予$value,再删除当前元素,通过in_array函数判断数组中是否含有当前元素,有则将相同的元素赋予$sameArr变量,重复执行直至所有元素
2.PHP处理微信昵称特殊符号过滤方法
方法一:
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","","这里是昵称")
方法三:
// 过滤掉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() 函数
array_column() 返回输入数组中某个单一列的值。
PHP 版本:5.5+
语法
array_column(array,column_key,index_key);
实例
从记录集中取出 last_name 列,用相应的 "id" 列作为键值:
// 表示由数据库返回的可能记录集的数组 <?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()
两个函数的区别:
当变量为字符串'1'时
is_int()的返回值为false,
is_numeric()的返回值为true
当变量为数字1时,两个都为true
is_int()的返回值为true
is_numeric()的返回值为true
5.PHP下开启PDO MySQL的扩展
PDO扩展为PHP访问数据zd库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数版执行查询和获取数据。
开启PDO和PDO_MySQL扩展
方法:
1、找到php.ini文件
2、打开后,搜索 extension=php_pdo.dll 和 extension=php_pdo_mysql.dll ,去掉前面“;”的注释。
最终这两行配权置内容如下:
extension=php_pdo.dll extension=php_pdo_mysql.dll
重新启动apache或者iis后,在phpinfo函数中查看,是否开启
6.PHP将字符串的每个单词的首字符变成大写
将传入的字符串的每个单词的首字符变成大写
$str = 'hellow word'; echo ucwords($str); //输出:Hellow Word
7.PHP将字符串中所有单词改为大写
将字符串中所有单词改为大写并且返回转换后的字符串
$str = "Hello Word"; $str = strtolower($str); echo $str; //输出HELLOW WORD
8.PHP将所有单词改为小写
将字符串中所有单词改为小写并且返回转换后的字符串
$str = "Hello Word"; $str = strtolower($str); echo $str; //输出hellow word
9.PHP首字母大写
将字符串首字母转换成大写,直接返回转换后的字符串
$foo = 'hello world!'; $foo = ucfirst($foo); // Hello world!
10.Thinkphp header获取参数失败的原因
比如我们前后分离的时候常用在头部传入token的方式
正常情况下
$header = Request::header();
即可获取到头部所有参数,但最近发现获取不到access_token
F12调试的时候access_token明明有值,也传过去了,但php就是获取不到
原因:access_token命名是用_下滑杠分割,但header一般都是用-分割
解决:把access_token改为access-token或者token即可
11.PHP验证身份证格式的公共方法
/** * 身份证验证函数 * @param $idcard * @return bool */ function check_idcard($idcard){ // 只能是18位 if(strlen($idcard)!=18){ return false; } // 取出本体码 $idcard_base = substr($idcard, 0, 17); // 取出校验码 $verify_code = substr($idcard, 17, 1); // 加权因子 $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); // 校验码对应值 $verify_code_list = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); // 根据前17位计算校验码 $total = 0; for($i=0; $i<17; $i++){ $total += substr($idcard_base, $i, 1)*$factor[$i]; } // 取模 $mod = $total % 11; // 比较校验码 if($verify_code == $verify_code_list[$mod]){ return true; }else{ return false; } }
12.报错:trim() expects parameter 1 to be string, int given
主要是trim缺少参数
注:参数必须是字符串(整型也会报错)
13.PHP实现手机号码中间四位数替换成星号*
示例:
字符串截取法
/** * 中间加密 字符串截取法 */ 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引入的“??”和“?:”的区别
??是PHP7新增的特性 $a ?? 0 等同于 isset($a) ? $a : 0。 $a ?: 0 等同于 $a ? $a : 0。 empty: 判断一个变量是否为空(null、false、00、0、’0′、』这类,都会返回true)。 isset: 判断一个变量是否设置(值为false、00、0、’0′、』这类,也会返回true)。
15.PHP生成一个六位数的核销码
PHP生成一个六位数的核销码
$unique_no = substr(base_convert(md5(uniqid(md5(microtime(true)),true)), 16, 10), 0, 6);
不管是多少位数,随机总会有概率重复
建议在插入数据库之前,先去查询当前表是否已经有该码
有:重新生成
没有:直接插入
以上就是“php程序员日常工作内容之学习笔记分享”的详细内容,想要了解更多php教程欢迎关注编程学习网
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/8461/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料