比较基础的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中如何创建和修改数组
May 02 面试题
为什么使用接口?
Aug 13 面试题
益模软件Java笔试题
Mar 27 面试题
编写类String 的构造函数、析构函数和赋值函数
Sep 09 面试题
试解释COMMIT操作和ROLLBACK操作的语义
Jul 25 面试题
什么是事务?事务有哪些性质?
Mar 11 面试题
.net笔试题
Mar 03 面试题
.NET概念性的面试题
Feb 29 面试题
如何判断计算机可能已经中马
Mar 22 面试题
用C#语言写出与SQLSERVER访问时的具体过程
Apr 16 面试题
Linux常见面试题
Mar 18 面试题
广州足迹信息技术有限公司Java软件工程师试题
Feb 15 面试题
比较基础的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 session常见问题集锦及解决办法总结
2007/03/18 PHP
PHP不用递归遍历目录下所有文件的代码
2014/07/04 PHP
PHP将进程作为守护进程的方法
2015/03/19 PHP
PHP的Yii框架中过滤器相关的使用总结
2016/03/29 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
学习ExtJS border布局
2009/10/08 Javascript
深入解析JavaScript中的变量作用域
2013/12/06 Javascript
coffeescript使用的方式汇总
2015/08/05 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
搭建vue开发环境
2018/07/19 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
[03:21]【TI9纪实】Old Boys
2019/08/23 DOTA
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
Python 自动化表单提交实例代码
2017/06/08 Python
python对于requests的封装方法详解
2019/01/03 Python
python使用sessions模拟登录淘宝的方式
2019/08/16 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
python3 配置logging日志类的操作
2020/04/08 Python
台湾线上百货零售购物平台:friDay购物
2017/08/18 全球购物
澳洲Chemist Direct药房中文网:澳洲大型线上直邮药房
2019/11/04 全球购物
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
2015/10/24 面试题
投标邀请书范文
2014/01/31 职场文书
合伙协议书
2014/04/23 职场文书
通信工程求职信
2014/07/16 职场文书
幼儿园工作总结2015
2015/04/01 职场文书
幼儿园开学通知
2015/04/24 职场文书
参加招聘会后的感想
2015/08/10 职场文书
幼儿园2016圣诞节活动总结
2016/03/31 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
浅谈JS的二进制家族
2021/05/09 Javascript
微信小程序实现录音Record功能
2021/05/09 Javascript
Redis延迟队列和分布式延迟队列的简答实现
2021/05/13 Redis
Android开发之WECHAT微信小程序路由跳转的两种形式
2022/04/12 Java/Android