php经典面试问题及答案 php面试知识点总结。 1,禁用cookie 后 seesion 还能用吗? 2,抓取远程图片到本地,你会用什么函数? 3,已知姓名a,姓名b,给一个求他们缘份的算法 4,你觉得在pv10w的时候, 同等配置下,lunix 比win快多少? 5,简述post 和get传输的最大容量分别是多少? 6,用最少的代码写一个求3值最大值的函数. 答:1、cookie是保存在本地的,而seesion是保存在服务器上的。所以两者没有直接的关系,禁用cookie后seesion依然可以用。 2、用file_get_contents函数,ex: 复制代码代码示例: <?php $img = file_get_contents file_put_contents('1.gif',$img); echo '<img src="1.gif">'; ?> 3、 复制代码代码示例: <?php function is_gfriend($na,$nb) { $random1=rand(1,5);//计算他们有1/5的缘分 $random2=rand(1,5); if ($random1==$random2) return $na."+".$nb."你们有缘分"; else return $na."+".$nb."可惜无缘份"; } echo is_gfriend(a,b); ?> 4、 公司面试题之:百度web开发工程师笔试题】 第一部分: 1.解释下面语句的意思:document.form["formname"].submit; 2.有下面语句: <input id="txt" type="text" value="baidu" /> 编写代码,当鼠标划过文本框,自动选中文本框中的内容。 3.将字符09转换成十进制数字。 4.将1234567890转换成1,234,567,890 每3位用逗号隔开的形式。 5.关于html和css的,忘记了。 6.在文本框中输入一个年份,判断其生肖,并输出在文本框旁边。 对html和javaservlet都要求写出。 7.ajax从服务器取数据 {id:123, name:"baidu", username:"mm",checked:true}; 分析name对应的值("baidu").(题目较长,不记得了) 8.谈关于客户体验的问题。 答案:1、获取formname表单submit按钮元素。 2、 复制代码代码示例: <input id="txt" type="text" value="baidu" onmouseover="javacript:document.getelementbyid('txt').select()" /> 3、 复制代码代码示例: <?php $a="09"; echo ( int ) $a; echo "<br>"; echo intval("09"); ?> 4、 复制代码代码示例: <?php $num = "1234567890.11"; $num = preg_replace('/(?<=[0-9])(?=(?:[0-9]{3})+(?![0-9]))/', ',', $num); echo $num; ?> 6、 复制代码代码示例: $t= 1986; switch ($t) { case 1986: echo "牛"; break; case "": break; case "": break; …… } 8、从满意度、忍受度、回馈度分析。 第二部分: 1.ajax,数据库触发器,gui,中断机制的共同思想。谈一谈该种思想(机制)。 2.把一篇英文文档中所有单词的首字母转为大写,文档存在doc.txt中。可以在多种编程语言中选择(c\c++,java,php...)写出你的思路,尽量优化你的程序。 3.关于树的数据结构. 4.数据库优化: 有一个表 product(id,name,price,count); 在执行一下查询的时候速度总是很慢: select * from product where price=100; 在price字段上加上一个非聚簇索引,查询速度还是很慢。 (1)分析查询慢的原因。 (2)如何进行优化。 5. 复制代码代码示例: create table topid{ topicid int not null primary key auto_increment, title text, author varchar(30), content blob, isdeleted int ...... //好像在author上定义了一个索引 } create table reply{ topicid int foreign key, replyid int primary key auto_increment, replyauthor varchar(30), replytime datetime, context blob ....... //定义了一个索引和key } 一个为主题表,一个为回复表。 1.问从性能上考虑,这样做有什么不足。 2.查询回复时间不超过一个特定的时间段,回复的作者名字以mike开头的主题 的title,以如下的查询: 复制代码代码示例: select * from topic where replyid in (select replyid from reply where replyauthor like 'mike%' and (currenttime()-replytime<specialtime)) 从性能上考虑上述的查询语句有什么不足? 如何进行优化? 答案:1、数据库触发器和中断机制是数据库自动完成的,而ajax触发器是用户激发的。ajax把gui和数据库异步优化。 2、 复制代码代码示例: <?php $fp=fopen("aa.txt",'r'); //英文文档aa.txt while(!feof($fp)){ $char=fgets($fp); } $e= explode(",",$char); $write=fopen("doc.txt",'w');//没有doc.txt则创建 foreach ($e as $w) { if($w==$e[count($e)-1])//最后一个单词没有逗号输入if($w==end($e)) $w=ucwords($w);//第一个字母转大写 else $w=ucwords($w).","; echo $w; fwrite($write,$w);//写入doc.txt 文档中 } fclose($write); fclose($fp); ?> |