您的位置:

php初级程序员能力测试题,php考试试题及答案

本文目录一览:

PHP程序员岗位招聘面试题有哪些

可能会问以下问题:(这是一个多元的问题,这和你应聘的公司规模,行业,技术层次有一定的关系)

1、你会使用什么框架?

2、你知道PHP有哪些框架?

3、你知道或使用过哪些PHP库?

4、你用PHP写过框架吗?

5、你有作品吗?

6、你怎么调试PHP?

7、你知道设计模型吗?

8、说一下PHP个版本的差异。

9、说一下某函数的具体作用。

10、给你一个算法让你用PHP实现。

... ...

总之有很多问题可能是意料不到的,所以建议你去牛客网多练习一下或者去海投简历体验应聘过程,失败没什么大不了的。

程序员面试必备PHP基础面试题 – 第十一天

一、两张表 city表和province表。分别为城市与省份的关系表。

表名:city

id City Provinceid

1 广州 1

2 深圳 1

3 惠州 1

4 长沙 2

5 武汉 3

………. 广州

表名称:province:

id Province

1 广东

2 湖南

3 湖北

……….

1、写一条sql语句关系两个表,实现:显示城市的基本信息。显示字段:城市id ,城市名, 所属省份 。

如:

Id(城市id) Cityname(城市名) Privence(所属省份)

2、如果要统计每个省份有多少个城市,请用group by 查询出来。显示字段:省份id ,省份名,包含多少个城市。

二、主键 和外键表示什么?一般用于做什么?

主键:能够唯一表示数据表中的每个记录的字段或者字段的组合就称为主键。一个主键是唯一识别一个表的每一行记录,但这只是其作用的一疗分,主键的主要作用是将记录和存放在其他表中的数据进行关联,在这一点上,主键是不同表中各记录间的简单指针,主键约整就是确定表中的每一条记录,主键不能是空值,唯一约束是用于指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值,所以,主键的值对用户而言是没有什么意义,并且和它赋予的值也没有什么特别联系。

外键:若有两个表A,B,C是A的主键,而B中也有C字段,则C就是表B的外键,外键约束主要用来维护两个表之间数据的一致性。A为基本表,B为信息表。

在数据库中,常常不只是一个表,这些表之间也不是相互独立的,不同的表之间需要建立一种关系,才能将它们的数据相互沟通,而在这个沟通过程中,就需要表中有一个字段作为标志,不同的记录对应的字段取值不能相同,也不能是空白的,通过这个字段中不同的值可以区别各条记录,就像我们区别不同的人,每个人都有名字,但它却不能作为主键,因为人名很容易出现重复,而身份证号是每个人都不同的,所以可以根据它来区别不同的人,数据库的表中作为主键的段段就要像人的身份证号一样,必须是每个记录的值都不同,这才能根据

主键的值来确定不同的记录。

关系:外键一定是另外某个表的主键。

三、select now(),Date_ADD(now(),INTERVAL 14 day),Date_SUB(now(),INTERVAL 3 Day) from table; 会获得什么内容,请写出来。

会获得三条数据:

第一条:当前时间;

第二条:当前时间加上14天;

第三条:当前时间减去3天。

四、您所知道的MYSQL 数据库备份,还原方式有哪几种?

备份:

一,搭建主从架构,master-slave,通过binlog文件同步复制主库的数据,也可以直接通过binlog文件恢复数据。

二,通过系统计划任务执行mysqldump做周期性全备份。

三,物理备份,直接拷贝数据文件、参数文件、日志文件。

还原:

一.通过mysql操作工具,如phpmyadmin,sqlyog等导入备份过的数据库文件。

二.将物理备份的文件拷贝到mysql的data目录下

五、内容管理系统中,表message有如下字段

id 文章id

title 文章标题

content 文章内容

category_id 文章分类id

hits 点击量

创建上表,写出MySQL语句

六、同样上述内容管理系统:表comment记录用户回复内容,字段如下

comment_id 回复id

id 文章id,关联message表中的id

comment_content 回复内容

现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面

文章id 文章标题 点击量 回复数量

用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示0

七、内容管理系统,表category保存分类信息,字段如下

category_id int(4) not null auto_increment;

category_name varchar(40) not null;

用户输入文章时,通过选择下拉菜单选定文章分类

写出如何实现这个下拉菜单

八、PHP文件操作

1、内容管理系统:用户提交内容后,系统生成静态HTML页面;写出实现的基本思路

2、简单描述用户修改发布内容的实现流程和基本思路

1)当用户提交后生成一个由url地址MD5后的文件的编译页面,用文件处理file函数生成一个模板合成页,判断模板编译页是否有,模板页无或者编译页的创建时间戳小于模板页的修改时间都会从新生成编译页面,编译后的页面会调用对应数据库的值显示在页面中,通过对内存数据的读取释放,显示出我们看到的静态数据,然后用file文件将其保存起来生成静态的页面

2)当用户修改了发布内容都会修改数据相关的内容,并通过编译页面更新静态数据并用文件的方式缓存起来,当用户查看时将不做任何数据库查找,直接调用该缓存文件即可

程序员面试必备PHP基础面试题 – 第十三天

一、在HTTP1.0中,状态吗500的含义的是什么?如果返回“找不到文件”的提示,则可用header(函数),其语句为?

500 Internal Server Error 服务器遇到了意料不到的情况,不能完成客户的请求

Header(“ HTTP/1.0 404 NOT FOUND”);

二、数组函数arsort()的作用是什么?语句err_reporting(2047)的作用是什么?

arsort:对数组进行逆向排序并保持索引关系;

error_reporting(2047)的作用是:report All errors and warnings

三、语句include和require都能把另外一个文件包含到当前文件中,它们的区别是___;为避免多此包含同一个文件,可以用语句_____来代替它们。

在如何处理失败时,include() 产生一个警告而 require() 则导致一个致命错误; require_once()/include_once()

四、get_magic_quotes_gpc的作用是_______

本函数取得 PHP 环境配置的变量 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。返回 0 表示关闭本功能;返回 1 表示本功能打开。当 magic_quotes_gpc 打开时,所有的 ‘ (单引号), ” (双引号), (反斜线) and 空字符会自动转为含有反斜线的溢出字符。

五、在php中, heredoc是一种特殊的字符串, 他的结束标志必须是_____

结束标识符所在的行不能包含任何其它字符除”;”

六、写出一个正则表达式, 把$string中的所有数字全部删除

preg_replace(‘/d/U’,’’,$string);

七、找出/data1/source 目录中大于100k 的文件, 并复制到 ~/tmp/35/下

find /data1/source +size 100k | cp ~/temp/35/

八、perl –pi –e ‘s|ABCD|Linux|g’ `find ./ -type f`的含义是

find ./-type f:找寻当前目录下的类型为f的文件

九、10 2 * * * /data0/apache/schedule/ussd/topnews/import_data.pl /dev/null 的含义:_______将import_data.pl清空或删除

十、rsync -avu 105903.zip 218.206.86.68::mmsres/resource/291/205的含义:_________备份数据用

-a 归档模式,递归传输文件;

-v 详细模式输出;

-u, –update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)

十一、写出x,y的值

十二、使用纯CSS实现未知寸的图片(但高度都小于200px) 在200px的正方形容器中水平和垂直居中,HTML代码如下

很基础的PHP程序员题目,要求具体步骤,一步一步的,不要解说,PHP我不会。拜托各位~题目如下。

$dsn = "mysql:dbname=shop;host=127.0.0.1";

$root = 'root';

$pwd = '';

$pdo = new pdo($dsn,$root,$pwd,array(PDO::MYSQL_ATTR_INIT_COMMAND = 'SET NAMES \'UTF8\''));

$sql = "select count(id) from shop";

$stmt = $pdo-query($sql);

$rowcount = $stmt-fetch(PDO::FETCH_ASSOC);

$rowpage = 5;

$pages = ceil($rowcount/$rowpage);

$nowpage = !empty($_GET['p']) ? intval($_GET['p']) : 1 ;

$prov = $nowpage - 1 1 ? 1 : $nowpage-1;

$next = $nowpage +1 $pages ? $pages : $nowpage+1;

$start = ($nowpage-1)*$rowpage;

$sql1 = "select id, name, price, num from shop order by id limit $start,$rowpage";

$stmt1 = $pdo-query($sql1);

$info = $stmt1-fetchAll(PDO::FETCH_ASSOC);

$nowrows = $start+$rowpage;

print_r($info);

echo "总记录数:$rowcount总页数:$pages当前页数:$nowpage当前页的开始:$start结束记录数:$nowrowsa href='page.php?p=1'首页/aa href='page.php?p=$pages'尾页/aa href='page.php?p=$prov'上一页/aa href='page.php?p=$next'下一页/a"

PHP程序员上机面试题(并附答案,回答好的加分)

某大公司的PHP面试题

管理提醒: 本帖被 haowubai 执行取消置顶操作(2009-07-30)

1. 如何用php的环境变量得到一个网页地址的内容?ip地址又要怎样得到?

[php]

echo $_SERVER ['PHP_SELF'];

echo $_SERVER ['SERVER_ADDR'];

[/php]

2. 求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数

[php]

$begin=strtotime('2007-2-5');

$end=strtotime('2007-3-6');

echo ($end-$begin)/(24*3600);

[/php]

3. 请写一个函数,实现以下功能:

字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”。

[php]

function changeStyle( $str) {

/*$str = str_replace ( "_", " ", $str );

$str = ucwords ( $str );

$str = str_replace ( " ", "", $str );

return $str;*/

$arrStr=explode('_',$str);

foreach($arrStr as $key=$value){

$arrStr[$key]=strtoupper(substr($value,0,1)).substr($value,1);

}

return implode('',$arrStr);

}

$s = "open_door";

echo changeStyle ( $s );

[/php]

4. 要求写一段程序,实现以下数组$arr1转换成数组$arr2:

[php]$arr1 = array (

'0' = array ('fid' = 1, 'tid' = 1, 'name' ='Name1' ),

'1' = array ('fid' = 1, 'tid' = 2 , 'name' ='Name2' ),

'2' = array ('fid' = 1, 'tid' = 5 , 'name' ='Name3' ),

'3' = array ('fid' = 1, 'tid' = 7 , 'name' ='Name4' ),

'4' = array ('fid' = 3, 'tid' = 9, 'name' ='Name5' )

);

$arr2 = array (

'0' = array (

'0' = array ( 'tid' = 1, 'name' = 'Name1'),

'1' = array ( 'tid' = 2, 'name' = 'Name2'),

'2' = array ( 'tid' = 5, 'name' = 'Name3'),

'3' = array ( 'tid' = 7, 'name' = 'Name4')

),

'1' = array (

'0' = array ( 'tid' = 9, 'name' = 'Name5' )

)

);

?php

$arr1 = array (

'0' = array ('fid' = 1, 'tid' = 1, 'name' ='Name1' ),

'1' = array ('fid' = 1, 'tid' = 2 , 'name' ='Name2' ),

'2' = array ('fid' = 1, 'tid' = 5 , 'name' ='Name3' ),

'3' = array ('fid' = 1, 'tid' = 7 , 'name' ='Name4' ),

'4' = array ('fid' = 3, 'tid' = 9, 'name' ='Name5' )

);

function changeArrayStyle($arr){

foreach($arr as $key=$value){

$result[$value['fid']][]=$value;

}

return array_values($result);

}

$arr2=changeArrayStyle($arr1);

echo "pre";

var_dump($arr2);

[/php]

5. 请简述数据库设计的范式及应用。

一般第3范式就足以,用于表结构的优化,这样做既可以避免应用程序过于复杂同时也避免了SQL语句过于庞大所造成系统效率低下。

ANSWER:

第一范式:若关系模式R的每一个属性是不可再分解的,再属于第一范式。

第二范式:若R属于第一范式,且所有的非码属性都完全函数依赖于码属性,则为第二范式。

第三范式:若R属于第二范式,且所有的非码属性没有一个是传递函数依赖于候选码,则属于第三范式。

6.一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数,用SQL语句及视图、存储过程分别实现。

存储过程:

[php]

DELIMITER //

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;

[/php]

视图:

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

7 表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。

[php]select

case

when first_namemiddle_name then

case when first_namelast_name then first_name

else last_name end

else

case when middle_namelast_name then middle_name else last_name

end

end as name

from member

[/php]

8请简述项目中优化sql语句执行效率的方法,从哪些方面,sql语句性能如何分析?

ANSWER: sql优化有鸟用,不如直接加索引。

9 如果模板是用smarty模板。怎样用section语句来显示一个名为$data的数组。比如:

[php]$data = array(

[0] = array( [id]=8 [name]=’name1′)

[1] = array( [id]=10 [name]=’name2′)

[2] = array( [id]=15 [name]=’name3′)

……

)[/php]

写出在模板页的代码? 若用foreach语句又要怎样显示呢?

占无答案.

10 写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。(目录操作)

[php] ?php

$d = dir(dirname(__file__));

//echo "Handle: " . $d-handle . "\n";

//echo "Path: " . $d-path . "\n";

while ( false !== ($entry = $d-read ()) ) {

echo $entry . "br /";

}

$d-close ();

[/php]

11 两张表 city表和province表。分别为城市与省份的关系表。

city:

id City Provinceid

1 广州 1

2 深圳 1

3 惠州 1

4 长沙 2

5 武汉 3

………. 广州

province:

id Province

1 广东

2 湖南

3 湖北

……….

(1) 写一条sql语句关系两个表,实现:显示城市的基本信息。?

(2) 显示字段:城市id ,城市名, 所属省份 。

如:

Id(城市id) Cityname(城市名) Privence(所属省份)

。。。。。。。。。

。。。。。。。。。

(2)如果要统计每个省份有多少个城市,请用group by 查询出来。?

显示字段:省份id ,省份名,包含多少个城市。

ANSWER:

1.select A.id,A.Cityname,B.Province from city A,province B where A.provinceid=B.id

2.select B.id,B.Province,count(*) as num from city A,province B where A.provinceid=B.id group by B.id

12. 按照你的经验请简述软件工程进行软件开发的步骤。以下工具Rational Rose、PowerDesigner、Project、VSS或CVS、TestDirector使用过那种,有缺点是什么?

公司用dbdesigner及cvs,测试管理工具用的是Mantis

13. 请简述操作系统的线程与进程的区别。列举LINUX下面你使用过的软件?

14. 请使用伪语言结合数据结构冒泡排序法对以下一组数据进行排序 10 2 36 14 10 25 23 85 99 45。

[php]function bubble_sort( $arr){

$number=count($arr);

for($i=0;$i$number-1;$i++){

for($j=0;$j$number-1-$i;$j++){

if($arr[$j]$arr[$j+1]){

$tmp=$arr[$j];

$arr[$j]=$arr[$j+1];

$arr[$j+1]=$tmp;

}

}

}

}

$str="10 2 36 14 10 25 23 85 99 45";

$arr=explode(" ",$str);

bubble_sort($arr);

echo "pre";

var_dump($arr);

[/php]