首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 大公司的PHP面试题,大家来解决,送分啊!
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • timdy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2007-12-02 16:57:54 楼主
    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。

    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • timdy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-02 17:00:241楼 得分:0
    这是PHP软件工程师的面试题,我自己太菜做对的没有几道,那职位工资相对都比较高,可惜啊,现在放上来给大家帮看看,自己也可以跟着学学,谢谢啊!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • SysTem128
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-02 17:19:212楼 得分:0
    第五题也许会决定薪资.
    第三范式要求已经比较低了,如果您能讲得很好,老板会赏识你的.
    Php开发用EA建模,因为Rose不支持Php代码生成.
    个人喜欢Runloader.版本控制当然也就SVN了.冒泡不会没搞过吧?
    流程的话,要看情况了,有时先建模,有时先狂写一气再说:)
    其它问题查查手册很快就能解决的.
    给分,谢谢……
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • SysTem128
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-02 18:07:223楼 得分:0
    PHP code
    <pre> <?php class engage { public function getArray() { $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(); foreach ($arr1 as $key => $value) { $arr2[$value['fid']][] = array('tid' => $value['tid'],'name' => $value['name']); } return $arr2; } //print_r($arr2); //$eString = 'open_door'; public function getString($eString = null) { $eString = explode('_',$eString); $eString = array_map("ucfirst",$eString); $eString = implode($eString,''); return $eString; } /** * 冒泡排序 * @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; } } $engage = new engage(); print_r($engage->getArray()); echo $engage->getString('make_by_id'); print_r($engage->getBubble()); ?> </pre>

    好玩:)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fxs_2008
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      2

    发表于:2007-12-02 20:37:424楼 得分:0
    考察的比罗全面,题不错!
    不看手册就能做及格!功底已是不错了!
    学习,帮顶!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • luoluonozuoluo
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-03 09:18:365楼 得分:0
    好厉害,我有看没有懂的说
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • shanshuiboy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-03 09:22:076楼 得分:0
    看着都很简单,但都不会做
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • timdy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-03 09:30:267楼 得分:0
    还少了一题,,,现在加上,大家看看啊,,谢谢啦!!


    (2)要求写一段程序,实现以下二维数组$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' )
    )
    );
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • luoluonozuoluo
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-03 09:48:378楼 得分:0
    PHP code
    $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(); $i = 0; foreach($arr1 as $key => $val) { unset($val['fid']); $arr2[$i][] = $val; if($key == 3)$i++; } echo "<Pre>";echo var_dump($arr2);exit;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • timdy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-03 09:50:049楼 得分:0
    第6、7、8、9、10、11题更希望有哪位高手做做,,谢谢啦!!我也是想学习啊,反正这公司也去不了的啦,看情况,,呵呵!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kingerq
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-03 09:55:4510楼 得分:0
    天那!什么呀?看着就头大。这个出题的人肯定是半桶水,这些题还有可能是哪里下载过来的说。
    要是不是找不到工作了,谁要考这样子的题啊,有没有内功,高手对高手就知道了啊。。。哈哈。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • luoluonozuoluo
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-03 09:58:3111楼 得分:0
    楼上的高爪表防碍我祟拜高手的心情。你爬到其它地方呐喊去
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • askzhigang
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-03 10:07:1512楼 得分:0
    先说说第三题吧,第三题可以用explode把_分开,然后用一个可以把头拼音变成大写的函数将其变成Open这样的,最后用implode连接就可以了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • timdy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-03 10:35:5613楼 得分:0
    楼上的这位仁兄,要是能再写出来更好啦!谢谢啦,,呵呵!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • askzhigang
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-03 11:04:5114楼 得分:0
    4T
    PHP code
    $array1 = array( array( 'fid' => 1, 'tid' => 1, 'name' => 'Name1' ), array( 'fid' => 1, 'tid' => 2, 'name' => 'Name2' ), array( 'fid' => 1, 'tid' => 5, 'name' => 'Name3' ), array( 'fid' => 1, 'tid' => 7, 'name' => 'Name4' ), array( 'fid' => 3, 'tid' => 9, 'name' => 'Name5' ) ); $countArray = count($array1); $newArray = array(); $array2 = array(); for ($i = 0; $i < $countArray; $i++) { extract($array1[$i]); $newArray[$fid][] = array( 'tid' => $tid, 'name' => $name ); } foreach($newArray as $value) { $array2[] = $value; } print_r($array2);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ashchen
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-03 11:08:3315楼 得分:0
    第一题就烂到家了,出题的人语言表达混乱,可以在答题纸上骂他的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • luoluonozuoluo
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-03 11:20:0216楼 得分:0
    高脚的讲话就是不一样,有份量得黑文
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yksy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-03 11:34:5617楼 得分:0
    学习一下~~~~~~~~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • SysTem128
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2007-12-03 11:47:4918楼 得分:0
    我晕…
    大部分题除了麻烦没多大难度.
    自己查手册搞定么.还非得让人把馍咀烂给你喂?
    修改