当前位置:首页 > 职业规划 > php面试填空题2015

php面试填空题2015

日期:2023-05-18 23:00:13

  1.求1+3+5+...+9999的和

  for($i=1;$i<=9999;$i++){

  $i++;

  $sum = $sum + $i;

  }

  echo $sum;//25005000

  ?>

  2.$a = "abcd",求$a字符串的倒序,请自定义一个函数实现,不能使用已存在的函数

  $a = "abcd";

  function str($a){

  for($j=strlen($a)-1;$j>=0;$j--){

  $b .= substr($a,$j,1);

  }

  return $b;

  }

  echo str($a);//dcba

  ?>

  3. 有一个数组$a = array('3','8','1','4','11','7');请把数组中的各元素进行有序的排序

  方法一(升序排序)

  $a = array('3','8','1','4','11','7');

  $len = count($a);

  for($k = 1;$k < $len;$k++){//$k就是第几步

  for($i = 1,$j = $len -1;$i <= $len - $k;$i++,$j--){//$i就是比较的次数

  if($a[$j] < $a[$j-1]){//升序排序

  $x = $a[$j];

  $a[$j] = $a[$j-1];

  $a[$j-1] = $x;

  }

  }

  }

  print_r($a);//Array ( [0] => 1 [1] => 3 [2] => 4 [3] => 7 [4] => 8 [5] => 11 )

  ?>

  方法二(降序排序)

  $a = array('3','8','1','4','11','7');

  $len = count($a);

  for($k = 1;$k < $len;$k++){//$k就是第几步

  for($i = 1,$j = $len -1;$i <= $len - $k;$i++,$j--){//$i就是比较的次数

  if($a[$j] > $a[$j-1]){//降序排序

  $x = $a[$j];

  $a[$j] = $a[$j-1];

  $a[$j-1] = $x;

  }

  }

  }

  print_r($a);//Array ( [0] => 11 [1] => 8 [2] => 7 [3] => 4 [4] => 3 [5] => 1 )

  ?>

  4.$a = "33^27^5^40^";求33+27+5+40的和

  $a = "33^27^5^40^";

  $b = (explode("^",$a));

  for($i=0;$i<=count($b);$i++){

  $sumc = $sumc + $b[$i];

  }

  echo $sumc;//105

  ?>

  填空题:

  1. 在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量

  $_SERVER['PHP_SELF']中;

  链接到当前页面的URL记录在预定义变量 $_SERVER['HTTP_REFERER']中;

  当前执行脚本的绝对路径名 $_SERVER['SCRIPT_FILENAME'];

  正在浏览当前页面用户的IP地址$_SERVER['REMOTE_ADDR'];

  查询(query)的字符串(URL中第一个问号?之后的内容) $_SERVER['QUERY_STRING'];

  得到当前执行脚本路径,包括所得到参数

  "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];或则

  "http://".getenv("SERVER_NAME").getenv("REQUEST_URI");

  客户端IP $_SERVER['REMOTE_ADDR']; 服务器IP $_SERVER['SERVER_ADDR'];

  2. 执行程序段将输出 0

  3. 在HTTP 1.0中,状态码200的含义是 服务器成功返回网页;状态码401的含义是 未被授权;

  状态码404的含义是 请求的网页不存在; 状态码503的含义是 服务器暂时不可用;

  如果返回“找不到文件”的提示,则可用head函数,其语句为

  header("HTTP/1.0 404 Not Fount");

  4. 数组函数arsort的作用是 对数组进行逆向排序并保持索引关系;

  语句error_reporting(2047)的作用是 报告所有的错误和警告;

  5. 写出一个正则表达式,过滤网页上的所有的JS/VBS脚本(即把script标记及其内容都去掉)

  $script="以下内容不显示:

  ";

  echo preg_replace("/.*?<\ script="">/si", "替换内容", $script);

  ?>

  6. 以Apache 模块的方式安装PHP,在文件http.conf中动态装载php模块的语句

  LoadModule php5_module “D:/php5/php5apache2_2.dll”

  使得Apache把所有的扩展名为php文件都作为PHP脚本处理Addtype application/x-httpd-php .php

  7. 语句include和require都能把另外一个文件包含到当前文件中,他们的区别是

  发生异常时include产生警告,require产生致命的错误

  为了避免多次包含同一文件,可以用语句include_once() 或者 require_once()来代替它们。

  8. 类的属性可以序列化后保存到session中,从而以后可以恢复整个类,这要用到的函数是 serialize()/unserialize()。

  9. 一个函数的参数不能是对变量的引用,除非在php.ini中把allow_call_time_pass_reference设置为on

  10. SQL中LEFT JOIN的含义是 自然左联接 如果tal_user记录了学生的姓名(name)和学好(ID),tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学好(ID)和考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的各科总成绩,则可以用SQL语句

  select u.name,sum(s.score) as sumscore from tal_user u left join tbl_score s on u.ID=s.ID group by u.ID

  11. 在PHP中,heredoc是一种特殊的字符串,它的结束标志必须 结束标记必须顶头写,不能有任何的缩进和空格,且在结束标记末尾要有分号。

  1. 用PHP 打印出前一天的时间,打印格式是2007年5月10日22:21:21

  //date()--格式化一个本地时间日期

  //string date ( string format [, int timestamp])

  //strtotime()--将任何的英文文本的日期时间描述解析为UNIX时间戳

  echo date('Y年n月d日 H:i:s',strtotime('-1 day'));

  echo date("Y年n月d日 H:i:s",time()-3600*24);//time()--返回当前的时间戳

  //mktime()--取得一个日期的时间戳

  //int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]])

  echo date("Y年n月d日 H:i:s",mktime(date("H"),date("i"),date("s"),date("n"),

  date("d")-1,date("Y")));

  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 = "1234";

  $b = "abc";

  echo "初始化时a=$a,b=$b";

  $a = $a.$b;

  $b = substr($a,0,(strlen($a)-strlen($b)));

  $a = substr($a,strlen($b));

  echo "

  交换后的a=$a,b=$b";

  5. javascript能否定义二维数组,如果不能逆如何解决?

  Javascript不能定义二维数组,可以用arr[0] = new array()来解决

  6. 假设a.html和b.html在同一个文件夹下面,用javascript实现当打开a.html五秒钟后,自动跳转到b.html页面。

  7. 利用CSS样式表定义已访问的超链接字体大小为14pt,颜色为red。

  8. 规律题,3、1、4、1、5、9、2、(6),请按规矩在括号内写出来下——表达式。

  规律 3.1415926

  9. 以下哪一句不会把John新增到users阵列?

  $users[] = ‘john’;会

  array_add($users,’john’);不会,函数array_add()无定义

  array_push($users,’john’);会,array_push()—将一个或多个单元压入数组的末尾(入栈)

  $users || = ‘john’;不会,语法错误

  10. 下面的代码用来做什么?请解释。

  $date = ‘08/26/2003’;

  print ereg_replace(“([0-9]+)/([0-9]+)/([0-9]+)”,”[url=file://2///1///3]\\2/\\1/\\3[/url]”,$date);

  这是把一个日期从MM/DD/YYYY的格式转为DD/MM/YYYY格式。

  ereg_replace()—替换正则表达式。

  如果pattern包含有括号内的字串,则replacement可以包含形如\\digit的字串,这些字串将被替换为数字表示的第几个括号内的字串;\\0则包含了字符串的整个内容。最多可以用九个字串。括号可以嵌套,此情形下以左圆括号来计算顺序。

  11. 给你一行文字$string,你会如何编写一个正则表达式,把$string内的HTML标签出去?

  $string = "

  This is a test

  ";

  $expression = "/<(.*?)>(.*?)<\>/";

  echo preg_replace($expression, "\\2", $string);

  简述如何得到当前执行路径,包括所得到参数。

  echo "ht tp://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];或则 echo " http://".getenv("SERVER_NAME").getenv("REQUEST_URI");