PHP公司面试题(附答案)

PHP公司面试题(附答案)

本文转自CSDN的一篇网友面试经历,这里仅仅是复制了原文。
 
 
PHP公司面试题目如下:
 
1. POST和GET分别能够传输多少数据?  
 
2. 请简述include,include_once,require,require_once之间的区别?  
 
3. 请写一段正则表达式可以提取出页面所含的URL  
 
  例如:从<A href=’http://www.google.com’ title=’google’>Google</a>中  
 
  提取出http://www.google.com  
 
4. 某网站域名aaa.com下面有诸多子域名,例如sub1.aaa.com,sub2.aaa.com等等  
 
  请问有什么方法保证这些子域名下都可以访问得到cookie?  
 
5. 假如网站采用UTF-8编码,请问在整个开发过程中,有什么地方需要统一编码,或者是需要  
 
  作出相关设置?  
 
6. 在apache的配置文件httpd.conf 中  
 
  Timeout 300  
  KeepAlive On  
  MaxKeepAliveRequests 100  
  KeepAliveTimeout 5  
  以上分别是有什么作用?  
 
7. 网站需要做URL Rewrite,需要达到伪静态的效果,如下面规则:  
 
  http://www.aaa.com/news/view/id/1990/page/1映射到  
  http://www.aaa.com/news/1990_1.html,  
 
  http://www.aaa.com/news/view/id/1990/page/2映射到  
  http://www.aaa.com/news/1990_2.html,  
 
  http://www.aaa.com/news/view/id/1990/page/3映射到  
  http://www.aaa.com/news/1990_3.html  
  ……  
  等等诸如此类  
  请问apache中应该如何配置?  
 
8. 网站PHP的页面输出需要做压缩后再发往客户端,请问有哪些方法可以做页面压缩?  
 
9. Apache的worker模式和prefork 模式有什么区别,假如网站每天访问量超过1000万PV,你认为  
 
  哪种模式更适合?  
 
10. 在面向对象开发中,我们通常会看到在类的成员函数前面有此类限制,如  
 
  public,protected,private,请问他们三者之间有何区别?  
 
11. 我们有一个PHP的一维数组,假设一维数组中都是存放整型数据,请写一个类,该类开放  
 
  一个方法,可以高效的把这个数组进行从小到大进行排序。  
要求:1. 不能调用PHP内置的排序函数  
 
  2. 需要写一个类,该类中至少包含构造函数,析构函数以及完成排序的功能函数  
 
12. 我们有两个字符串$str1 ,$str2,需要写一个PHP类查找$str2是否在$str1中出现。其中$str1和  
 
  $str2都是有多个字符的字符串(字符串中字符不考虑多字节字符)  
 
  要求:不能调用PHP内置的字符串查找函数  
 
13. 有一张MySQL的数据表名为 member,其中有2个字段  
  id unsigned int   
  name varchar(20)  
  假设数据库中的数据类似:  
  id值 name值  
  1. AAA  
  2. BBB  
  3. CCC  
  4. AAA  
  5.  
  …….  
  47892 …….  
  请写一段SQL取出数据表中name重复的数据。(注意只需要重复的)  
   
   
14. 请列举之前的工作中有使用过哪一些方法来优化网站。  
 
答案放在下面:
 
1, POST理论上没有长度限制,GET有长度为2K的限制,因为URL得长度限制为2K
2, INCLUDE,INCLUDE_ONCE在失败时返回一个警告,而REQUIRE, REQUIRE_ONCE返回致命错误,INCLUDE_ONCE, REQUIRE_ONCE表示仅包含文件一次
3, 正则表达式: /<a\s+href=\’(.*?)\’[^>]*>.*?<\/a>/i
4, 设置COOKIE的domian为”.aaa.com”
5,首先程序涉及到的文件必须为ut8编码,数据库最好设置为utf8编码,然后发送头header("Content-type: text/html; charset=utf-8");
6, Timeout: 服务器超时时间
KeepAlive on:和服务器保持连接
MaxKeepAliveRequests 100: 最大保持的连接数为100
  KeepAliveTimeout 5:连接保持的时间
7, RewriteRule ^/news/view/id/([0-9]*)/page/([0-9]*)$ /news/$1_$2\.html [R]
8, 我所了解的有gzip, deflate
9, prefork每个进程只有一个线程。效率高,但内存占用较大。worker每个进程可以有多个线程,内存占用量比较小,大PV使用worker模式比较好
10, public:公共的,可以在类外部访问
protected:继承的,可以在类和子类中访问
private:私有的,只能在类内部访问
11,
class Order{
public function __construct()
{
 
}
public static function small2big($array)
{
$n=count($array);
for ($i=0;$i<$n;$i++)  
{   
for ($j=$n-2;$j>=$i;$j--)  
{  
if($array[$j+1]<$array[$j])  
{   
$tmp = $array[$j+1];  
$array[$j+1]=$array[$j];  
$array[$j]=$tmp;  
}  
 
}  
 
}  
return $array;  
 
}
public function __destruct()
{
 
}
}
12
class strFind
{
public function __construct()
{
 
}
public static function find($str1, $str2)
{
$nStr1 = strlen($str1);
$nStr2 = strlen($str2);
$flag = 0;//符合数量
$t = false;
for($i=0;$i<$nStr1;$i++)
{
if(@$str1[$i] == @$str2[$flag])
{
$flag++;
if($flag>=$nStr2)
{
$t = true;
}
}
else
{
$flag = 0;
}
 
}
return $t;
}
public function __destruct()
{
 
}
}
13,SELECT * FROM member GROUP BY name having count(*)>1;
14,(1),使用gzip技术压缩页面信息
(2),优化SQL查询语句,减少查询时间
(3),使用缓存。
(4),生成静态
(5),优化PHP代码和算法
 
原文地址:http://topic.csdn.net/u/20101028/18/e032a87e-b6ff-48ef-8e7b-0cc62c6a8c79.html?95713