php技术人员--面试总结php篇
1、实现中文字符串截取无乱码方法
开启mbstring扩展,然后自定义函数:
2、用php打印前一天的时间
3、不适用第三个变量交换2个变量的值
4、将1234567890,转换成1,234,567,890
header('content-type:text/html:charset=utf-8');$str = '1234567890';//反转字符串$str = strrev($str);//使用逗号分隔得到098,765,432,1,$str = chunk_split($str,3,',');//再次反转$str = strrev($str);//去掉左边的,$str = ltrim($str,',');echo $str;
5、实现utf8字符串反转
不能使用strrev,中文会出错
function strrev_utf8($str){return join(,array_reverse(preg_split(//u,$str)));}$str = 我是一个good男孩;echo strrev_utf8($str);6、取url的文件扩展名,尽量多的去实现方法$str = www.baidu.com/index.php;function get_ext1($str){return strrchr($str,'.');}function get_ext2($str){return substr($str,strrpos($str,'.'));}function get_ext3($str){$str = pathinfo($str);return $str['extension'];}function get_ext4($str){$arr = explode('.',$str);return $arr[count($arr)-1];}function get_ext5($str){$pattern = '/^[^\.]+\.([\w]+)$/';return preg_replace($pattern,'${1}',basename($str));}
7、写一个函数,将字符串open_door转换为opendoor
$str = open_door;function change_str($str){$arr = explode('_',$str);$arr = array_map('ucfirst',$arr);return implode('',$arr);}echo change_str($str);
8、单例模式
10、从一个完成的url获取文件扩展名
11、写一个函数可以便利一个文件夹下的所有文件和子文件夹
12、论坛中无限分类实现原理
首先设计数据库表
create table category(cate_id int unsigned not null auto_increment primary key,cat_name varchar(30) not null default '',parent_id int unsigned not null default 0) engine=innodb charset=utf8;然后用函数去递归实现,无限分类function tree($arr,$pid=0,$level=0){static $list = array();foreach($arr as $v){//如果是顶级分类,则存入$list//然后以此节点为根几点,遍历其子节点if($v['parent_id'] == $pid){$v['level'] = $level;$list[] = $v;tree($arr,$v['cat_id'],$level+1);}}return $list;}
13、计算2个文件的相对路径
queue);}}
希望本文对广大php开发者有所帮助,感谢阅读本文。