php面试题,百度答案
一公司:
1、@当将其放置在一个PHP表达式之前有什么作用?
2、用foreach把$arr=array(1,2,3,4)每个values值乘2输出;
3、PHP定界符如何使用?
4、说出mysql_connect()和mysql_pconnect()区别?
5、用php打印出前一天的时间,格式是2006-5-10 22:21:22;
6、请写出PHP5的构造函数和析构函数,构造函数和析构函数可以接受参数吗?
7、描述parent,::,extends作用?
8、在HTTP1.0中,状态码200,403,404,500的含义分别是?
9、写出以下程序的输出结果:
$smarty = new Smarty; $smarty->assign('articleTitle',"Blind Woman Gets <font facc=\"helvctica\">New Kidney</font> from Dad she Hasn`t Seen in <b>years</b>,"); $smarty->display('index.tpl'); Index.tpl中:{$articleTitle|strip_tags}
10、Apache默认POST传输的最大容量分别是多少?
11、jquery中 ajax如何实现同步执行?
12、mysql数据库中myisam和innodb的区别?
13、优化mysql数据库的方法
14、表a 表b
............................ ...........................................
| id | name | | a_id | tdate | tclose |
............................ ...........................................
| 1 | B | | 1 | C | D |
| 3 | H | | 2 | E | F |
............................ | 3 | E | S |
请用sql统计出a表关联b中的数据,要求格式结果name,tdate,tclose;
二公司:
1、写出下面代码的输出结果
<?php $num = 10; function multiply(){ $num = $num*10; } multiply(); echo $num; ?>
2、下面代码的含义是什么?
<?php !function_exists('readover')&& exit('Forbidden'); ?>
3、有一数组$a=array(4,3,8,9,2);请将其重新排序,按从小到大的顺序列出(用PHP函数实现)
4、下面变量的值要插入数据库,如何处理?
$st = "I`am is phper.";
5、按2008-08-11的格式打印出今天的日期
6、请写一个函数验证电子邮件的格式是否正确?
7、类的属性可以序列化后保存到数据库中,这要用到的函数是什么
8、写出获得http://www.zhongsou.net/test.php页面内容的代码
9、php中"@"符号的含义,一般在什么情况下使用?
10、语句include和require的区别是什么?为避免多次包含同一文件,可用什么语句代替它们?
11、PHP中连接MYSQL数据库的函数是什么?简述下他们之间的区别和应用案例
12、用smarty模板输出下面的数组的内容
$data = array( [1]=>array([id]=111[name]='zhangsan') [2]=>array([id]=222[name]='lisi') [3]=>array([id]=333[name]='wangwu') )
输出结果:
<table> <tr> <td>1</td><td>111</td><td>zhangsan</td> </tr> …… </table>
13、如何使用下面的类,并解释下面什么意思?
class test { mytest($num) { $num=md5(md5($num)."En"); return $num; } }
14、在mysql中使用什么方法分析sql语句的执行效率?当其extra列输出Usingfilesort表示什么意思?
15、mysql数据表test,有两个字段col1和col2,类型为varchar,现在需要更新col1字段,其值为col1加上col2,并且替换里面的内容“http://www.zhongsou.net”替换为“http://www.zhongsou.com”,请写出执行此效果的sql语句
16、mysql有哪几种索引类型?其索引文件采取什么格式保存?表A中有firstname、lastname、age三个字段,在这三个列上分别创建单列索引,效果和创建一个firstname、lastname、age的多列索引一样是否相同?
17、谈谈您对MVC的认识?
18、谈谈您对面向对象的认识?
三公司:
一、基础题目
1、用PHP打印出前一天的时间,格式是2013-5-10 12:21
2、echo(),var_dump()的区别
3、有一个网页地址,比如教育在线主页:http://www.eol.cn/index.html,如何得到它的内容
4、实现中文字符串截取无乱码的方法
5、foo()和@foo()之间有什么区别
6、请写一个函数验证电子邮件的格式是否正确
7、如何声明一个名为“myclass”的没有方法和属性的类?并实例化它
8、GD库是做什么用的?
9、谈谈asp,php,jsp的优缺点
10、使用过哪些工具进行版本控制?阐述Subversion和Git的区别
11、使用过哪些PHP框架,并简述他们的优缺点
二、数据库题目
1、请写出数据类型(int char varchar datetime text)的意思,请问varchar和char有什么区别
2、如何对数据表内容进行分页显示,请简要描述
3、优化MYSQL数据库的方法,请写出你知道的所有方法
三、进阶题目
1、简要描述SESSION的工作原理,如何做到多平台共享SESSION
2、从哪些方面避免PHP程序被攻击,越详细越好
3、谈谈对MVC的认识与理解
4、Smarty,phplib的区别,并阐述Smarty模板的工作原理
5、对于大流量的网站,您采用什么样的方法来解决访问量问题
6、请简单阐述您最得意的开发之作
四公司:
1、字符串"\r","\n","\t","\x20"分别代表什么
2、以下语句输出的结果是什么
$a = 3; echo "$a",'$a',"\\\$a","$(a)","$a"."$a","$a"+"$a";
得到的结果是:
3、以下语句输出的结果是什么
setcookie("a","value"); print $_COOKIE['a'];
得到的结果是:
4、PHP中将当前页面重定向到另一个页面怎么写?
5、PHP中如何取得GET,POST参数,和上传的文件
6、如何取得客户端的ip(要求取得一个int)
7、include和require的区别
8、array+array与array_merge()的区别
五公司:
第一题、现有如下代码:
$a = true; $b = false; $c = 0812; $d = 0x812; echo "$a has value: ".$a; echo '$b has value: '.$b; echo '$c has value: '.$c; echo '$d has value: '.$d;
请写出程序输出结果
第二题、现有如下接口
interface ILogger{ public function __construct($filename); public function write($lgo); public function read(); }
现需要日志读写的Logger类,通过构造函数指定了日志文件的路径,通过调用write和read方法完成日志文件的读写。
1、请使用ILogger接口实现Logger类
2、现有如下Database类的代码,使用上题中的Logger类通过日志记录数据库的操作。
class Database{ private $db; private $logger; public function __construct(ILogger $logger,$dsn = 'mysql:dbname=testdb;host=127.0.0.1',$user = 'dbuser',$password = 'dbpass'){ $logger = $logger; try{ $db = new PDO($dsn,$user,$password); } catch(PDOException $e){ $logger->write('Connection failed: {$e->getMessage()}'); } } public function execute($sql){ $result = $db->exec($sql); if($result) $logger->write('$sql is executed,$result line(s) is(are) rows affected by the statement.'); else $logger->write('Failed to execute : $sql'); } }
请问,上述代码是否正确?如果不正确,请指出错误的代码段并修改。
第三题、假设位于192.168.1.100的数据库dbname中的用户表Users有如下结构
其中userId为用户id,值大等于0;username为登录用户名,name为用户真实姓名,passwd为用户密码的MD5值。
用户通过登录页面提交登录信息。登录页面表单代码如下:
<from name="loginForm" method="post" action="userlogin.php"> <p> <label for="username" class="label">用户名:</label> <input id="username" name="username" type="text" class="input"/> </p> <p> <label for="password" class="label">密码:</label> <input id="password" name="password" type="password" class="input"/> </p> <p> <input type="submit" name="submit" value="确定" class="left" /> </p> </from>
在php程序中需要定义User类,使用单例模式,实现用户登录、退出功能,其包含如下4个函数:
getUserInstance:获取用户对象,如果用户对象已创建,返回用户对象;如果登录过,从保存的信息中获取用户的ID并创建对象,如果没有登录,则跳转到登录页面login.php
login:用户登录验证函数,如果用户成功登录,login函数可以返回用户的ID(数据库userId的值)和用户真实姓名,如果不成功,返回false。
logout:退出当前登录
__construct:User类的构造函数,初始化用户对象,包括用户ID,用户登录名、用户真实名等
3.1请用PHP完成User类。
第四题、现有下图的树形结构
该结构存储在数据库Tree表中,Tree表结构如右表所示,其中Id为节点编号,ParentId为父节点编号。
请实现统计给定节点的子节点的数量。例如2的子节点(即节点4,5,6,7)的数量为4,3的子节点数量为0
六公司:
1、如何在php中定义常量?
2、什么是mvc?
3、用PHP打印出上个月最后一天,时间格式为2006-5-10 22:21:21
4、如何使用下面的类,并解释下面什么意思?
class test{ function Get_test($num){ $num-md5(md5($num)."En"); return $num; } }
5、下列程序的输出结果是?
$x = 5; echo $x; echo "<br />"; echo $x+++$x++; echo "<br />"; echo $x; echo "<br />"; echo $x---$x--; echo "<br />"; echo $x;
6、简述post和get的区别
7、varchar和char的区别
8、请写出jquery发送ajax请求的基本格式
9、jquery里的id选择器和class选择器有何不同?
10、Myisam和innodb的基本区别
11、解释下列常用的linux命令的含义
ls:
cp:
rm:
cat:
mkdir:
tar:
ps:
top:
df:
find:
grep:
cd:
12、两张表city表和province表。分别为城市与省份的关系表
city:
(1)写一条sql语句关系两个表,实现:显示城市的基本信息。
显示字段:城市id,城市名,所属省份。如:id(城市id)cityname(城市名)privence(所属省份)
(2)如果要统计每个省份有多少个城市,请用group by查询出来
显示字段:省份id,省份名,包含多少个城市。
七公司:
基础题:
1、页面中有如下代码片段:
<img title="xx" sina_title="xxxx" src="x.jpg" id="img1" />
使用javascript的____________方法可以获取该节点对象
使用其______________方法可以获取该节点对象的title属性的值
使用其______________方法可以获取该节点对象的sina_title属性的值
2、检测一个变量是否有设置的函数是________?是否为空的函数是________?区别是___________?
3、用php写出获取昨天的日期代码_________________(格式2009-09-21)
4、对数组进行逆向排序并保持索引关系的函数是_______将字符串转换成小写的是____________字符串反转函数是______________
5、error_reporting(E_ALL)和ini_set('display_errors','On')的关系是:_______
6、有字符串“1,2,3”,可以按逗号拆分为字符串数组的PHP函数是_______将数组元素接成字符串的函数是_________写出一个正则表达式,过虑网页上的所有js脚本________________
7、PHP可以执行系统命令的函数是(至少写出3个)___________
8、重写list-101 '' 213.html到list.php?fid=101 '' 213&page=需要在apache配置中增加如下规则,RewriteRule_____________
9、smarty模板中,将变量$price格式化为小数点保留两位(假设值为$price ="",3则输出应为)"".30________________
10、PHP中,将变量$price格式化为小数点保留两位(假设值为$price ="",3则输出应为)"".30________________
程序题:
1、使用PHP正则匹配一段内容里的所有sina.com.cn域名及其子域名的超链接的url
2、写一个函数,算出两个文件的相对路径,如$a='/a/b/c/d/e.php';$b='/a/b/12/34/c.php';计算出$b相对于$a的相对路径(写出思路亦可)
3、使用PHP描述二分查找(也叫做折半查找)算法,须考虑效率,对象可以是一个有序数组(写出思路亦可)
4、怎样找出单向链表中,位于中间的元素?
简答:
1、在开发中你都需要考虑哪些安全因素?如对用户提交的内容(如评论等)需要显示在页面上需要做怎样的过滤和转换处理?从数据库读出的内容再插入数据库会引起二次注入,如何解决?
2、mysql中哪种存储引擎有静态表(也叫定长表)?静态表和动态表的区别?mysql中myisam与innodb的各自特点是什么
3、explain一条sql语句你会关注哪些列?什么情况下Extra列中会出现Using temporary或Using filesort?如何优化?
4、在PHP中什么时候使用带有静态成员的类,什么时候使用单例?
5、TCP/IP、HTTP、AJAX的层次关系是什么?HTTP与FTP协议的区别是什么?TCP与UDP协议的区别是什么?
选答题:
1、在单向链表中,如何检查是否有环的情况?比如1->2->3->4->5->3
2、web应用中,你怎样避免几个人编辑同一段数据所造成的冲突?
3、在一个有序数组,里面是从1到1,000,000的整数,其中有一个数字出现了两次如何快速找出那个重复的数字?
八公司:
1、echo count("abc");输出是什么?
2、用PHP写出显示客户端IP与服务器IP的代码
3、Error_reporting(2047)什么作用?
4、如何实现php、jsp交互?
5、打开php.ini中的Safe_mode,会影响哪些参数?至少说出6个
6、请写一个函数验证电子邮件的格式是否正确(要求使用正则)
7、请写个函数用来对二维数组排序
8、写5个不同的自己的函数,来截取一个全路径的文件的扩展名,允许封装PHP库中已有的函数。
9、请使用伪语言结合数据解雇冒泡排序法对一下一组数据进行排序10 2 36 14 1025 23 85 99 45
10、写出sql语句的格式插入,更新,删除
表名 user
name tel content datetime
张三 13333663366 大专毕业 2006-10-11
张三 13312341234 本科毕业 2006-10-15
李四 021-55665566 中专毕业 2006-10-15
(a)有一条新记录(小王 13278907890 高中毕业 2007-05-06)请用sql语句新增至表中
(b)请用sql语句把张三的时间更新成为当前系统时间
(c)请写出删除名为李四的全部记录
11、有如下信息
起始地 目的地 距离(公里)
A B 1000
A C 1100
A D 900
A E 400
B D 300
D F 600
E A 400
F G 1000
C B 600
请用sql语句或一段代码写出从A出发,可达到的目的地(包括间接方式)
九公司:
1、请列出5个array_开头的PHP处理数组函数并描述含义(如array_keys())
2、请写一个函数,尽可能高效的从一个标准url中取出文件的扩展名
3、请用PHP代码示例“单例模式”
4、请列出MYSQL两种或以上存储引擎;并论述下区别和优劣
十公司:
1、写出你所知道的PHP字符串处理函数,数组函数?
2、优化mysql数据库的方法
3、有一个网页地址,比如:http://www.dearedu.com/index.html,如何得到它的内容
4、请举例说明在你的开发过程中用什么方法来加快页面的加载速度
5、求$a,$b,$c三个数中的最大值和最小值
6、echo()、print()、print_r()的区别
7、防止sql注入漏洞可以用哪些函数?
8、写一个函数,能够遍历一个文件夹下的所有文件和子文件夹
9、$a=1;$b=&$a;$b=2;echo $a;unset($a);echo $b;请问两次分别输出什么?
10、
现通过查询数据库需要得到以下格式的列表,并按照回复数量排序,回复最高的排在最前面
“文章ID 文章标题 点击量 回复数量”
请写出sql:
十一公司:
1、is_null empty is_int is_string的区别(初级)
2、如何快速得到一个文件的后缀名?(初级)
3、表单提交get和post的区别(初级)
4、mysql设计一个无限级分类,要求能快速定位父节点,爷节点等上级节点(初中)
5、请描述sql注入原理和XSS攻击原理(中级)
6、写一个函数,算出两个文件的相对路径,如:$a='/a/b/c/d/e.php';$b='/a/b/12/34/c.php'(中级)
7、现在有一个网站群(www.A.com,www.B.com,www.C.com...),请实现一套SSO(单点登录)方案(中高)
8、一个单词单词字母交换,可得另一个单词,如army->mary,成为兄弟单词。提供一个单词,在字典中找到它的兄弟。描述数据结构和查询过程(高级)
十二公司:
一、基础题
1、==和===有什么区别?
2、请分别说明isset,is_null,empty这3个函数是什么意思?分别可以判断哪些情况。
3、如何合并一个或多个数组
4、请写出一个函数,实现将三维数组转化为二维数组
5、写一个验证手机号码的正则表达式?(限制前两位为13 15 18 位数11)
6、给你三个数a b c,写程序求出其最大值?
7、有一个数据表user,表里面包含100万条数据,怎么样取出第86999条后面的30条数据,请写出sql语句。
8、怎么样将JS的对象转化为JSON格式的数据。
9、jquery中,focus,keyup,blur分别是什么意思,分别在什么情况使用这些函数。
10、jquery中,怎么样分别获取一个input输入框,一个input复选框,一个textarea文本框,和一个div容器中的值?
11、有如下数组:
var arr = [['a','aa','aaa'],['b','bb','bbb'],['c','cc','ccc']]在jquery文件中,用什么方法来循环该数组,请写出具体的jquery方法。
12、mysql取得当前时间的函数是?格式化日期的函数是?
13、列举优化mysql查询的方法?
14、AJAX乱码解决的方法(里面含中文乱码情况)?
15、请统计出每个游戏昨日用户登录次数。假如数据如下:
Userid,game, server, logintime, who
1, 开心西游,花果山, 2010-6-15 20:20:01,1001
2, 开心西游,水帘洞, 2010-6-15 20:20:01,1002
3, 武林传奇,武林至尊,2010-6-15 20:20:01,1003
4, 最三国, 一区, 2010-6-15 20:20:01,1001
5, 开心西游,花果山, 2010-6-15 20:20:01,1001
3, 武林传奇,武林至尊,2010-6-15 23:20:01,1003
要求结果形式如下
开心西游,武林传奇,最三国
3,2,1
请写出sql语句。
逻辑题(只需要写出结果就行)
在一盘纸牌游戏中,某个人的手中有这样一幅牌:
(1)正好有13张牌。
(2)每种花色至少有1张。
(3)每种花色的张数不同。
(4)红心和方块总共5张。
(5)红心和黑桃总共6张。
(6)属于“王牌”花色的有2张。
请问红心、黑桃、广场和梅花这四种花色,那一种是“王牌”花色?
十三公司:
1、isset($a)返回:A.true B.false
2、$a='';isset($a)返回:A.true B.false
3、$a=0;isset($a)返回:A.true B.false
4、$a=null;isset($a)返回:A.true B.false
5、empty($a)返回:A.true B.false
6、$a='';empty($a)返回:A.true B.false
7、$a=0;empty($a)返回:A.true B.false
8、$a=null;empty($a)返回:A.true B.false
9、$a=null;$b='';$a===$b返回:A.true B.false
10、$a=1;$b=2;$a=&$b;$b++;$a的值为:A.1 B.2 C.3
11、$a=1;$b=$a++;$b的值为:A.1 B.2 C.3
12、$a=1;$b=++$a;$b的值为:A.1 B.2 C.3
13、$a=1;$b+=$a;$b的值为:A.1 B.2 C.3
14、$a='abc';$a{1}=f;$a的值为:A.abc B.afc C.abfc D.afbc E.fbc F.abf
15、Intval('2d3c')返回值为:A.0 B.2 C.3 D.23
16、Intval('d2c3')返回值为:A.0 B.2 C.3 D.23
17、$a=array(2,3,4);$a[]=5;$a[2]的值为:A.0 B.1 C.2 D.3 E.4 F.5
18、$a=array('a'=>1,'b'=>2,'c'=>3);$a[]=4;$a[4]的值为:A.null B.1 C.2 D.3 E.4
19、请写一个正则表达式获取下列HTML代码中各td标签之间的内容:
<td class="red">red</td><td class="green">green</td><td class="blue">blue</td>
20、请标注出下列程序中的语法错误:
class a{ const aa=123;public $bb=456;protected $cc=789;private $dd='dd'; public function getaa(){ return self::aa; } static public function getbb(){ return $this->bb; } protected function getcc(){ return $this->cc;} } $a=new a(); $a->getaa(); $a->getbb(); $a->getcc();
21、mysql数据库中tinyint、int、datetime字段类型各占多少字节?tinyint存储的数字范围是多少?
22、两个mysql数据表:学生表和成绩表,数据如下图所示
请写出一条sql找出在学生表中有而在成绩表中没有的学生
请写出一条sql计算成绩表中每个学生的各科总分数和平均分
请写出一条sql计算成绩表中平均分大于90分的学生
请给以上的两个表建立索引,并给出优化建议。
23、linux中改变文件权限和所有者的命令各是什么?
24、查看php最近的错误日志用哪个linux命令?
25、查看php当前进程数的linux命令是什么?
十四公司:
1、什么是类,什么是抽象类,什么是接口,什么是继承?
2、include,require,include_once,require_once的区别
3、写一个函数,从一个标准url里取出文件的扩展名,例如:http://www.sina.com.cn/abc/de/fg.php?id=1需要取出php或.php
4、memcached是什么?
5、写一个函数,能够遍历一个文件夹下的所有文件和子文件夹
6、写一个类实现单实例数据库连接
7、jquery ajax传值几种类型
8、简述DOM加载顺序和常用事件
9、写一个方法对二维数组排序
10、简述mysql的存储引擎myisam和innodb的区别
11、在mysql中建立一个表
id 代理主建;name 20字符;age 正整数;sex 男/女/未知;memo 文本类型
12、简述session存储原理和实现session共享的方式
13、linux下解压abc.tar.gz的命令是什么?常用的文本编辑器是什么?
14、简述你常用的PHP框架和相应的优缺点
15、什么是MVC?
十五公司:
1、抓取远程图片到本地,你会用什么函数?
2、memcache与redis区别
3、表单中get与post提交方法的区别?
4、你如何利用PHP解决HTTP的无状态协议?
5、优化MYSQL数据库的方法