php面试题之某搜索引擎Word文档下载推荐.docx
- 文档编号:20329648
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:9
- 大小:20.10KB
php面试题之某搜索引擎Word文档下载推荐.docx
《php面试题之某搜索引擎Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《php面试题之某搜索引擎Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。
三、综合技术题
1.请使用JavaScript写出三种产生一个Image标签的方法(提示:
从方法、对象、HTML角度考虑)
2.请使用CSS样式,描述两种方法在当前列中只显示一个div对象
3.请描述出两点以上XHTML和HTML最显著的区别
4.出五种以上你使用过的PHP的扩展的名称(提示:
常用的PHP扩展)
5.了解MVC模式吗?
请写出三种以上目前PHP流行的MVC框架名称(不区分大小写)
6.写出15个以上你所知道的常用的Linux命令和它的功能
7.使用过Vim编辑器吗?
如果使用过,如何在vim里切分多个可视化窗口,包括横排和纵排。
(本题选作)
8.说说Linux下的find命令和grep命令的区别(本题选作)
9.请描述出七层网络模型的名称,由下到上(可以使用中文描述)
10.说说下面这些这些协议的全称和中文解释(提示:
都是工作在应用层)SMTP、POP3、HTTP、FTP、DNS
11.使用过Memcache缓存吗,如果使用过,能够简单的描述一下它的工作原理吗?
12.请大致的说说Session的工作原理。
与Cookie有相应的关系)
13.说说你所了解的搜索引擎包含那些技术?
四、项目及设计题
1.一个Web开发团队开发中,大致说说你所了解的所有成员的分工合作情况
2.说说你做过的最得意的项目或者个人开发作品(可以是个人作品,也可以是合作项目)
3.假设给你5台服务器,请大致的描述一下,如何使用你所熟悉的开源软件,搭建一个日PV300万左右的中型网站
PHP程序员笔试题(参考答案)
五、基础及程序题(建议使用你擅长的语言:
C/C++、PHP、Java)
5.写一个排序算法,可以是冒泡排序或者是快速排序,假设待排序对象是一个维数组。
//冒泡排序(数组排序)
functionbubble_sort($array)
{
$count=count($array);
if($count<
=0)returnfalse;
for($i=0;
$i<
$count;
$i++){
for($j=$count-1;
$j>
$i;
$j--){
if($array[$j]<
$array[$j-1]){
$tmp=$array[$j];
$array[$j]=$array[$j-1];
$array[$j-1]=$tmp;
}
}
return$array;
//快速排序(数组排序)
functionquicksort($array){
if(count($array)<
=1)return$array;
$key=$array[0];
$left_arr=array();
$right_arr=array();
for($i=1;
count($array);
if($array[$i]<
=$key)
$left_arr[]=$array[$i];
else
$right_arr[]=$array[$i];
$left_arr=quicksort($left_arr);
$right_arr=quicksort($right_arr);
returnarray_merge($left_arr,array($key),$right_arr);
6.实现一个字符串截取的函数,类似于substr,必须能够截取中文这种多字节编码。
/**
*截取字符串子串
(1)(GBK)
*
*@paramstring$str原始字符串
*@paramint$len需要截取字符串的长度
*@returnstring返回截取到的字符串
*/
functionGBSubstr($str,$len){
$count=0;
strlen($str);
if($count==$len)break;
if(preg_match("
/[\x80-\xff]/"
substr($str,$i,1)))++$i;
++$count;
returnsubstr($str,0,$i);
*截取字符串子串函数
(2)(GB)
*
*@paramstring$src源字符串
*@paramint$start开始截取的位置
*@paramint$length需要截取字符串的长度
*@returnstring返回截取的字符串
functionGBSubstr2($src,$start=0,$length=0){
$suffix="
"
;
$len=strlen($src);
if($len<
=$length)return$src;
$cut_length=0;
for($idx=0;
$idx<
$length;
$idx++){
$char_value=ord($src[$idx]);
if($char_value<
0x80||($char_value&
0x40))
$cut_length++;
else
$cut_length=$cut_length+3;
}
$curstr=substr($src,0,$cut_length);
preg_match('
/^([\x00-\x7f]|.{3})*/'
$curstr,$result);
return
$result[0];
*中文字符串截取(3)(支持GB2312/GBK/UTF-8/BIG5)
*@paramstring$str要截取的字串
*@paramint$start截取起始位置
*@paramint$length截取长度
*@paramstring$charset字符串的字符集,包括有utf-8|gb2312|gbk|big5编码
*@parambool$suffix是否加尾缀
*@returnstring返回接续字符串的结果
functionCSubstr($str,$start=0,$length,$charset="
gbk"
$suffix=false){
if(function_exists("
mb_substr"
)){
returnmb_substr($str,$start,$length,$charset);
$re['
utf-8'
]
="
/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/"
gb2312'
/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/"
gbk'
/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/"
big5'
/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/"
preg_match_all($re[$charset],$str,$match);
$slice=join("
array_slice($match[0],$start,$length));
if($suffix){
return$slice."
…"
return$slice;
7.写一个遍历指定目录下所有子目录和子文件的函数(提示:
*递归的遍历一个指定目录
functiondir_all($path){
$handler=opendir($path);
while(false!
==($tmp=readdir($handler))){
if(is_dir("
$path/$tmp"
)){
if($tmp=="
."
|$tmp=="
.."
)continue;
echo$tmp."
<
br>
\n"
dir_all("
);
}else{
echo$tmp."
8.写出匹配邮箱地址和URL的两个正则表达式。
邮箱:
/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
URL:
/^http:
\/\/[\w]+\.[\w]+[\S]*/
六、数据库技术题
6.写出三种以上MySQL数据库存储引擎的名称(提示:
MyISAM、InnoDB、BDB(BerkeleyDB)、Merge、Memory(Heap)、Example、Federated、Archive、CSV、Blackhole、MaxDB等等十几个引擎
7.说出你所知道的三种以上开源数据库的名称(提示:
MySQL、SQLite、BDB(BerkeleyDB)、PostgreSQL、Firebird
8.MySQL数据库中的字段类型varchar和char的主要区别是什么?
Varchar是变长,节省存储空间,char是固定长度。
查找效率要char型快,因为varchar是非定长,必须先查找长度,然后进行数据的提取,比char定长类型多了一个步骤,所以效率低一些
9.说出MySQL4.0和MySQL4.1版本的最主要的两个区别。
MySQL4.1主要是比MySQL4.0多了子查询和字符编码的支持两个特点。
MySQL5增加的功能比MySQL4要更多,包括存储过程、视图、事务等等
10.MySQL数据库基本的三个优化法则是什么,除了增加硬件和带宽?
(1)系统服务优化,把MySQL的key_buffer、cache_buffer、query_cache等增加容量
(2)给所有经常查询的字段增加适当的索引
(3)优化SQL语句,减少Ditinct、Group、Join等等语句的操作
七、综合技术题
14.请使用JavaScript写出三种产生一个Image标签的方法(提示:
(1)varimg=newImage();
(2)varimg=document.createElementById(“image”)
(3)img.innerHTML=“<
imgsrc=”xxx.jpg”/>
”
15.请使用CSS样式,描述两种方法在当前列中只显示一个div对象
(1)<
divstyle=”width:
19999px;
”>
/div>
(2)<
divstyle=”clear:
both;
16.请描述出两点以上XHTML和HTML最显著的区别
(1)XHTML必须强制指定文档类型DocType,HTML不需要
(2)XHTML所有标签必须闭合,HTML比较随意
17.出五种以上你使用过的PHP的扩展的名称(提示:
MB_Sring、Iconv、Curl、GD、SHM、libxml、socket、MySQL、PDO等等
18.了解MVC模式吗?
FleaPHP、ZendFramework、CakePHP、Symfony、Plite、php.MVC、PHPonTrax、Smutty等等
19.写出10个以上你所知道的常用的Linux命令和它的功能
Ls列目录
Cp复制
Rm删除
Mkdir建立目录
Cd
切换目录
Ps
查看进程
Top查看机器使用情况
20.使用过Vim编辑器吗?
横:
split(sp)
纵:
vsplit(vsp)
21.说说Linux下的find命令和grep命令的区别(本题选作)
Find:
按照文件名查找
Grep:
按照文件内容查找
22.请描述出OSI七层网络模型的名称,由下到上(可以使用中文描述)
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
23.说说下面这些这些协议的全称和中文解释(提示:
都是工作在应用层)
SMTP、POP3、HTTP、FTP、DNS
SMTP(SimpleMailTransferProtocol)简单邮件传输协议
POP3(PostOfficeProtocol3)邮局协议第3版
HTTP(HypertextTransferProtocol)超文本传输协议
FTP
(FileTransferProtocol)文件传输协议
DNS
(DomainNameSystemandDomainNameServiceprotocol)域名系统(服务)协议
24.使用过Memcache缓存吗,如果使用过,能够简单的描述一下它的工作原理吗?
Memcahce是把所有的数据保存在内存当中,采用hash表的方式,每条数据又key和value组成,每个key是独一无二的,当要访问某个值的时候先按照找到值,然后返回结果。
Memcahce采用LRU算法来逐渐把过期数据清除掉。
25.请大致的说说Session的工作原理。
参考这里:
http:
//www.yuanma.org/data/2006/1128/article_1872.htm
26.说说你所了解的搜索引擎包含那些技术?
爬虫(采集)、切词(分词)、索引(存储)、查询以及其他相关技术
八、项目及设计题
4.一个Web开发团队开发中,大致说说你所了解的所有成员的分工合作情况
PS:
自行判定
5.说说你做过的最得意的项目或者个人开发作品(可以是个人作品,也可以是合作项目)
6.假设给你5台服务器,请大致的描述一下,如何使用你所熟悉的开源软件,搭建一个日PV300万左右的中型网站
PS:
自行判定
参考结构:
3台Web服务器,两台MySQL数据库服务器,采用Master/Slave同步的方式减轻数据库负载,Web服务器可以结合Memcahe缓存来减少负载,同时三台Web服务器内容一致,可以采用DNS轮训的方式来进行负载平衡
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- php 试题 搜索引擎
![提示](https://static.bdocx.com/images/bang_tan.gif)