第一篇:PHP程序员笔试题(附答案)
普通PHP程序员笔试题
标签:程序员PHP面试2009-02-06 15:19
1.用PHP打印出前一天的时间,打印格式是2007年5月10日 22:21:21
2.PHP代码如下:
$a=“hello”;
$b=&$a;
unset($b);
$b=“world”;
echo $a;
其结果是?
3.PHP代码如下:
$str=“cd”;
$$str=“landog”;
$$str.=“ok”;
echo $cd;
其结果是?
4.用PHP写一段代码,实现不使用第3个变量,交换$a、$b的值,$a、$b的初始值自己定。
5.根据题目要求,用PHP写出代码。
表名User
IDNameTelContentDate
1张三 ***大专毕业2006-10-11
3张三 ***本科毕业2006-10-15
5张四 020-5566556中专毕业2006-10-15
4王五 ***大专毕业2006-12-25
2„„„„
6„„„„
假设数据库连接如下:
$mysql_db=mysql_connect(“local”,“root”,“pass”);
@mysql_select_db(“DB”,$mysql_db);
(1)查询出所有Name等于“张三”的记录,并输出。
(2)按ID升序查询,只返回排序后的前3条记录,并输出。
6.javascript能否定义二维数组,如果不能你如何解决?
7.假设a.html和b.html在同一个文件夹下面,用javascript实现当打开a.html五秒钟后,自动跳转到b.html。
8.有两个文件a.html和a.php,代码如下:
a.html
a.php
$user_name = $_GET['user_name'];
$user_tel = $_GET['user_tel'];
$user_email = $_GET['user_email'];
$user_add = $_GET['user_add'];
echo “用户名:$user_name
电话:$user_tel
邮箱:$user_email
地址:$user_add
”;
?>
(1)请画出a.html在浏览器的显示效果图。
(2)在a.html中输入:用户名=张三,电话=020-38259977,邮箱=sunrising@srtek.cn,地址=广州升瑞,按提交按钮后输出结果是?
9.你是否使用过版本控制工具,如果有,请简要说明。
10.利用CSS样式表定义已访问的超链接字体大小为14pt,颜色为red。
11.移动任意一位数或符号,使等式成立, 102 = 101-1。注:是移动不是交换,等号不能分开。
12.规律题,3、1、4、1、5、9、2、(), 请按照规律在括号内写出下一表达式。
13.规律题,5、8、-
3、5、-
2、3、-
1、(),请按照规律在括号内写出下一表达式。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
答案:
1.echo date('Y-m-d H:i:s', strtotime('-1 day'));
2.hello
3.landogok
4.$a = “abcd”;
$b = “1234”;
echo “初始化时 a=$a,b=$b
”;
$a = $a.$b;
$b = strlen($b);
$b = substr($a, 0,(strlen($a)-$b));
$a = substr($a, strlen($b));
echo “交换后 a=$a,b=$b
”;
5.(1)$sql = “select *from User where >$result = mysql_query($sql);while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
echo $row[‘Name’];
}
(2)$sql = “select * from User order by ID asc limit 0,3”;
$result = mysql_query($sql);
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
echo $row[‘Name’];
}
6.javascript不支持二维数组定义,可以用arr[0] = new array()来解决
7.javascript代码如下:
function go2b(){
window.location = “b.html”;
window.close();
}
setTimeout(“go2b()”,5000);//5秒钟后自动执行go2b()
8.(1)如下所示:
略。因为懒得插入图片,如果想看结果可以把代码保存为html文件,再用浏览器打开查看。
(2)输出结果应为:
姓名:
电话:
邮箱:
地址:
因为表单是用post方式提交,但在a.php中却用get方式来读取,所以不会读到任何值。
9.略
10.a:visited { font-size: 14pt;color: red;}
11.102 = 101-1
12.答案为6,因为∏=3.1415926
13.答案为2,规律为n=(n-2)– |(n-1)| ,n>=3
第二篇:PHP程序员笔试题
姓名:________________
开始时间:________________(完成时间1个小时)
1、HTTP 协议里 GET和POST请求的区别
2、session与cookie的区别
3、数据库中的事务是什么?
4、优化MYSQL数据库的方法,举例说明。(多写多得,可写在反面)
5、PHP语句include和require的区别是什么
6、JS表单弹出对话框函数是什么?获得输入焦点函数是什么?
7、下面的PHP5程序的输出值是什么?
$num = 10;
function multiply(){ $num = $num * 10;
}
multiply();
echo $num;?>
8、PHP检测一个变量是否有设置的函数是什么?
9、谈谈对mvc的认识?
10、一个整数数组包含10个元素,未排好序
9,16,25,32,2,1,29,81,36,21 写一个PHP程序,1)对数组进行排序
2)用二分法查找并输出 20 这个数在数组中的序(序号从1开始,查找不到返回0),写在反面
11、请写一个PHP函数验证电子邮件的格式是否正确
12、写出Linux下 创建目录、删除目录、删除文件、查看指定目录内容、移动文件的命令,并举例说明
13、CSS中margin和padding的区别
14、简述ajax的原理
15、假设给你5台服务器,请大致的描述一下,如何使用你所熟悉的软件,搭建一个日PV 100万左右的中型网站,包括数据库、WEB服务
第三篇:普通PHP程序员笔试题
普通PHP程序员笔试题
整理于2012-7-3,自己整理的,已经测试过,仅供参考
1.用PHP打印出前一天的时间,打印格式是2007年5月10日 22:21:21
echo date('Y年m月d日 H:i:s',strtotime('-1 day'));
2.PHP代码如下:
$a=“hello”;
$b=&$a;
unset($b);
$b=“world”;
echo $a;
其结果是?
hello
3.PHP代码如下:
$str=“cd”;
$$str=“landog”;
$$str.=“ok”;
echo $cd;
其结果是?
landogok
4.用PHP写一段代码,实现不使用第3个变量,交换$a、$b的值,$a、$b的初始值自己定$a='2.0';
$b='3.0';list($b,$a)=array($a,$b);
echo $a.'
'.$b;
5.根据题目要求,用PHP写出代码。
表名User
IDNameTelContentDate
1张三 ***大专毕业2006-10-11
3张三 ***本科毕业2006-10-15
5张四 020-5566556中专毕业2006-10-15
4王五 ***大专毕业2006-12-25
2„„„„
6„„„„
假设数据库连接如下:
$mysql_db=mysql_connect(“local”,“root”,“pass”);
@mysql_select_db(“DB”,$mysql_db);
(1)查询出所有Name等于“张三”的记录,并输出。
$sql=“select * from user where name='张三'”;
mysql_query(“set names 'gbk'”);
$result=mysql_query($sql)or die('false');
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
foreach($row as $key=>$value){
echo $key.':'.$value.“ ”;
}
echo “
”;
}
(2)按ID升序查询,只返回排序后的前3条记录,并输出。
$sql=“select * from user order by id asc limit 0,3”;
mysql_query(“set names 'gbk'”);
$result=mysql_query($sql)or die('false');
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
foreach($row as $key=>$value){
echo $key.':'.$value.“ ”;
}
echo “
”;
}
6.javascript能否定义二维数组,如果不能你如何解决?
看了很多资料,发现很多都说JS不支持二维数组,不过在JS中对二维数组的定义却有很多方法,以下是其中四种:
var arr=[[1,2,3],[4,5,6]];
//alert(arr[0][0]);
var arr1=new Array([1,2,3],[4,5,6]);
//alert(arr[0][1]);
var arr2=new Array(new Array(1,2,3),new Array(4,5,6));
//alert(arr[0][2]);
var arr3=new Array();
arr3[0]=new Array(1,2,3);
arr3[1]=new Array(4,5,6);
//alert(arr3[1][0]);
7.假设a.html和b.html在同一个文件夹下面,用javascript实现当打开a.html五秒钟后,自动跳转到b.html。
前提是a.html已打开
function go2b(){
window.location = “b.html”;
}
setTimeout(“go2b()”,5000);//5秒钟后自动执行go2b()
8.有两个文件a.html和a.php,代码如下:
a.html
a.php
$user_name = $_GET['user_name'];
$user_tel = $_GET['user_tel'];
$user_email = $_GET['user_email'];
$user_add = $_GET['user_add'];
echo “用户名:$user_name
电话:$user_tel
邮箱:$user_email
地址:$user_add
”;
?>
(1)请画出a.html在浏览器的显示效果图。
略
(2)在a.html中输入:用户名=张三,电话=020-38259977,邮箱=sunrising@srtek.cn,地址=广州升瑞,按提交按钮后输出结果是?
输出结果为:
用户名:
电话:
邮箱:
地址:
9.你是否使用过版本控制工具,如果有,请简要说明。
10.利用CSS样式表定义已访问的超链接字体大小为14pt,颜色为red。
a:visited{font-size:14pt;color:red;}
11.移动任意一位数或符号,使等式成立, 102 = 101-1。注:是移动不是交换,等号不能分开。
将2上移变成10的平方等于101-1,10=101-1
12.规律题,3、1、4、1、5、9、2、(6), 请按照规律在括号内写出下一表达式。这一串数字是π=3.1415926中的数字,所以为6
13.规律题,5、8、-
3、5、-
2、3、-
1、(2),请按照规律在括号内写出下一表达式。n=|n-2|-|n-1| 2
第四篇:php程序员面试题(附答案)
PHP经典面试题(连载4).1 请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用?
答: 传值只是把某一个变量的值传给了另一个变量,而引用则说明两者指向了同一个地方。在PHP中error_reporting这个函数有什么作用?
答: The error_reporting()function sets the error_reporting directive at runtime.PHP has many levels of errors, using this function sets that level for the duration(runtime)of your script.3 请用正则表达式(Regular Expression)写一个函数验证电子邮件的格式是否正确。答:
第五篇:PHP笔试题+答案
程序开发 卷1
PHP程序员考题
考试说明:
1、试卷总分为100分。
2、本次考试时间为120分钟。
一、逻辑推理题(9分,每题3分)
1.Jack夫妇请了Tom夫妇和Henrry夫妇来他们家玩扑克。这种扑克游戏有一种规则,夫妇两个不能一组。Jack跟Lily一组,Tom的队友是Henrry的妻子,Linda的丈夫和Sara一组。那么这三对夫妇分别为:(B)A. Jack—Sara,Tom—linda,Henrry—Lily B. Jack—Sara,Tom—Lily,Henrry—linda C. Jack—linda,Tom—Lily,Henrry—Sara D. Jack—Lily,Tom—Sara,Henrry—linda
2.有17根11.1米长的钢管,要截成1.0米和0.7米的甲、乙两种长度的管子,要求截成的甲、乙两种管子的数量一样多。问:最多能截出甲、乙两种管子各多少根?(C)A.99 B.105 C.111 D.121
3.一个水库在年降水量不变的情况下,能够维持全市12万人20年得用水量。在该市新迁入3万人之后,该水库只够维持15年得用水量。市政府号召节约用水,希望能将水库的使用寿命提高到30年。那么该市市民平均需要节约多少比例的水才能实现政府制定的目标?(A)A.2/5 B.2/7 C.1/3 D.1/4
二、PHP语言题(36分,每题3分)
1.语句for($k=0;$k=1;$k++);和语句for($k=0;$k==1;$k++);执行的次数分别是(3分): A 无限和0 B 0和无限 C 都是无限 D 都是0 参考答案:A
2.读取post方法传递的表单元素值的方法是(3分): A $_post[“名称”] B $_POST[“名称”] C $post[“名称”] D $POST[“名称”] 参考答案:B
3.下面哪个函数可以打开一个文件,以对文件进行读和写操作?(3分)A fget()
程序开发 卷1
B file_open()C fopen()D open_file()参考答案:C
4.下面哪个选项没有将 john 添加到users 数组中?(3分)(a)$users[] = ‘john’;(b)array_add($users,’john’);(c)array_push($users,‘john’);(d)$users ||= ‘john’;参考答案:B
5.PHP是一种______脚本语言,基于______引擎。PHP最常被用来开发动态的______内容,此外,它同样还可被用来生成______(以及其他)文档。(3分)A.动态,PHP,数据库,HTML B.嵌入式,Zend,HTML,XML C.基于Perl的,PHP,Web,静态 D.嵌入式,Zend,Docbook文档,MySQL E.基于Zend的,PHP,图像,HTML 参考答案:B
6.函数的形参与实参之间的数值传递方式有哪些?如何传递?(5分)
答:(1)按值传递方式,将实参的值复制到对应的形参中,在函数内部的操作针对形参进行,操作的结果不会影响到实参,即函数返回值,实参的值不会改变。
(2)按引用传递方式,按引用传递方式就是引用将实参的内存地址传递到形参中,这时在函数内部的所有的操作都会影响到实参的值,返回后实参的值会发生变化,引用传递方式就是传递时在原基础上加&号即可。
(3)默认函数(可选参数)。可选参数指定某个参数为可选参数,将可选参数放在参数引表末尾,并且指定其默认值为空。
7.定义:$str=”a1b2c3”,请写出下面两种匹配的结果以及解释一下两者的区别。(5分)preg_match(‘/[w]*[d]+/i’),$str,$ary);echo $ary[0];preg_match(‘/[w]*?[d]+/i’,$str,$ary);echo $ary[0];参考答案:第一个输出为a1b2c3,第二个输出为a1。
区别主要是[w]*,后面有没有跟问号,PHP的正则匹配模式默认为贪婪模式,即第一个模式,表示*取尽量多的匹配字符,第二个加了个限定符?,为非贪婪(或懒惰模式),表示*取尽量少的匹配字符。(能写出贪婪和懒惰的区别,正则表达式已经没大问题了。)
8.session和cookies 有什么区别?如果浏览器禁用了cookies,session还可以使用吗?为什么?(5分)
参考答案:cookies存储在客户端,session存储在服务端。浏览器禁用了cookies,session也不可以使用,因为sesession是需要客户端发送一个sessionid到服务端,禁用了cookies,客户端就不能保存此sessionid,session也失效了。(session是常用的,考察使用的熟悉程度)
程序开发 卷1
9.PHP二进制数据流是处理是用什么函数的?(4分)参考答案:pack和unpack。(与服务端通信用到的解析方法)
10.求两个日期的差数,例如2009-3-1 ~ 2009-4-4 的日期差数?(4分)答:(strtotime(‘2009-4-4’)-strtotime(‘2009-3-1’))/3600*24
三、Linux操作题(20分,每题5分)1.请尽量写出你熟悉的linux文件操作命令及其作用。
参考答案:自由发挥.基本的文件操作命令rm(移除),mv(移动),cp(复制),chmod(改权限),pwd(查看当前路径),mkdir(创建目录)ls(列举当前目录)2.3.4.简述linux下,rsync同步命令怎么实现无需输入密码数据同步?(5分)
参考答案:在机器1上生成公钥私钥对,将生成的公钥复制至机器2,加入到~/.ssh/id_dsa.pub。即可实现无密码同步。(同步没问题了)
四、综合问答题(35分,每题5分)1.LAMP,LNMP分别指什么?
参考答案:LAMP:linux,apache,mysql,php LNMP:linux,nginx,mysql,php Linux文本编辑器vim(vi)命令行模式下有:q,:w, /word ,?word表示什么? 参考答案::q退出,:w保存,/word往下查找,?word往上查找.(熟悉linux编辑)linux怎么添加定时任务? 参考答案:crontab –e
2.11.请使用伪语言结合数据结构冒泡排序法对以下一组数据进行排序 10 2 36 14 10 25 23 85 99 45。
答:
$str=’10 2 36 14 10 25 23 85 99 45′;$arr=explode(‘ ‘,$str);$count=count($arr);for($i=0;$i<$count;$i++){ for($j=$i+1;$j<$count;$j++){ if($arr[$j]<$arr[$i]){ $temp=$arr[$i];$arr[$i]=$arr[$j];$arr[$j]=$temp;} } } $str1=implode(‘ ‘,$arr);echo$str1;
3.简述mysql中union all,left join的用法。
程序开发 卷1
参考答案:Union all将两次或多次查询的结果合并。
Left join从左表那里返回所有的行,即使在右表中没有匹配的行。(这两个能记住,mysql也比较熟了)
4.Mysql 优化有什么方法?
参考答案:简单点的就是程序员写高质量的sql语句,数据库设计优秀,按需要建立索引(重点)。深入点的,优化mysql配置。
5.一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数,用SQL语句及视图、存储过程分别实现。
create procedure proc_countNum(in columnId int,out rowsNo int)begin select count(*)into rowsNo from member where member_id=columnId;end call proc_countNum(1,@no);select @no;方法:视图:
create view v_countNum as select member_id,count(*)as countNum from member group by member_id select countNum from v_countNum where member_id=1
6.请举例说明在你的开发过程中用什么方法来加快页面的加载速度
参考答案:自由发挥题,言之有理即可(如:要用到服务器资源时才打开,及时关闭服务器资源,数据库添加索引,页面可生成静态,图片等大文件单独服务器。使用代码优化工具)。
7.对于大流量的网站,您采用什么样的方法来解决访问量问题? 参考答案:确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表,控制大文件的下载,使用不同主机分流主要流量确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表,程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量。