今天去一家公司考试的笔试题,挂了,大家帮我看看

时间:2023-01-20 03:11:31
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. 请列举之前的工作中有使用过哪一些方法来优化网站。 

203 个解决方案

#1


附我的答案:

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代码和算法

#2


POST会受php.ini控制吧?

#3


好几道都用正则!

#4


引用 2 楼 luciferstar 的回复:
POST会受php.ini控制吧?


是的~~

#5


没细看 答的应该算不错了
什么公司这么牛 这样都挂了

#6


题都不难,答案蛮好了,不必在意, 今天去一家公司考试的笔试题,挂了,大家帮我看看也许对方没诚意招人吧?

只是找人来面试,给内部员工压力而已

BTW
1:据我所知,URL长度限制不在于http协议,也没限制2K,而是浏览器,和WEB服务器

#7


祝你下次好运

#8


include和include_once,带once的涉及到数据回滚,包含过的文件将不再调用,相同情况下include调用较快,但是这个微小的变化可以忽略不计。
楼主答得很不错了,敢问你面的是哪家公司。

#9


加油,下次会好运的。

#10


靠。。。那么牛 都淘汰! 你走运了 这公司不去也罢

#11


回答的不错:


5 ,加一个set names 'utf8';
6 ,要注意持续连接的利弊,这个是优化客户访问的
7 ,url重写,注意htaccess和httpd.conf中写法不一样的地方
9 ,这个不太了解
11,冒泡法吧
12,这个有些难度,实际上是正则的算法,用正则很简单,但自已写复杂的多的.
  自在这个处理有贪婪的非贪婪之说. 非贪从前向后匹配,只要匹配,再添一个字会

14,(1),前端优化,看yslow报告,雅虎的优化工具, js加载等
    (2) 多级缓存:生成静态;客户端缓存--缓存服务器--PHP加速--对象缓存---数据库
    (3) 数据库:合理的结构设计,索引,锁,优化query,避免join和子查询,减少query





  


#12


呵呵  有要经验 经验是从失败中来的

#13


经风雨见世面,不错!

#14


基本正确,要精益求精

#15


我去 我要是能回答上一半 就牛逼了

#16


可能因为不在一个城市吧(这样想安慰一下自己)
下午接着面试,祝自己好运

#17


引用 5 楼 heyli 的回复:
没细看 答的应该算不错了
什么公司这么牛 这样都挂了

成都的一家小公司...

#18


引用 17 楼 lvhong84 的回复:
引用 5 楼 heyli 的回复:
没细看 答的应该算不错了
什么公司这么牛 这样都挂了

成都的一家小公司...


lz回答的确实不错哈,我有些还没你清楚呢!

#19


是啊 ,LZ答案不错 换我肯定挂惨了

#20


我去的话估计我也要被PASS掉的。

#21


不错,这题目已经达到接近高级PHP程序的水准了,不过面狭窄了些

#22


今天去一家公司考试的笔试题,挂了,大家帮我看看
正则是我的难题。apache研究的也不多。失败的我

#23


引用 21 楼 ddboy 的回复:
不错,这题目已经达到接近高级PHP程序的水准了,不过面狭窄了些


今天去一家公司考试的笔试题,挂了,大家帮我看看

#24


引用 16 楼 lvhong84 的回复:
可能因为不在一个城市吧(这样想安慰一下自己)
下午接着面试,祝自己好运



祝下午面试能顺利

#25


会不会是你的代码格式问题,还是粘贴问题?

#26


引用 25 楼 bing_ 的回复:
会不会是你的代码格式问题,还是粘贴问题?

我都做了缩进,这里是粘贴的问题

#27


楼主很牛了,可能碰到不找人的公司,哎,这种事情经常有,缓解公司员工压力吗。

我还是php菜鸟,期待高人指导啊。能不能和楼主交个朋友了。
我QQ573567120

#28


GET有长度为1024K的限制.

#29


估计是那笔试的人,怕你了

#30


POST传递的数据受服务器端控制,GET受浏览器和服务器端的控制,第一个就错了

#31


第13个可能也错了,他的意思应该是查询出所有的重复数据,应该虚拟成两个表用自连接来查的

#32


12题,如果$str1 = array(1,2,3,4,5),$str2 = array(2,4)好像也能匹配.

#33



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()
{

}
}
$str1 = "12345";
$str2 = "24";
$x = strFind::find($str1, $str2);
var_dump($x);

#34


第一题就错了。

get:浏览器不同,处理长度不同,ie:2083,ff:65000
     服务器不同,处理的长度也不一定相同。
post:理论上是不限长度,但受到服务器的配置限制。

#35


引用 17 楼 lvhong84 的回复:
引用 5 楼 heyli 的回复:
没细看 答的应该算不错了
什么公司这么牛 这样都挂了

成都的一家小公司...

那就没什么郁闷的!
记得我以前面试,有一家是答完题后,那家公司打了个电话,叫电话那边面试。
还有一家搞教育的,可能有4、5个题。一个和编程没有一点关系的,一个英语翻译, 一个写计算机方面的缩写,一个要实现八皇后的编程。一年后的今天,只感觉当初有点没品位!

#36


第13题

declare @test table(id int,name varchar(10))
insert @test
select 1,'AAA' union all
select 2,'BBB' union all
select 3,'CCC' union all
select 4,'DDD' union all
select 5,'EEE' union all
select 6,'AAA' union all
select 7,'AAA' union all
select 8,'BBB' union all
select 9,'CCC' union all
select 10,'CCC' union all
select 11,'DDD' union all
select 12,'DDD' union all
select 13,'EEE' union all
select 14,'EEE' union all
select 15,'EEE' union all
select 16,'FFF' 

select distinct name from
(
SELECT name,count(1) over(partition by name) as n FROM @test 
) a
where n<>1

#37


传值的限制见34楼,我验证了一下基本就是那样,ulr长度超出的话ie会出现报错或点了没反应等情况。

#38


楼主答得不错了。这种公司不要也罢,不识人才

#39


菜鸟 来学习

#40


学习了,楼主不错

#41


我看公司要是真想招人,这种面试题怎么能招的到,还如果直接给个场景,让你想办法解决,这些东西,不知道有什么用

#42


学习。。。

#43


引用 33 楼 lvhong84 的回复:
PHP code

class strFind
{
    public function __construct()
    {
        
    }
    public static function find($str1, $str2)
    {
        $nStr1 = strlen($str1);
        $nStr2 = strlen($str2);
 ……


++

#44


题还是很实用的

#45


有空看看。

#46


该回复于2010-12-07 09:17:19被版主删除

#47


学习了

#48


12题不对啊。两个字符串的
	public static function find($str1, $str2)
{
$str1 = str_split($str1);
$str2 = str_split($str2);

$nStr1 = count($str1);
$nStr2 = count($str2);
$flag = 0;//符合数量
$t = false;

for($i = 0; $i < $nStr2; $i ++) {
if($str1[$flag] == $str2[$i]) {
$flag ++;
}

}
if($flag >= $nStr1) {
$t = true;
}
return $t;
}

13题不知道大家是如何理解题的意思的?

#49


mark    不错   有空看看

#50


比较基础,不算太难

#1


附我的答案:

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代码和算法

#2


POST会受php.ini控制吧?

#3


好几道都用正则!

#4


引用 2 楼 luciferstar 的回复:
POST会受php.ini控制吧?


是的~~

#5


没细看 答的应该算不错了
什么公司这么牛 这样都挂了

#6


题都不难,答案蛮好了,不必在意, 今天去一家公司考试的笔试题,挂了,大家帮我看看也许对方没诚意招人吧?

只是找人来面试,给内部员工压力而已

BTW
1:据我所知,URL长度限制不在于http协议,也没限制2K,而是浏览器,和WEB服务器

#7


祝你下次好运

#8


include和include_once,带once的涉及到数据回滚,包含过的文件将不再调用,相同情况下include调用较快,但是这个微小的变化可以忽略不计。
楼主答得很不错了,敢问你面的是哪家公司。

#9


加油,下次会好运的。

#10


靠。。。那么牛 都淘汰! 你走运了 这公司不去也罢

#11


回答的不错:


5 ,加一个set names 'utf8';
6 ,要注意持续连接的利弊,这个是优化客户访问的
7 ,url重写,注意htaccess和httpd.conf中写法不一样的地方
9 ,这个不太了解
11,冒泡法吧
12,这个有些难度,实际上是正则的算法,用正则很简单,但自已写复杂的多的.
  自在这个处理有贪婪的非贪婪之说. 非贪从前向后匹配,只要匹配,再添一个字会

14,(1),前端优化,看yslow报告,雅虎的优化工具, js加载等
    (2) 多级缓存:生成静态;客户端缓存--缓存服务器--PHP加速--对象缓存---数据库
    (3) 数据库:合理的结构设计,索引,锁,优化query,避免join和子查询,减少query





  


#12


呵呵  有要经验 经验是从失败中来的

#13


经风雨见世面,不错!

#14


基本正确,要精益求精

#15


我去 我要是能回答上一半 就牛逼了

#16


可能因为不在一个城市吧(这样想安慰一下自己)
下午接着面试,祝自己好运

#17


引用 5 楼 heyli 的回复:
没细看 答的应该算不错了
什么公司这么牛 这样都挂了

成都的一家小公司...

#18


引用 17 楼 lvhong84 的回复:
引用 5 楼 heyli 的回复:
没细看 答的应该算不错了
什么公司这么牛 这样都挂了

成都的一家小公司...


lz回答的确实不错哈,我有些还没你清楚呢!

#19


是啊 ,LZ答案不错 换我肯定挂惨了

#20


我去的话估计我也要被PASS掉的。

#21


不错,这题目已经达到接近高级PHP程序的水准了,不过面狭窄了些

#22


今天去一家公司考试的笔试题,挂了,大家帮我看看
正则是我的难题。apache研究的也不多。失败的我

#23


引用 21 楼 ddboy 的回复:
不错,这题目已经达到接近高级PHP程序的水准了,不过面狭窄了些


今天去一家公司考试的笔试题,挂了,大家帮我看看

#24


引用 16 楼 lvhong84 的回复:
可能因为不在一个城市吧(这样想安慰一下自己)
下午接着面试,祝自己好运



祝下午面试能顺利

#25


会不会是你的代码格式问题,还是粘贴问题?

#26


引用 25 楼 bing_ 的回复:
会不会是你的代码格式问题,还是粘贴问题?

我都做了缩进,这里是粘贴的问题

#27


楼主很牛了,可能碰到不找人的公司,哎,这种事情经常有,缓解公司员工压力吗。

我还是php菜鸟,期待高人指导啊。能不能和楼主交个朋友了。
我QQ573567120

#28


GET有长度为1024K的限制.

#29


估计是那笔试的人,怕你了

#30


POST传递的数据受服务器端控制,GET受浏览器和服务器端的控制,第一个就错了

#31


第13个可能也错了,他的意思应该是查询出所有的重复数据,应该虚拟成两个表用自连接来查的

#32


12题,如果$str1 = array(1,2,3,4,5),$str2 = array(2,4)好像也能匹配.

#33



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()
{

}
}
$str1 = "12345";
$str2 = "24";
$x = strFind::find($str1, $str2);
var_dump($x);

#34


第一题就错了。

get:浏览器不同,处理长度不同,ie:2083,ff:65000
     服务器不同,处理的长度也不一定相同。
post:理论上是不限长度,但受到服务器的配置限制。

#35


引用 17 楼 lvhong84 的回复:
引用 5 楼 heyli 的回复:
没细看 答的应该算不错了
什么公司这么牛 这样都挂了

成都的一家小公司...

那就没什么郁闷的!
记得我以前面试,有一家是答完题后,那家公司打了个电话,叫电话那边面试。
还有一家搞教育的,可能有4、5个题。一个和编程没有一点关系的,一个英语翻译, 一个写计算机方面的缩写,一个要实现八皇后的编程。一年后的今天,只感觉当初有点没品位!

#36


第13题

declare @test table(id int,name varchar(10))
insert @test
select 1,'AAA' union all
select 2,'BBB' union all
select 3,'CCC' union all
select 4,'DDD' union all
select 5,'EEE' union all
select 6,'AAA' union all
select 7,'AAA' union all
select 8,'BBB' union all
select 9,'CCC' union all
select 10,'CCC' union all
select 11,'DDD' union all
select 12,'DDD' union all
select 13,'EEE' union all
select 14,'EEE' union all
select 15,'EEE' union all
select 16,'FFF' 

select distinct name from
(
SELECT name,count(1) over(partition by name) as n FROM @test 
) a
where n<>1

#37


传值的限制见34楼,我验证了一下基本就是那样,ulr长度超出的话ie会出现报错或点了没反应等情况。

#38


楼主答得不错了。这种公司不要也罢,不识人才

#39


菜鸟 来学习

#40


学习了,楼主不错

#41


我看公司要是真想招人,这种面试题怎么能招的到,还如果直接给个场景,让你想办法解决,这些东西,不知道有什么用

#42


学习。。。

#43


引用 33 楼 lvhong84 的回复:
PHP code

class strFind
{
    public function __construct()
    {
        
    }
    public static function find($str1, $str2)
    {
        $nStr1 = strlen($str1);
        $nStr2 = strlen($str2);
 ……


++

#44


题还是很实用的

#45


有空看看。

#46


该回复于2010-12-07 09:17:19被版主删除

#47


学习了

#48


12题不对啊。两个字符串的
	public static function find($str1, $str2)
{
$str1 = str_split($str1);
$str2 = str_split($str2);

$nStr1 = count($str1);
$nStr2 = count($str2);
$flag = 0;//符合数量
$t = false;

for($i = 0; $i < $nStr2; $i ++) {
if($str1[$flag] == $str2[$i]) {
$flag ++;
}

}
if($flag >= $nStr1) {
$t = true;
}
return $t;
}

13题不知道大家是如何理解题的意思的?

#49


mark    不错   有空看看

#50


比较基础,不算太难