比较基础的php面试题及答案-填空题

时间:2020-11-25 09:20:32 笔试题目 我要投稿

比较基础的php面试题及答案-填空题

  填空题:

比较基础的php面试题及答案-填空题

  1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量__$_SERVER['PHP_SELF']__中;而链接到当前页面的URL记录在预定义变量__$_SERVER['HTTP_REFERER']__

  中

  2.执行程序段将输出__0__。

  3.在HTTP 1.0中,状态码 401 的含义是____;如果返回“找不到文件”的提示,则可用 header 函数,其语句为____。

  4.数组函数 arsort 的作用是__对数组进行逆向排序并保持索引关系__;语句 error_reporting(2047)的作用是__报告所有错误和警告__。

  5.PEAR中的数据库连接字符串格式是____。

  6.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把scrīpt标记及其内容都去掉):preg_replace(“//si”, “newinfo”, $script);

  7.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。

  LoadModule php5_module “c:/php/php5apache2.dll” , AddType application/x-httpd-php .php,

  8.语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句__require_once||include_once__来代替它们。

  9.类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是____。

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

  11.SQL中LEFT JOIN的含义是__自然左外链接__。如果 tbl_user记录了学生的姓名(name)和学号(ID),tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)

  和考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句____。

  12.在PHP中,heredoc是一种特殊的字符串,它的结束标志必须____。

  编程题:

  13.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。

  答:

  function my_scandir($dir)

  {

  $files = array();

  if ( $handle = opendir($dir) ) {

  while ( ($file = readdir($handle)) !== false ) {

  if ( $file != “..” && $file != “.” ) {

  if ( is_dir($dir . “/” . $file) ) {

  $files[$file] = scandir($dir . “/” . $file);

  }else {

  $files[] = $file;

  }

  }

  }

  closedir($handle);

  return $files;

  }

  }

  14.简述论坛中无限分类的实现原理。

  答:

  /*

  数据表结构如下:

  CREATE TABLE `category` (

  `categoryID` smallint(5) unsigned NOT NULL auto_increment,

  `categoryParentID` smallint(5) unsigned NOT NULL default ’0′,

  `categoryName` varchar(50) NOT NULL default ”,

  PRIMARY KEY (`categoryID`)

  ) ENGINE=MyISAM DEFAULT CHARSET=gbk;

  INSERT INTO `category` ( `categoryParentID`, `categoryName`) VALUES

  (0, ‘一级类别’),

  (1, ‘二级类别’),

  (1, ‘二级类别’),

  (1, ‘二级类别’),

  (2, ‘三级类别’),

  (2, ’333332′),

  (2, ’234234′),

  (3, ‘aqqqqqd’),

  (4, ‘哈哈’),

  (5, ’66333666′);

  */

  //指定分类id变量$category_id,然后返回该分类的所有子类

  //$default_category为默认的选中的分类

  function Get_Category($category_id = 0,$level = 0, $default_category = 0)

  {

  global $DB;

  $sql = “SELECT * FROM category ORDER BY categoryID DESC”;

  $result = $DB->query( $sql );

  while ($rows = $DB->fetch_array($result))

  {

  $category_array[$rows[categoryParentID]][$rows[categoryID]] = array(‘id’ => $rows[categoryID], ‘parent’ => $rows[categoryParentID], ‘name’ => $rows

  [categoryName]);

  }

  if (!isset($category_array[$category_id]))

  {

  return “”;

  }

  foreach($category_array[$category_id] AS $key => $category)

  {

  if ($category['id'] == $default_category)

  {

  echo “\n”;

  }

  else

  {

  echo “>” . $category['name'] . “\n”;

  }

  Get_Category($key, $level + 1, $default_category);

  }

  unset($category_array[$category_id]);

  }

  /*

  函数返回的数组格式如下所示:

  Array

  (

  [1] => Array ( [id] => 1 [name] => 一级类别 [level] => 0 [ParentID] => 0 )