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


Posted in 面试题 onApril 26, 2014
填空题:
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 “ }else
{
echo “ }

if ($level > 0)
{
echo “>” . str_repeat( ” “, $level ) . ” ” . $category[name] . “\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 )
[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;
}

?>


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 = “ }else{
$txt = “ }

if ($level > 0)
{
$txt1 = “>” . str_repeat( “-”, $level ) . ” ” . $cate[name] . “\n”;
}else{
$txt1 = “>” . $cate[name] . “\n”;
}
$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 “”;
?>

Tags in this post...

面试题 相关文章推荐
PHP笔试题
Feb 22 面试题
解释一下ArrayList Vector和LinkedList的实现和区别
Apr 26 面试题
如何用Lucene索引数据库
Feb 23 面试题
一家外企的面试题目(C/C++面试题,C语言面试题)
Mar 24 面试题
SQL SERVER面试资料
Mar 30 面试题
为什么UNION ALL比UNION快
Mar 17 面试题
用友笔试题目
Oct 25 面试题
linux面试题参考答案(3)
Sep 13 面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
Jul 11 面试题
Java程序开发中如何应用线程
Mar 03 面试题
介绍一下Java的事务处理
Dec 07 面试题
比较基础的php面试题及答案-编程题
Oct 14 #面试题
PHP中如何创建和修改数组
May 02 #面试题
PHP面试题集
Dec 18 #面试题
一些PHP的面试题
May 06 #面试题
几道PHP面试题
Apr 14 #面试题
PHP如何防止SQL注入
May 03 #面试题
几道PHP的面试题
May 19 #面试题
You might like
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
php正则表达式学习笔记
2015/11/13 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
php简单实现短网址(短链)还原的方法(测试可用)
2016/05/09 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
通过javascript设置css属性的代码
2009/12/28 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
关于jQuery参考实例2.0 用jQuery选择元素
2013/04/07 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
2016/08/09 Javascript
微信小程序 wxapp导航 navigator详解
2016/10/31 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
2017/01/05 Javascript
js的OOP继承实现(必看篇)
2017/02/18 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
vue-router中scrollBehavior的巧妙用法
2018/07/09 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
vue动画效果实现方法示例
2019/03/18 Javascript
详解Python编程中基本的数学计算使用
2016/02/04 Python
python用插值法绘制平滑曲线
2021/02/19 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
Python __slots__的使用方法
2020/11/15 Python
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
军训考核自我鉴定
2014/02/13 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
妇联主席先进事迹
2014/05/18 职场文书
个人存款证明书
2014/10/18 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
经理助理岗位职责
2015/02/02 职场文书
交通事故起诉书
2015/05/19 职场文书
解除处分决定书
2015/06/25 职场文书