zoukankan      html  css  js  c++  java
  • PHP新手面试题

    简述题(50分)
    1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)
    echo date('Y-m-d H:i:s', strtotime('-1 day'));echo date('Y-n-j H:i:s', time()-60*60*24);
    2、echo(),print(),print_r()的区别(3分)

    echo, print 是语言结构,print_r是函数
    echo 不返回值,其他返回值
    等。
    echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值
    print可以用于复杂的表达式echo不行(如:$b ? print "true" : print "false";)
    print只能打印出简单类型变量的值(如int,string)
    print_r可以打印出复杂类型变量的值(如数组,对象)


    3、能够使HTML和PHP分离开使用的模板(1分)

    现在当然是smarty
    5、使用哪些工具进行版本控制?(1分)

    SVN,CVS等
    6、如何实现字符串翻转?(3分)string strrev ( string string)(

    <?php
    $str = 'test';
    for($i = 1; $i <= strlen($str); $i++)
    {
    echo substr($str, -$i, 1);
    }
    ?>

    ---------------------------------------------------------------
    7、优化MYSQL数据库的方法。(4分,多写多得)

    (1).建立适当的索引。
    (2).使用连接(JOIN)来代替子查询(Sub-Queries)
    (3).使用联合(UNION)来代替手动创建的临时表

    8、PHP的意思(送1分)

    PHP:Hypertext Preporcessor (是Preprocessor?)超文本预处理器
    9、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)
    NOW() FOMART_DATE()

    now(), DATE_FORMAT(date,format)
    10、实现中文字串截取无乱码的方法。(3分)

    mb_substr()

    mb_substr('中文乱码问题的解决方法', 0, 7, 'utf-8');//按字来切分字符 输出:中文乱码问题的
    echo mb_strcut('中文乱码问题的解决方法', 0, 7, 'utf-8');//按字节来切分字符 输出:中文乱

    做个循环便利每个字节,ord判断是否为中文,中文的话看情况截取2个或3个字符,英文直接继续。
    ---------------------------------------------------------------
    11、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1分)
    12、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分)
    13、请简单阐述您最得意的开发之作(4分)
    14、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)

    缓存,静态化。

    a。服务器硬件b.服务器软件配置(如防盗链 缓存设置等)c.php程序优化,页面最好生成静态
    -----------------------------------------------------------------
    15、用PHP写出显示客户端IP与服务器IP的代码1分)

    服务器:$serverip = gethostbyname($_SERVER['SERVER_NAME']);
    客户端:
    function real_ip()
    {
         if (isset($_SERVER))
         {
             if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
             {
                 $arr = explode(',', $_SERVER["HTTP_X_FORWARDED_FOR"]);
             /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */
             foreach ($arr AS $ip)
             {
                $ip = trim($ip);
                if ($ip != 'unknown')
                {
                       $realip = $ip;
                       break;
                }
             }
             }
             elseif (isset($_SERVER["HTTP_CLIENT_IP"]))
             {
                 $realip = $_SERVER["HTTP_CLIENT_IP"];
             }
             else
             {
                 $realip = $_SERVER["REMOTE_ADDR"];
             }
         }
         else
         {
             if (getenv('HTTP_X_FORWARDED_FOR'))
             {
                 $realip = getenv('HTTP_X_FORWARDED_FOR');
             }
             elseif (getenv('HTTP_CLIENT_IP'))
             {
                 $realip = getenv('HTTP_CLIENT_IP');
             }
             else
             {
                 $realip = getenv('REMOTE_ADDR');
             }
         }
         return $realip;
    }


    16、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分)

    发生异常时include产生警告require产生致命错误
    只包含一次 include_once,require_once


    17、如何修改SESSION的生存时间(1分).

    session_set_cookie_params(生存秒数);

    session_set_cookie_params();

    18、有一个网页地址, 比如PHP开发资源网主页: http://www.phpres.com/index.html,如何得到它的内容?($1分)

    file_get_contents();

    file_get_contents($url)
    19、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分)

    401 未授权访问Unauthorized;header('HTTP/1.1 404 Not Found');
    20、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分)

    必须顶格。

    跟起始的一样,且要换行顶格,后面加上分号
    21、谈谈asp,php,jsp的优缺点(1分)——此题禁止在本帖和版本讨论。
    21、谈谈对mvc的认识(1分)

    视图模型控制器
    -------------------------------------------------------------------
    22、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分)

    select * from `members` order by `posts` limit 10;

    select members.username from members order by posts DESC limit 10
    23. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)

    传值是传递堆里一个值的拷贝,传引用是传递栈里一个指向某值的符号的拷贝。改变原值传引用,不改变就传值。

    24. 在PHP中error_reporting这个函数有什么作用? (1分)

    设定错误讯息回报的等级
    25. 请写一个函数验证电子邮件的格式是否正确 (2分)

    function isEmail($str)
    {
    return ereg('^[-_\.a-zA-Z0-9]+@[-a-zA-Z0-9]+\.[-\.a-zA-Z0-9]+$', $str);
    }

    $ismail= (preg_match("/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/", $Email))?   'Yse' : 'No';

    26. 简述如何得到当前执行脚本路径,包括所得到参数。(2分)

    REQUEST_URI

    echo $_SERVER['scrīpt_FILENAME']."?".$_SERVER['QUERY_STRING'];
    27.如何修改SESSION的生存时间. (1分)


    21、JS表单弹出对话框函数是?获得输入焦点函数是? (2分)

    alert(),prompt(),confirm()-- focus()

    22、JS的转向函数是?怎么引入一个外部JS文件?(2分)

    target.location.href
    <scrīpt src=""/>

    23、foo()和@foo()之间有什么区别?(1分)

    @可以屏蔽错误!

    24、如何声明一个名为”myclass”的没有方法和属性的类? (1分)

    class myclass{};
    25、如何实例化一个名为”myclass”的对象?(1分)

    $newClass = new myclass();

    26、你如何访问和设置一个类的属性? (2分)

    通过-〉
    $newClass = new myclass();
    $testVar=$newClass->test;
    $newClass->test="my string";


    27、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分)

    mysql_fetch_row -- 从结果集中取得一行作为枚举数组
    mysql_fetch_array -- 从结果集中取得一行作为关联数组,或数字数组,或二者兼有


    --------------------------------------------------------------------
    28、GD库是做什么用的? (1分)GD库主要是用来做图片处理用的。
    29、指出一些在PHP输入一段HTML代码的办法。(1分)

    echo "<table></table>";
    print("<table></table>");

    30、下面哪个函数可以打开一个文件,以对文件进行读和写操作?(1分)(c)
    (a) fget()   (b) file_open() (c) fopen() (d) open_file()
    31、下面哪个选项没有将 john 添加到users 数组中? (1分)(c)(d)
    (a) $users[] = ‘john’;
    (b) array_add($users,’john’);
    (c) array_push($users,‘john’);
    (d) $users ||= ‘john’;


    32、下面的程序会输入是否?(1分)
    <?php
       $num = 10;
       function multiply(){
           $num = $num * 10;
       }
       multiply();
       echo $num;
    ?>
    否,局部变量
    33、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 (2分)
    表名User
    Name Tel Content Date
    张三 13333663366 大专毕业 2006-10-11
    张三 13612312331 本科毕业 2006-10-15
    张四 021-55665566 中专毕业 2006-10-15

    请根据上面的题目完成代码:
    $mysql_db=mysql_connect("local","root","pass");
    @mysql_select_db("DB",$mysql_db);

    $result = mysql_query('select * from `user` where `name`=\'张三\'');
    while ($row = mysql_fetch_array($result)) {
    echo 'name:'.$row['name'].'tel:'.$row['tel'].'<br />';
    }

    $mysql_db=mysql_connect("local","root","pass");
    @mysql_select_db("DB",$mysql_db);
    $result=mysql_query("select * from User where Name='张三'");
    while($row=mysql_fetch_array($result))
    {
    echo $row['Name'].$row['Tel'].$row['Content'].$row['Date'];
    echo "<br>";
    }

    34、如何使用下面的类,并解释下面什么意思?(3)

    class test{
    function Get_test($num){
       $num=md5(md5($num)."En");
       return $num;
    }
    }

    双重md5加密
    $testObject = new test();
    $encryption = $testObject->Get_test("xiaotian_ls");

    ----------------------------------------------------------------------------
    35、写出 SQL语句的格式 : 插入 ,更新 ,删除 (4分)
    表名User
    Name Tel Content   Date
    张三 13333663366   大专毕业 2006-10-11
    张三 13612312331   本科毕业 2006-10-15
    张四 021-55665566 中专毕业 2006-10-15
       (a) 有一新记录(小王 13254748547 高中毕业 2007-05-06)请用SQL语句新增至表中
       (b) 请用sql语句把张三的时间更新成为当前系统时间
       (c) 请写出删除名为张四的全部记录

    (a) 有一新记录(小王 13254748547 高中毕业 2007-05-06)请用SQL语句新增至表中
    INSERT INTO User('Name','Tel','Content','Date') VALUES('小王','13254748547','高中毕业','2007-05-06')
    (b) 请用sql语句把张三的时间更新成为当前系统时间
    UPDATE User SET Date=DATE_FORMAT(NOW(),'%Y-%m-%d') WHERE Name='张三'
    (c) 请写出删除名为张四的全部记录
    DELETE FROM User WHERE Name='张四'

    36、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别(2分)
    37、MySQ自增类型(通常为表ID字段)必需将其设为(?)字段(1分)
    38、写出以下程序的输出结果 (1分)   4

    <?
    $b=201;
    $c=40;
    $a=$b>$c?4:5;
    echo $a;
    ?>
    39、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分)
    -----------------------------------------------------------------------------
    40、取得查询结果集总数的函数是?(1分)count()
    41、$arr = array('james', 'tom', 'symfony'); 请打印出第一个元素的值 (1分)print $arr[0];
    42、请将41题的数组的值用','号分隔并合并成字串输出(1分)

    print $arr[0].","$arr[1].","$arr[2] ;//^_^
    $arr1 = implode(",",$arr);


    43、$a = 'abcdef'; 请取出$a的值并打印出第一个字母(1分)

    print substr($a, 0, 1);
    44、PHP可以和sql server/oracle等数据库连接吗?(1分)

    可以
    45、请写出PHP5权限控制修饰符(3分)
    46、请写出php5的构造函数和析构函数(2分)
    ------------------------------------------------------------------------------

    47、以下请用PHPMYADMIN完成

    (一)创建新闻发布系统,表名为message有如下字段 (3分)

    id 文章id
    title 文章标题
    content 文章内容
    category_id 文章分类id
    hits 点击量

    Create table message (id int auto_increment primary key,title varchar(50) not null,content text not null,category_id smallint default 1,hits int not null)

    (二)同样上述新闻发布系统:表comment记录用户回复内容,字段如下 (4分)

    comment_id 回复id
    id 文章id,关联message表中的id
    comment_content 回复内容
    现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面
    文章id 文章标题 点击量 回复数量
    用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0

    (三)上述内容管理系统,表category保存分类信息,字段如下 (3分)

    category_id int(4) not null auto_increment;
    categroy_name varchar(40) not null;
    用户输入文章时,通过选择下拉菜单选定文章分类
    写出如何实现这个下拉菜单

  • 相关阅读:
    【郑轻邀请赛 G】密室逃脱
    【郑轻邀请赛 C】DOBRI
    【郑轻邀请赛 F】 Tmk吃汤饭
    【郑轻邀请赛 I】这里是天堂!
    【郑轻邀请赛 B】base64解密
    【郑轻邀请赛 A】tmk射气球
    【郑轻邀请赛 H】 维克兹的进制转换
    解决adb command not found以及sdk环境配置
    adb shell 命令详解,android, adb logcat
    Unexpected exception 'Cannot run program ... error=2, No such file or directory' ... adb'
  • 原文地址:https://www.cnblogs.com/fangbo/p/1671986.html
Copyright © 2011-2022 走看看