设为首页 收藏本站
查看: 865|回复: 0

[经验分享] PHP笔试题(不断更新中...)

[复制链接]

尚未签到

发表于 2015-8-25 09:30:19 | 显示全部楼层 |阅读模式
  共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:00
  4.用PHP打印出这样的时间格式 Feb-02-2008
  5.php如何解析xml文件?请举例说明
  6.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在哪个预定义变量中;而链接到当前页面的URL记录在哪个预定义变量中
  7.简单描述 asort()、ksort()、rsort()的作用分别是什么?
  8.类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是什么
  9.isset()和empty()的区别
  10.请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用?
  11.有一个网页地址 http://www.test.com/111.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>他的票数达到了2,399,148票</span>同时球迷也将他带入了个人的第11场全明星比赛。&lt;/div>
  意思是,如果以上给你的文字是:他的票数达到了2,399,148票。
那么两边的标签自然是<span>和</span>;如果给初的文字是:
  东部大前锋凯尔特人的<strong>凯文-加内特</strong>在最终结果统计中成为新一届票王,<span>他的票数达到了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种方法取得某一文件路径的扩展名(例如:www.test.com/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、编程实现图片打水印

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-103869-1-1.html 上篇帖子: php json_encode unicode decode 下篇帖子: PHP函数: set_time_limit
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表