大公司的PHP面试题

| |
[不指定 2008/06/11 17:14 | by Else ]
文章来自csdn 转到这里是为了做出答案
PHP题目

1. 如何用php的环境变量得到一个网页地址的内容?ip地址又要怎样得到?

2. 求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数

3. 请写一个函数,实现以下功能:
字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”。

4. 要求写一段程序,实现以下数组$arr1转换成数组$arr2:
$arr1 = array (
'0' => array ('fid' => 1, 'tid' => 1, 'name' =>'Name1' ),
'1' => array ('fid' => 1, 'tid' => 2 , 'name' =>'Name2' ),
'2' => array ('fid' => 1, 'tid' => 5 , 'name' =>'Name3' ),
'3' => array ('fid' => 1, 'tid' => 7 , 'name' =>'Name4' ),
'4' => array ('fid' => 3, 'tid' => 9, 'name' =>'Name5' )
);
$arr2 = array (
'0' => array (
'0' => array ( 'tid' => 1, 'name' => 'Name1'),
'1' => array ( 'tid' => 2, 'name' => 'Name2'),
'2' => array ( 'tid' => 5, 'name' => 'Name3'),
'3' => array ( 'tid' => 7, 'name' => 'Name4')
),
'1' => array (
'0' => array ( 'tid' => 9, 'name' => 'Name5' )
)
);

5. 请简述数据库设计的范式及应用。
一般第3范式就足以,用于表结构的优化,这样做既可以避免应用程序过于复杂同时也避免了SQL语句过于庞大所造成系统效率低下。


6.一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数,用SQL语句及视图、存储过程分别实现。
DELIMITER //
CREATE PROCEDURE ProcGet
(
IN ID_a  INT(11)
)

BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN END;
SELECT COUNT(*) AS Sum  FROM  News  Where  ID = ID_a;
END;//

CALL ProcGet(88)//


7 表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
DELIMITER //
CREATE PROCEDURE ProcOut()
BEGIN
DECLARE  EXIT HANDLER  FOR  SQLEXCEPTION  BEGIN  END;
DECLARE  Sum_a  INT(11);
DECLARE  Sum_b  INT(11);
DECLARE  Sum_c  INT(11);

-- 获取A列中的总值 <--
DECLARE  cur_1  CURSOR  FOR  SELECT  SUM(A)  FROM  table_name;
OPEN  cur_1;
FETCH  cur_ 1  INTO  Sum_a;
CLOSE  cur_1;

-- 获取B列中的总值 <--
DECLARE  cur_2  CURSOR  FOR  SELECT  SUM(B)  FROM  table_name;
OPEN  cur_2;
FETCH  cur_ 2  INTO  Sum_b;
CLOSE  cur_2;

-- 获取C列中的总值 <--
DECLARE  cur_3  CURSOR  FOR  SELECT  SUM(C)  FROM  table_name;
OPEN  cur_3;
FETCH  cur_ 3  INTO  Sum_c;
CLOSE  cur_3;

IF  Sum_a > Sum_b  THEN
SELECT  A FROM  table_name;

ELSEIF  Sum_b > Sum_c THEN
SELECT  B  FROM  table_name;

ELSE
SELECT  C  FROM  table_name;
END IF;;
END;//

CALL ProcOut()//


8请简述项目中优化sql语句执行效率的方法,从哪些方面,sql语句性能如何分析?
9 如果模板是用smarty模板。怎样用section语句来显示一个名为$data的数组。比如:
$data = array(
[0] => array( [id]=8  [name]='name1')
[1] => array( [id]=10 [name]='name2')
[2] => array( [id]=15 [name]='name3')
......
)
写出在模板页的代码? 若用foreach语句又要怎样显示呢?


10 写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。(目录操作)

11 两张表 city表和province表。分别为城市与省份的关系表。
city:
id City Provinceid
1 广州 1
2 深圳 1
3 惠州 1
4 长沙 2
5 武汉 3
………. 广州
province:
id Province
1 广东
2 湖南
3 湖北
……….
(1) 写一条sql语句关系两个表,实现:显示城市的基本信息。?
(2) 显示字段:城市id ,城市名, 所属省份 。
如:
Id(城市id) Cityname(城市名) Privence(所属省份)
。。。。。。。。。
。。。。。。。。。



(2)如果要统计每个省份有多少个城市,请用group by 查询出来。?
显示字段:省份id ,省份名,包含多少个城市。


12. 按照你的经验请简述软件工程进行软件开发的步骤。以下工具Rational Rose、PowerDesigner、Project、VSS或CVS、TestDirector使用过那种,有缺点是什么?
13. 请简述操作系统的线程与进程的区别。列举LINUX下面你使用过的软件?
14. 请使用伪语言结合数据结构冒泡排序法对以下一组数据进行排序 10 2 36 14 10 25 23 85 99 45。


作者:Else 's Blog
地址:http://www.aixq.com/post/1063/
版权所有。转载时必须链接形式注明作者和原始出处及本声明!
  • 中查看更多“大公司的PHP面试题”相关内容
  • 中查看更多“大公司的PHP面试题”相关内容
  • 中查看更多“大公司的PHP面试题”相关内容
  • 中查看更多“大公司的PHP面试题”相关内容
  • 中查看更多“大公司的PHP面试题”相关内容
  • 中查看更多“大公司的PHP面试题”相关内容

  • 最后编辑: Else 编辑于2008/06/12 11:04
    灌水 精华 推荐 | 评论(7) | 引用(0) | 阅读(1206)
    Else Email Homepage
    2008/06/11 17:15
    第二题
    Else Email Homepage
    2008/06/11 17:15
    第三题
    Else 回复于 2008/06/11 17:36
      
    function getString($eString = null)
        {
            $eString = explode('_',$eString);
            $eString = array_map("ucfirst",$eString);
            $eString = implode($eString,'');
            return  $eString;
        }
    Else Email Homepage
    2008/06/11 17:17
    第四题 $arr3和$arr2相同

    $arr3=array();
    for ($i=0;$i<count($arr1);$i++)
    {
       unset($arr1[$i]['fid']);
       $j=sprintf("%d",$i/4);
       $arr3[$j][]=$arr1[$i];
    }

    print_r($arr3);
    Else Email Homepage
    2008/06/11 17:35
       /**
         * 冒泡排序
         * @return unknown
         */
        public function getBubble()
        {
            $isOver = false;
            $bubbleArray =  array(10,2,36,14,10,25,23,85,99,45);
            $bubbleResult = $bubbleArray;
            do{
                $bubbleArray = $bubbleResult;
                $isOver = true;
                foreach ($bubbleArray as $key => $value)
                {
                    if ($value < $bubbleResult[$key-1])
                    {
                        $bubbleResult[$key]=$bubbleResult[$key-1];
                        $bubbleResult[$key-1]=$value;
                        $isOver = false;
                    }
                }
            }while (!$isOver);
            return $bubbleResult;
        }
    Else Email Homepage
    2008/06/11 17:43
    关于ucfirst
    引用

    ucfirst
    (PHP 3, PHP 4, PHP 5)

    ucfirst -- Make a string's first character uppercase
    Description
    string ucfirst ( string str )


    Returns a string with the first character of str capitalized, if that character is alphabetic.

    Note that 'alphabetic' is determined by the current locale. For instance, in the default "C" locale characters such as umlaut-a () will not be converted.
    Else Email Homepage
    2008/06/11 17:49
    这个强


    字符串“open_door”  转换成  “OpenDoor”、”make_by_id”  转换成  ”MakeById”。
    =======================
    不一定非要explode切割


    echo str_replace(' ','',ucwords(str_replace('_',' ','open_door')));
    Else Email Homepage
    2008/06/12 11:09
    遍历  递归

    这个一直在试着去做
    分页: 1/1 第一页 1 最后页
    发表评论
    表情
    emotemotemotemotemot
    emotemotemotemotemot
    emotemotemotemotemot
    emotemotemotemotemot
    emotemotemotemotemot
    打开HTML
    打开UBB
    打开表情
    隐藏
    昵称   密码   游客无需密码
    网址   电邮   [注册]