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.   

    附我的答案: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.   

    题都不难,答案蛮好了,不必在意,也许对方没诚意招人吧?只是找人来面试,给内部员工压力而已BTW
    1:据我所知,URL长度限制不在于http协议,也没限制2K,而是浏览器,和WEB服务器
      

  3.   

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

  4.   

    回答的不错:
    5 ,加一个set names 'utf8';
    6 ,要注意持续连接的利弊,这个是优化客户访问的
    7 ,url重写,注意htaccess和httpd.conf中写法不一样的地方
    9 ,这个不太了解
    11,冒泡法吧
    12,这个有些难度,实际上是正则的算法,用正则很简单,但自已写复杂的多的.
      自在这个处理有贪婪的非贪婪之说. 非贪从前向后匹配,只要匹配,再添一个字会14,(1),前端优化,看yslow报告,雅虎的优化工具, js加载等
        (2) 多级缓存:生成静态;客户端缓存--缓存服务器--PHP加速--对象缓存---数据库
        (3) 数据库:合理的结构设计,索引,锁,优化query,避免join和子查询,减少query  
      

  5.   

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

  6.   

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

  7.   


    正则是我的难题。apache研究的也不多。失败的我
      

  8.   

    楼主很牛了,可能碰到不找人的公司,哎,这种事情经常有,缓解公司员工压力吗。我还是php菜鸟,期待高人指导啊。能不能和楼主交个朋友了。
    我QQ573567120
      

  9.   

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

  10.   

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

  11.   


    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);
      

  12.   

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

  13.   

    第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
      

  14.   

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

  15.   

    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题不知道大家是如何理解题的意思的?
      

  16.   

    没学php..
    不过题好像蛮好...
      

  17.   

    应聘的什么职位啊?感觉像是PHP开发,
      

  18.   

    14.SELECT [name] 
    FROM member
    GROUP BY [name] HAVING COUNT(*)>1
      

  19.   

    zhe li de gao shou zhen duo 
      

  20.   

    fuck 劳资不会。。还不是一个样
      

  21.   

    昨天去面试了重庆亚信的pso,貌似印象还不错,待遇也还可以, 不过应该很累,去就直接问能适应加班不...
      

  22.   

    什么公司啊!是真牛啊?还是虚牛啊!Good  Luck! 
      

  23.   

    太狠了吧,这都不上。哎,php知识我都快忘完了!
      

  24.   

    怎么觉得13题的答案怪怪的,这样group不会出错吗?select * ,很少人敢这样写group 语句吧,尽管你的字段也不多,但你这里也没group到id啊
      

  25.   

    http协议有2 GB的大小限制, 不管是request还是reponse都是不允许超过2GB的。也就是你没有办法一次性上传或下载一个超过2gb的文件通过http.
      

  26.   

    13题这样也行吗?
    select *
    from   member a,member b
    where  a.name = b.name
    and    a.id != b.id