PHP面试题第九回
《PHP面试题第九回》要点: 1、HTTP状态中的301和302是什么意思?二者有何不同? 301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于: 301 redirect: 301 代表永久性转移(Permanently Moved). 302 redirect: 302 代表暂时性转移(Temporarily Moved ). 2、如何用正则表达式获得一个页面内容中所有图片的地址? <script type="text/javascript"> //思路分两步 //1,匹配出图片img标签(即匹配出所有图片),过滤其他不需要的字符 //2.从匹配出来的结果(img标签中)循环匹配出图片地址(即src属性) var str = "this is test string <img src="http:yourweb.com/test.jpg" width='50' > 123 and the end <img src="所有地址也能匹配.jpg" /> 33! <img src="/uploads/attached/image/20120426/20120426225658_92565.png" alt="" />" //匹配图片(g表示匹配所有结果i表示区分大小写) var imgReg = /<img.*?(?:>|/>)/gi; //匹配src属性 var srcReg = /src=[&;"]?([^&;"]*)[&;"]?/i; var arr = str.match(imgReg); alert('所有已成功匹配图片的数组:'+arr); for (var i = 0; i < arr.length; i++) { var src = arr[i].match(srcReg); //获取图片地址 if(src[1]){ alert('已匹配的图片地址'+(i+1)+':'+src[1]); } //当然你也可以替换src属性 if (src[0]) { var t = src[0].replace(/src/i,"href"); //alert(t); } } </script> 3、Const和static二者有哪些相似和不同? (1) static static关键字在类中是,描述一个成员是静态的,static能够限制外部的访问,因为static后的成员是属于类的,是不属于任何对象实例,其他类是无法访问的,只对类的实例共享,能一定程序对该成员尽心保护.类的静态变量,非常类似全局变量,能够被所有类的实例共享,类的静态方法也是一样的,类似于全局函数.类的静态方法能访问类的静态的属性.另外说明的是,static的成员,必须使用self来访问,使用this会出错. (2)const const是一个定义常量的关键字,类似于C中的#define,能够定义一个常量,如果在程序中改变了它的值,那么会出现错误. 4、已知任意一个合法日期,如何算出那一天所在星期的周一是几月几号? <metacharset="utf-8"> <?php date_default_timezone_set('PRC'); function zhuanhuan($strtime){ $time=strtotime($strtime); $xingqi=date('w',$time); switch($xingqi){ case 0: echo date("Y-m-d",$time-3600*24*6); break; case 1: echo date("Y-m-d",$time); break; case 2: echo date("Y-m-d",$time-3600*24); break; case 3: echo date("Y-m-d",$time-3600*24*2); break; case 4: echo date("Y-m-d",$time-3600*24*3); break; case 5: echo date("Y-m-d",$time-3600*24*4); break; case 6: echo date("Y-m-d",$time-3600*24*5); break; case 6: echo date("Y-m-d",$time-3600*24*6); break; default: echo "呵呵"; } } zhuanhuan("2017-01-09"); //代码输出结果:2017-01-09 5、请写出至少两种获取文件名中扩展名的方法? 方法一 <?php $path = "/usr/www/html/index.php"; $pathinfo = pathinfo($path); //var_dump($pathinfo); echo "扩展名:$pathinfo[extension]"; ?> 方法二 <?php function extend_2( $file_name ) { $extend = pathinfo ( $file_name ); $extend = strtolower ( $extend [ "extension" ]); return $extend ; } echo extend_2('index.php'); 6、如何以追加的方式打开一个文件进行写操作? <?php file_put_contents("test.txt","This is another something.",FILE_APPEND); ?> 7、写出代码的执行结果? <?php $a=null ;$b=false;echo $a==$b?'相等':'不想等'; echo "<br/>"; $a=0;$b=0;echo $a==$b?'相等':'不相等'; echo "<br/>"; $a='0';echo empty($a)?'true':'false'; echo "<br/>"; $a=null;echo empty($a)?'true':'false'; echo "<hr>"; $a='abc';printf('%d',count($a)); echo "<br/>"; $a=1;$b=&$a;$c=$a++;echo $a.$b.$c; echo "<br/>"; $count=5; function get_count(){ static $count=0; return $count++; } echo $count; ++$count; echo get_count(); echo get_count(); echo "<br/>"; $GLOBALS['var1']=5; $var2=1; function get_value(){ global $var2; $var=0; return $var2++; } get_value(); echo $var1; echo $var2; ?> 8、已知一个函数如下 <?php function output(array $arr){ foreach ($arr as $key =>$value) echo $key.':'.$value,PHP_EOL; } /* 换行符 unix系列用 n windows系列用 rn mac用 r PHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性 如: <?php echoPHP_EOL; //windows平台相当于 echo "rn"; //unixlinux平台相当于 echo "n"; //mac平台相当于 echo "r"; ?> */ ?> 如果需要将次函数的输出结果赋给一个变量(如$toobar),如何实现? 9、有如下内容: Group表 Group_id group_name 1 movie 2 music Thread 表 Thread_id group_id username 1 1 matt 2 1 robi 3 2 robi 如何用一句sql语句得到如下的结果 group_id group_name count(group_id) 1 movie 2 2 music 1 请写出相应的sql语句: create database gg characterset gbk; use gg; createtable you( group_id intprimarykey auto_increment, group_name varchar(20) ); insertinto you values(' ','movie'); insertinto you values(' ','music'); createtable she( thread_id intprimarykey auto_increment, group_id intreferences you(group_id), username varchar(20) ); insertinto she values (' ',1,'matt'); insertinto she values (' ','robi'); insertinto she values (' ',2,'robi'); select a.group_id,a.group_name,b.c 'count(group_id)'from you a, (select group_id,count(group_id) c from she groupby group_id) b where a.group_id=b.group_id; 10、现有以下内容 Id(int) name(text) 1 网友 2 网友 3 网友 4 网友 5 网友 请写一个sql语句,把name字段更新成name+id 也就是变成网友1、网友2.........以此类推? drop database name; create database name characterset gbk; use name; createtable namet( id intprimarykey auto_increment, name text ); insertinto namet values(' ','网友'); insertinto namet values(' ','网友'); update namet set name=concat(name,id); select * from namet; 编程之家培训学院每天发布《PHP面试题第九回》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:广西网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |