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

2023-07-06   


填空题:
   1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量__$_SERVER[\PHP_SELF\]__中;而链接到当前页面的URL记录在预定义变量__$_SERVER[\HTTP_REFERER\]__
  
   中
  
   2.执行程序段<?php echo 8%(-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.简述论坛中无限分类的实现原理。
   答:
   <?php
   /*
   数据表结构如下:
   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 “ 0)
  
   echo “>” . str_repeat( ” “, $level ) . ” ” . $category[\name\] . “ ”;
  
   else
  
   echo “>” . $category[\name\] . “ ”;
  
   Get_Category($key, $level + 1, $default_category);
  
   unset($category_array[$category_id]);
  
  
   /*
   函数返回的数组格式如下所示:
   Array
   (
   [1] => Array ( [id] => 1 [name] => 一级类别 [level] => 0 [ParentID] => 0 )
   [4] => Array ( [id] => 4 [name] => 二级类别 [level] => 1 [ParentID] => 1 )
   [9] => Array ( [id] => 9 [name] => 哈哈 [level] => 2 [ParentID] => 4 )
   [3] => Array ( [id] => 3 [name] => 二级类别 [level] => 1 [ParentID] => 1 )
   [8] => Array ( [id] => 8 [name] => aqqqqqd [level] => 2 [ParentID] => 3 )
   [2] => Array ( [id] => 2 [name] => 二级类别 [level] => 1 [ParentID] => 1 )
   [7] => Array ( [id] => 7 [name] => 234234 [level] => 2 [ParentID] => 2 )
   [6] => Array ( [id] => 6 [name] => 333332 [level] => 2 [ParentID] => 2 )
   [5] => Array ( [id] => 5 [name] => 三级类别 [level] => 2 [ParentID] => 2 )
   [10] => Array ( [id] => 10 [name] => 66333666 [level] => 3 [ParentID] => 5 )
   )
   */
   //指定分类id,然后返回数组
   function Category_array($category_id = 0,$level=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\]] = $rows;
  
  
   foreach ($category_array AS $key=>$val)
  
   if ($key == $category_id)
  
   foreach ($val AS $k=> $v)
  
   $options[$k] =
   array(
   ‘id’ => $v[\categoryID\], ‘name’ => $v[\categoryName\], ‘level’ => $level, ‘ParentID’=>$v[\categoryParentID\]
   );
  
   $children = Category_array($k, $level+1);
  
   if (count($children) > 0)
  
   $options = $options + $children;
  
  
  
  
   unset($category_array[$category_id]);
   return $options;
  
  
   ?>
  
   <?php
  
   class cate
  
  
   function Get_Category($category_id = 0,$level = 0, $default_category = 0)
  
   echo $category_id;
   $arr = array(
   ’0′ => array(
   ’1′ => array(‘id’ => 1, ‘parent’ => 0, ‘name’ => ’1111′),
   ’2′ => array(‘id’ => 2, ‘parent’ => 0, ‘name’ => ’2222′),
   ’4′ => array(‘id’ => 4, ‘parent’ => 0, ‘name’ => ’4444′)
   ),
   ’1′ => array(
   ’3′ => array(‘id’ => 3, ‘parent’ => 1, ‘name’ => ’333333′),
   ’5′ => array(‘id’ => 5, ‘parent’ => 1, ‘name’ => ’555555′)
   ),
  
   ’3′ => array(
   ’6′ => array(‘id’ => 6, ‘parent’ => 3, ‘name’ => ’66666′),
   ’7′ => array(‘id’ => 7, ‘parent’ => 3, ‘name’ => ’77777′)
   ),
   ’4′ => array(
   ’8′ => array(‘id’ => 8, ‘parent’ => 4, ‘name’ => ’8888′),
   ’9′ => array(‘id’ => 9, ‘parent’ => 4, ‘name’ => ’9999′)
   )
   );
  
   if (!isset($arr[$category_id]))
  
   return “”;
  
  
   foreach($arr[$category_id] AS $key => $cate)
  
   if ($cate[\id\] == $default_category)
  
   $txt = “ 0)
  
   $txt1 = “>” . str_repeat( “-”, $level ) . ” ” . $cate[\name\] . “ ”;
   else
   $txt1 = “>” . $cate[\name\] . “ ”;
  
   $val = $txt.$txt1;
   echo $val;
   self::Get_Category($key, $level + 1, $default_category);
  
  
  
  
   function getFlush($category_id = 0,$level = 0, $default_category = 0)
  
  
   ob_start();
  
   self::Get_Category($category_id ,$level, $default_category);
  
   $out = ob_get_contents();
  
   ob_end_clean();
   return $out;
  
  
   $id =$_GET[\id\];
   echo “”;
   $c = new cate();
   //$c->Get_Category();
   $ttt= $c->getFlush($id,’0′,’3′);
   echo $ttt;
   echo “”;
   ?>


相关内容:

  1. 比较基础的php面试题及答案-编程题
  2. PHP面试题及答案二
  3. PHP面试题及答案一
  4. 小升初英语面试题及答案
  5. 一份比较全的PHP面试题
  6. 面试笔试题目规律题及答案