一、php基础知识
1、strlen()与mb_strlen的作用分别是什么
strlen在统计长度是以字节统计,不区分字符编码的区别;而mb_strlen会自动区分字符编码,
统计字符长度。例如汉字北京,strlen()统计为6,而mb_strlen则统计为2.
2、下列哪个函数是用正则表达式将字符串分割到数组中(A)
A、Split
B、implode
C、explode
D、join
3、写出下列程序的输出结果: 1
$x=87;
$y=($x%7)*16;
$z=$x>$y?1:0;
echo $z;
?>
4、写出smarty模板的特点
答:1.在程序中不需要解析模板,程序自动完成
2.编译过的网页,如果模板没有变动的情况下,会自动跳过编译动作,直接执行编译过的
网页
3.速度比较快
4.编译型 在运行时会编译成一个非模板技术的php文件,以后访问会直接请求这个php和
html混合的编译文件(模板没有改动的情况下)
5.缓存技术
6.插件技术 可以自定义插件
7.强大的逻辑 在模板中可以通过判断和迭代处理数据
5、写出下列几个预定义全局变量的作用
$_SERVER['DOCUMENT_ROOT'] 当前运行脚本所在的文档根目录。在服务器配置文件中定义。
$_SERVER['HTTP_HOST '] 当前请求的 Host: 头部的内容
$_SERVER['REMOTE_ADDR'] 正在浏览当前页面用户的 IP 地址
$_SERVER['HTTP_REFERER'] 链接到当前页面的前一页面的 URL 地址
$_SERVER['SERVER_NAME'] 当前运行脚本所在服务器主机的名称
$_FILES 包含有所有上传的文件信息。
$_FILES['userfile']['name'] 客户端机器文件的原名称。
$_FILES['userfile']['type'] 文件的 MIME 类型,如果浏览器提供此信息的话。一个例子是
“image/gif”。不过此 MIME 类型在 PHP 端并不检查,因此不要想当然认为有这个值。
$_FILES['userfile']['size'] 已上传文件的大小,单位为字节。
$_FILES['userfile']['tmp_name'] 文件被上传后在服务端储存的临时文件名。
6、include和require都能把另外一个文件包含到当前文件中,他们有什么区别?Include和
include_once又有什么区别?
答:它们在包含一个不存在的文件时,include只会产生一个警告,而require则会产生一个致
命性的错误,导致程序无法继续执行。
include_once 只可以包含相同的文件一次,而include可以包含多次。
7、写出一个能创建多级目录的PHP函数
<?php
function createdir($path,$mode){
if (is_dir($path)){
echo "目录'" . $path . "'已经存在";
}else{
$re=mkdir($path,$mode,true); //第三个参数为true即可以创建多极目录
if ($re){
echo "目录创建成功";
}else{
echo "目录创建失败";
}
}
}
$path="c:/test/test"; //要创建的目录
$mode=0755; //创建目录的模式
createdir($path,$mode);//测试
?>
二、操作系统
1请解释下列10个shell命令的用途
top 显示或管理执行中的程序
ps 显示程序状态
mv 移动或重命名现有的文件或目录
find 查找文件或目录
df 显示磁盘的相关信息
cat 查看文件内容
chmod 更改文件或目录的权限
chgrp 更改文件或目录所在组
grep 查找文件里符合条件的字符串
wc 统计
2、写出下列服务的用途和默认端口
ftp 与另一台计算机互访,并实现文件交换操作 21/20
ssh 远程登陆会话 22
http 提供一种发布和接收HTML页面的方法 80
telnet 它为用户提供了在本地计算机上完成远程主机工作的能力 23
https 用于安全的HTTP数据传输 443
三、面向对象
1、写出php的public、protected、private三种访问控制模式的区别
private protected public
同一个类中 是 是 是
类的子类中 否 是 是
所有的外部成员 否 否 是
2、写出下列程序的输出结果: 10
class a{
protected $c;
public function a(){
$this ->c=10;
}
}
class b extends a
{
public function print_data(){
return $this->c;
}
}
$b=new b();
echo $b ->print_data();
?>
四、数据库
1、写出下面2个PHP操作Mysql函数的作用和区别
mysql_num_rows() 返回结果集中行的数目
mysql_affected_rows() 取得前一次 MySQL 操作所影响的记录行数
区别:mysql_num_row() 针对于select操作,mysql_affected_rows()针对
insert,update,delete操作
2、sql语句应该考虑哪些安全性?
3、简单描述mysql中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)
索引:是对数据表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据表中特定信息。
唯一索引:唯一索引是特殊的索引,保证该列每行数据的唯一性
主键索引:数据表会为每个主键自动创建主键索引,主键索引是唯一索引的特定类型。
联合索引:一个查询只可以使用索引中的左侧部分,如keyindex(a,b,c)。可以支持a|a,b|a,b,c 3种组合的查找,但不支持b,c查找。
索引对特定的列进行了排序,减少了查找时间,大大提高了‘读’的速度,因为需要对索引进行创建与维护,所以‘写’的性能会降低
4、有一个留言板,用mysql做数据库,用户信息包括:用户名,密码,email 留言内容包括:留言ID,标题,内容,发表时间,状态(审核,未审核)
请实现下列需求:
1)数据库结构。无需写建表语句,用类似下面的表格,描述清楚即可
表明 Table_aaa
字段名 字段说明 字段类型 索引
name 姓名 Varchar(64) 唯一索引
gender 性别 Enum('M','F')
注意,要在索引栏中注明是否需要创建索引,以及要创建的索引的类型
2)用一个sql语句查询出发表留言数量大于10条的用户名及其留言数量,查询结果按文章数量降序排列#p#分页标题#e#
五、系统分析
假设有一个博客系统,数据库存储采用mysql,用户数量为1000万,预计文章总数为10亿,每天有至少10万的更新量,每天访问量为5000万,对数据库的读写操作的比例超过10:1,你如何设计该系统,以确保其系统高效,稳定的运行?
提示:可以从数据库设计,系统框架,及网络架构方面进行描述,可以自由发挥