03776,专注php入门案例

 找回密码
 免费注册

QQ登录

只需一步,快速开始

搜索
热搜: 验证码
查看: 2350|回复: 0

一份初级PHP面试题,含答案

[复制链接]

61

主题

0

好友

317

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2012-11-25 12:29:42 |显示全部楼层

共220分,选择题2分×20=40分,简答题4分×15=60分,实现题8分×15=120分一。选择(每题2分,共40分)
1.php代表什么意思?
A.Hypertext Preprocessor(超文本预处理器)
B.Hyperlink Preprocessor(超链接预处理器)
C.Personal Homepage (个人主页空间)
2.以下PHP标记哪个是错误的?
1.<? ?> 2. <?PHP   ?> 3.<% %> 4.<SCRIPT language="php">...</script>
A.1 B.2 C.3 D.4 E.没有
3.下边哪个变量是非法的?
A. $_10
B. ${“MyVar”}
C. &$something
D. $10_somethings
E. $aVaR
4.print() 和 echo()的区别是什么?
A.print()可以作为一个表达式的一部分,echo() 不可以
B.echo()可以作为一个表达式的一部分,print() 不可以
C.echo() 可以用在 CLI version of PHP, print() 不可以
D.print() 可以用在 CLI version of PHP, echo() 不可以
E.没有区别
5.分析以下代码:
<?php
define("STOP_AT", 1024);
$result = array();
/* Missing code */
{
$result[] = $idx;
}
print_r($result);
?>
在/* Missing code */ 处填什么代码才能有以下的输出?
Array
{
[0] => 1
[1] => 2
[2] => 4
[3] => 8
[4] => 16
[5] => 32
[6] => 64
[7] => 128
[8] => 256
[9] => 512
}
A. foreach($result as $key => $val)
B. while($idx *= 2)
C. for($idx = 1; $idx < STOP_AT; $idx *= 2)
D. for($idx *= 2; STOP_AT >= $idx; $idx = 0)
E. while($idx < STOP_AT) do $idx *= 2
6.下边代码中,index.php 如何得到form传递的email的值?
(选择2个答案)
<form action="index.php" method="post">
<input type="text" name="email"/>
</form>
A. $_GET['email']
B. $_POST['email']
C. $_SESSION['text’]
D. $_REQUEST['email']
E. $_POST['text']
7.分析下段代码, 数组 $multi_array的值cat将会被如何引用?
<?php
$multi_array = array("red",
                     "green",
                      42 => "blue",
                     "yellow" => array("apple",
                     9 => "pear",
                     "banana",
                     "orange" => array("dog",
                                       "cat",
                                       "iguana")
                                     )
                    );
?>
A. $multi_array['yellow']['apple'][0]
B. $multi_array['blue'][0]['orange'][1]
C. $multi_array[3][3][2]
D. $multi_array['yellow']['orange']['cat']
E. $multi_array['yellow']['orange'][1]

8. 如何将一个数组元素的排列顺序反转过来(例如以下代码反转以后的顺序是: array ('d', 'c', 'b', 'a'))? (选择2个答案)
<?php
$array = array ('a', 'b', 'c', 'd');
?>
A. array_flip()
B. array_reverse()
C. sort()
D. rsort()
E. None of the above

9. 请从以下方法中选出最简单的方法来计算一个数组的所有值的和
A. 通过 for 循环
B. 通过 foreach 循环
C. 用 array_intersect 方法
D. 用 the array_sum 方法
E. 用 array_count_values()方法
10. 以下选项哪个不能将 strings $s1 和 $s2 合并成一个单独的string?
A. $s1 + $s2
B. "{$s1}{$s2}"
C. $s1.$s2
D. implode('', array($s1,$s2))
E. All of the above combine the strings
11. 比较两个字符串大小的最好方法是什么?A. Using the strpos function
B. Using the == operator
C. Using strcasecmp()
D. Using strcmp()
12. 以下哪些表达式返回值为TRUE? (选择2个答案)
A. '1top' == '1'
B. 'top' == 0
C. 'top' === 0
D. 'a' == a
E. 123 == '123'
13.哪个选项会匹配下边的这个正则表达式?              /.*\*123\d/A. ******123
B. *****_1234
C. ******1234
D. _*123

14. 以下代码的功能是一行一行的读取一个文件并输出,那么在问号处填入哪个方法可以实现这个功能?
<?php
     $file = fopen("test", "r");
       while(!feof($file)) {
      echo ????????????;
}
A. file_get_contents($file)
B. file($file)
C. read_file($file)
D. fgets($file)
E. fread($file)
15.请选出最简单的方法将microtime()函数输出的结果转换成数字型的值
A. $time = implode (' ', microtime());
B. $time = explode (' ', microtime()); $time = $time[0] + $time[1];
C. $time = microtime() + microtime();
D. $time = array_sum (explode (' ', microtime()));
E. None of the above
16. 以下哪些函数的返回值不是时间戳类型的? (选择2个答案)
A. time()
B. date()
C. strtotime()
D. localtime()
E. gmmktime()
17. 以下这些 DBMSs 中,哪个没有PHP内部扩展?A. MySQL
B. IBM DB/2
C. PostgreSQL
D. Microsoft SQL Server
E. None of the above

18. 以下哪些是正确的PHP stream传送方式 ? (选择2个答案)
A. http
B. STDIO
C. ftp
D. STDOUT
E. stream

19.以下哪个错误无法被标准的错误控制器获取?
A. E_WARNING
B. E_USER_ERROR
C. E_PARSE
D. E_NOTICE
20. trigger_error() 和user_error()的区别是什么?A. trigger_error() 允许程序抛出系统级错误提示
B. user_error() 允许程序抛出系统级错误提示
C. user_error() 不可用于错误控制
D. trigger_error() 只在PHP5中有效
E. 没有区别
二。简答题(每题4分,共60分)1.简单描述一下 require(),include,require_once(),include_once()之间的区别2.php中数据类型分几种,都有哪些数据类型3.用PHP打印出前一天的时间格式是0000-00-00 00:00:004.用PHP打印出这样的时间格式 Feb-02-20085.php如何解析xml文件?请举例说明6.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在哪个预定义变量中;而链接到当前页面的URL记录在哪个预定义变量中7.简单描述 asort()、ksort()、rsort()的作用分别是什么?8.类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是什么9.isset()和empty()的区别10.请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用?11.有一个网页地址 http://up.03776.cn/index.php,如何得到它的内容?12.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):

13.php webservice 是通过什么协议实现的,简单写一下实现方式
14.我们在使用header进行跳转时经常会提示header already sent 这个错误,这是什么原因,该如何解决15.form中复选框内容提交时,如何操作才能最方便快捷的获得所有内容?
三(每题8分,共120分)
1.如何实现字符串翻转?若不允许用php内置函数请编程实现。
2.写一段代码找出给定的文章两边最近的html标签。比如:<div id="content">北京时间1月25日,NBA官方公布了2008年全明星首发名单。东部大前锋凯尔特人的<strong>凯文-加内特</strong>在最终结果统计中成为新一届票王,<span style="data">他的票数达到了2,399,148票</span>同时球迷也将他带入了个人的第11场全明星比赛。</div>意思是,如果以上给你的文字是:他的票数达到了2,399,148票。
那么两边的标签自然是<span style="data">和</span>;如果给初的文字是:
东部大前锋凯尔特人的<strong>凯文-加内特</strong>在最终结果统计中成为新一届票王,<span style="data">他的票数达到了2,399,148票</span>同时球迷也将他带入那么标签就是<div id="content">和</div>3.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。4.有一组数,29、30、40、16、57、69、42、54、46、31写程序排列这组数(要求:第一个是最大的,第二个是最小的,第三个是剩下中最大的,第四个是剩下最小的,第五个是剩下中最大的,第六个是剩下中最小的,依次向下排列。5.请用正则表达式(Regular Expression)写一个函数验证电子邮件的格式是否正确。6.编写一个算法,让两个日期时间相减后得到小时数。
例如$a="2008-01-02   12:12:12"   $b="2008-01-05   14:14:14"   
然后希望$b减去$a,得出的值换算成小时
7.编写一个网页计数器程序,网页每刷新一次访问量加一8.定义一个叫$a的变量并将它的值设定为'pig'后打印出来。现在改变$a的值为'cow',但是不能对$a使用任何赋值操作,也就是说当你再次打印$a变量的时候输出的字符串为'cow'。9.计算某段字符串中某个字符出现的次数(例如: gdfgfdgd59gmkblg中g的次数)10.如何通过php程序防止外部页面提交表单?编写一段代码11.编写函数判断字符串中是否全是中文12.编写函数取得上一月的最后一天13.用最少5种方法取得某一文件路径的扩展名(例如:up.03776.cn/index.php,取得php)第1种方法function get_extension($file)
{
    substr(strrchr($file, '.'), 1);
}第2种方法:
function get_extension($file)
{
    return substr($file, strrpos($file, '.')+1);
}第3种方法:
function get_extension($file)
{
    return end(explode('.', $file));}第4种方法:
function get_extension($file)
{
    $info = pathinfo($file);
    return $info['extension'];
}第5种方法:
function get_extension($file)
{
    return pathinfo($file, PATHINFO_EXTENSION);
}以上几种方式粗看了一下,好像都行,特别是1、2种方法,在我不知道pathinfo有第二个参数之前也一直在用。但是仔细考虑一下,前四种方法都有各种各样的毛病。要想完全正确获取文件的扩展名,必须要能处理以下三种特殊情况。
  1.没有文件扩展名
  2.路径中包含了字符.,如/home/test.d/test.txt
  3.路径中包含了字符.,但文件没有扩展名。如/home/test.d/test很明显:1、2不能处理第三种情况,3不能正确处理第一三种情况。4可以正确处理,但是在不存在扩展名时,会发出一个警告。只有第5种方法才是最正确的方法。顺便看一下pathinfo方法。14.简述php中如何防止sql注入,并写出程序代码15、编程实现图片打水印

李小龙:“I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times.”
(我不怕遇到练习过10000种腿法的对手,但害怕遇到只将一种腿法练习10000次的强敌。)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

手机版|在博客与论坛间短暂徘徊ing……

GMT+8, 2017-9-23 06:19 , Processed in 0.056898 second(s), 26 queries .

强劲动力 Discuz! X3.0 Beta

© 2012-2115 03776.CN

回顶部