PHP技术人员--面试总结PHP篇
更新时间:2024-03-16 22:43:01 阅读量: 综合文库 文档下载
欢迎登录清源教育官网www.tsingyuan.cn 查看更多视频教程
PHP技术人员--面试总结PHP篇
1、实现中文字符串截取无乱码方法 开启mbstring扩展,然后自定义函数:
header('content-Type:text/html:charset=utf-8'); function substr_utf8($str, $start, $length = null) { return join(\array_slice(
preg_split(\); (PS:^_^不错的php学习交流群:276167802,验证:hi) } //实例
$str = \我是一个good男孩!\echo substr_utf8($str, 2, 4); 2、用PHP打印前一天的时间
header('content-Type:text/html:charset=utf-8'); echo date('Y-m-d H:i:s',strtotime('-1 day')); 3、不适用第三个变量交换2个变量的值
header('content-Type:text/html:charset=utf-8'); $a = 'a'; $b = 'b';
list($a,$b) = array($b,$a); echo $a,$b;
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(\
欢迎登录清源教育官网www.tsingyuan.cn 查看更多视频教程 }
$str = \我是一个good男孩\echo strrev_utf8($str);
6、取url的文件扩展名,尽量多的去实现方法 $str = \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 = \function change_str($str){ $arr = explode('_',$str);
$arr = array_map('ucfirst',$arr); return implode('',$arr); }
echo change_str($str); 8、单例模式
private static $instance = null; private $conn;
//设置为私有,不允许通过new获得对象 private function __construct(){
$conn = mysql_connect('localhost','root','123456'); }
//获取实例方法
public static function getInstance(){ if(! self::$instance instanceof self){ self::$instance = new self;
欢迎登录清源教育官网www.tsingyuan.cn 查看更多视频教程 }
return self::$instance; }
//禁止克隆
private function __clone(){} }
$db = Mysql::getInstance();
9、写一段PHP代码,确保多个进程同时写入同一个文件成功
$fp = fopen(\if(flock($fp,LOCK_EX)){ //获得写锁
fwrite($fp,'write something'); flock($fp,LOCK_UN); }else{
echo \}
fclose($fp);
10、从一个完成的url获取文件扩展名
$url = 'http://www.http://www.wodefanwen.com//a/b/index.php?id=1'; $arr = parse_url($url);
$fname = basename($arr['path']); $arr = explode('.',$fname); echo $arr[count($arr)-1];
11、写一个函数可以便利一个文件夹下的所有文件和子文件夹
function my_scandir($dir){ $files = array(); if(is_dir($dir)){
if($handle = opendir($dir)){
while(($file = readdir($handle)) !== false){ if($file != \if(is_dir($dir.'/'.$file)){
$files[$file] = my_scandir($dir.'/'.$file); }else{
$files[] = $dir.'/'.$file; } } }
closedir($handle); return $files; } }
欢迎登录清源教育官网www.tsingyuan.cn 查看更多视频教程 }
var_dump(my_scandir('D:\\wamp\\www\\study')); 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个文件的相对路径
$a = '/a/b/c/d/a.php'; $b = '/a/b/e/f/b.php';
$arr1 = explode('/',dirname($a)); $arr2 = explode('/',dirname($b)); for($i=0,$len=count($arr2);$i<$len;$i++){ if($arr1[$i] != $arr2[$i]){ break; } }
//不在用一个根目录 if($i == 1){ $ret = array(); }
//在同一个根目录下 if($i != 1 && $i < $len){
$ret = array_fill(0,$len-$i,\}
//在同一个目录下 if($i == $len){
欢迎登录清源教育官网www.tsingyuan.cn 查看更多视频教程 $ret = array('./'); }
$ret = array_merge($ret,array_slice($arr1,$i)); echo implode('/',$ret); 14、约瑟夫环问题
function king($n,$m){ $monkey = range(1,$n); $i = 0;
while(count($monkey) > 1){ $i += 1;
$head = array_shift($monkey);//一个个出列最前面的 if( $i % $m != 0){
//如果不是m的倍数,则返回尾部,否则就出列了 array_push($monkey,$head); } }
return $monkey[0]; }
echo king(10,7); 15、PHP实现双向队列
private $queue = array(); public function addFirst($item){
return array_unshift($this->queue,$item); }
public function addLast($item){ return array_push($this->queue,$item); }
public function getFirst(){ return array_shift($this->queue); }
public function getLast(){ return array_pop($this->queue); } }
来源:清源教育
正在阅读:
PHP技术人员--面试总结PHP篇03-16
2018-2019学年高二化学上册课堂达标练习题310-20
小学生这样写优秀作文06-15
无任何网络提供程序接受指定的网络路径01-02
婚前贷款买房婚后归属问题研究09-13
2013浙大启真班部分考题09-23
2017-2018学年第二学期小学二年级期中考试数学试卷05-24
丰富百姓文化生活 完善社区文化建设04-23
2012--数据结构英文试卷A及答案11-03
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- PHP
- 面试
- 人员
- 总结
- 技术
- 综采工作面安全规定及处罚条例
- 植物营养学复习资料
- 2015全国高考语病题盘点与备考启示
- 卓顶精文2019第9课《竹节人》教案
- 生理学简答题汇总
- 所有常用汉字大全(含拼音)
- 三会内容指引
- 境外发生的法律关系是否可以由中国法院管辖、适用中国法律
- 用jsp servlet 做一个简易计算器
- 官80注水站改造工程环评 - 图文
- 感受音乐语言 - 图文
- 2014年秋六年级语文上册 第23课 学与问教学设计1 苏教版
- 小学女子足球二课堂训练计划
- 湖北省其他事业单位实施绩效工资指导意见
- 2019-201X中国大学排行榜100强完全榜单-实用word文档(1页)
- 高中数学必修三第三章概率质量检测题-word文档资料
- 计算机硬件基础试题D
- 混泥土泵车布料机构设计
- 《国际货运代理与报关实务》实训指导书(40学时)
- 1《动物学》教学大纲