• PHP面试(A02)


    一、选择题

    1.下面哪个表达式不能将两个字符串$s1和$s2串联成一个单独的字符串?( A )
    A.$s1+$s2 B.“{$s1}{$s2}” C.$s1.$s2
    D. implode(‘’,array($s1,$s2)) E.以上所有的方法都能实现

    二、问答题

    1.写出下列代码的输出结果:
    function myfunc($argument){
    echo $argument+ 10;
    }
    $variable = 10;
    echo “myfunc($variable)=”.myfunc($variable);

    先调用函数输出,后输出字符串
    输出为: 20myfunc(10)=
    

    2.请用尽可能少的语句实现对输出Email地址进行验证的功能

    ‘/[0-9a-zA-Z_]+@[0-9a-zA-Z_]\.com|\.net|\.cn/ism’
    

    3.简述cookie和session的区别各自的工作机制,存储位置等,简述cookie的优缺点。

    Session是在服务器端运作,根据用户浏览器开始到结束而开始到结束,依赖于cookie,若关闭cookie,session有可能异常,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放 
    
    Cookie是在客户端运作,可以指定时间限制跟踪用户信息,当用户关闭cookie设置,cookie也将失效,存储在用户WIN的Temp目录中的
    
    Cookie优点:存储于客户端,减缓对服务器端的压力
    	   缺点:可以手动修改,安全性不高
    

    4.根据你的经验谈谈写php程序需要注意哪些问题

    注意分号和命名的大小写
    注意系统函数的参数位置的传参
    注意错误等级设置和路径问题
    

    5.Php是否有安全问题,如果有,请列举说明。

    1.过滤用户输入的值 比如从post和get传参得来的值
    例:`$`_POST[‘user’];不过滤,会造成一连串的麻烦
    
    2.禁用register_globals 如果不禁止,就无法确定该变量是否是预定义全局变量里的值
    	例:regiseter_globals=on
    		 `$`var 会代替掉 `$`_POST[‘var’]
    
    3.防止sql注入
    使用 mysql_real_escape_string() 作为用户输入的包装器,就可以避免用户输入中的任何恶意 SQL 注入
    例: `$`sql = "select count(*) as ctr from users where username='".mysql_real_ 
    _string(`$`username)."' and password='". mysql_real_escape_string(`$`pw)."' 
    limit 1"; 	
    

    6.是否仔细阅读过php手册?请列举基本你阅读过的技术方面的书,并简要说明读后感。

    Php 5手册
    细说PHP2 很适合新人入门学习,里面的代码精简独到
    

    三、Linux选择题:

    1.coron后台常驻程序(daemon)用于:D

    A.负责文件在网络中的共享
    B.管理打印子系统Manages theprinting subsystem
    C.跟踪管理系统信息和错误
    D.管理系统日常任务的调度(scheduing)
    

    2.怎么了解您在当前目录下还有多大空间?C

    A.Use df
    B.Use du /
    C.Use du.
    D.Use df.
    

    3. 有一个备份程序mybackup,需要在周一至周五下午一点和晚上八点各运行次,下面哪一条crontab的项可以完成这项工作?C

    A.0 13,20 * * 1,5 mybackup
    B.0 13,20 * * 1,2,,3,4,5, mybackup
    C.*13,20 * *1,2,3,4,5, mybackup
    D.0 13,20 1,5 * *mybackup
    

    4. 下面哪条命令可以把f1.txt复制为f2.txt?A

    A.cp f1.txt|f2.txt
    B.cat f1.txt|f2.txt
    C.cat f1.txt|f2.txt
    B.copy f1.txt|f2.txt
    

    5. 使用命令可以查看Linux的启动信息?B

    A.mesg –d
    B.dmesg
    C.cat /etc/mesg
    D.cat /var/mesg
    

    6. 在vi中退出不保存的命令?D

    A.:qt
    B.:r
    C.:wq
    D.:q!
    

    四、其他相关技术

    1.如何判断SQL语句的运行效率?如何优化一个查询SQL?

    使用explain查看sql语句
    	最主要的查看type和Extra的值
    	
    1.避免全表扫描
    2. 避免在where子句中使用!=或<>操作符, 还有null值的判断全表扫描
    3.  避免在where子句中使用or in not in 
    4.  避免在where子句中对字段使用函数操作 
    5.   不要写一些没有意义的查询
     6.  索引尽量不要过多
    

    2.试写出mysql数据库优化的一些方法

    查询语句优化
    	建立索引
    	使用外键
    	减少模糊匹配和自匹配
    	数据表类型根据需求不同而设定不同
    	优化事务处理
    	字段最好都设置not null ,比如字段类型设置成enum等
    

    3.apache默认使用进程管理还是线程管理?如何判断并设置最大连接数?
    进程管理

    通过查看连接数和当前连接数判断
     
    netstat -ant | grep `$`ip:80 | wc -l 
    netstat -ant | grep `$`ip:80 | grep EST | wc -l 
    
    
    修改httpd.conf文件 
    
    <IfModule prefork.c> 
    StartServers      8 
    MinSpareServers    5 
    MaxSpareServers  20  
    MaxClients      150 
    MaxRequestsPerChild  1000 
    </IfModule> 
    

    4.简述smarty的工作原理?

    Smarty工作原理:当tpl模版文件第一次被hbcms调用后,将被自动编译,并生成php文件,储存在compile目录里;当再次调用tpl文件时,smarty系统会判断tpl文件是否被修改过,如果没被修改过则直接调用,反之 重新编译 调用
    

    5.ajax技术利用了什么协议?简述ajax的工作机制。
    HTTP协议

    通过 XMLHttpRequest对象 发送数据到服务器 经过服务器的处理后 再接收服务器返回来的数据
    

    6.利用ajax开发时,需要考虑浏览器的兼容性么?如果需要,常需要考虑哪些?ajax开发常会遇到哪些问题,试举例说明?

    需要

    如 对XMLHttpRequestde对象的解析
    对象的创建问题。
    js脚本缓存问题	
    调试代码排错困难
    

    7.利用ajax传输数据时,一般默认使用的是什么编码方式?如果出现乱码如何处理?
    Utf8

    设置文件的编码为utf8
    在文件的头部增加设置字符集编码为utf8
    在ajax小类库写入 xmlhttp.setRequestHeader( "Content-Type", "text/html;charset=UTF-8" );
    

    四、逻辑思维

    1. 一个人卖苹果,6元/斤的进货价,10元/斤卖出。某一天他卖了1斤苹果,收到了50元假钞,但没有发现,给客户找了40元钱零钱。请问,这人这次卖苹果亏了多少钱?

    40+6=46元

    1. 一个小猴子边上有100根香蕉,它要走过50米才能到家,每次他最多搬50根香蕉,每走1米就要吃掉一根,请问它最多能把多少根香蕉搬到家里。

    猜想:0根

    1. 分金条问题
      你让某些人为你工作了七天,你要用一根金条作为报酬。这根金条要被分成七块。你必须在每天的活干完后交给他们一块。如果你只能将这根金条切割两次,你怎样给这些工人分?

      联想:二进制:1,2,4 其中若干个的和可构成1,7中任何一个数
      1/7,2/7,4/7 第一天给1/7 第二天拿2/7换1/7 如此反复

    4. 有十箱苹果,里面各放苹果10个,其中9箱装的苹果是50克/只,另一箱装的苹果是60克/只,现给你一地秤,要求只称一次就能准确找到装60克/只的那箱苹果,请问如何做?

    先给十项苹果编上号 1.2.3 ...... 10
    然后1号箱子拿出一个苹果 2号箱子拿出两个苹果 3号箱子拿出三个苹果 以此类推
    把拿出的苹果混在一起称重 如果十箱苹果每箱苹果都是50克一只的话
    称出的重量应该为2750克 用称出的重量-2750 然后再除以十 等于几 就是第几箱的苹果是60克/只
    
    1. 村子中有50个人,每人有一条狗。在这50条狗中有病狗(这种病不会传染)。于是人们就要找出病狗。
      每个人可以观察其他的49条狗,以判断他们是否生病(如果有病一定能看出来),只是
      自己的狗不能看。观察后得到的结果不得交流,也不能通知病狗的主人。主人一旦推算出自
      己家的是病狗就要枪毙自己的狗(发现后必须在一天内枪毙),而且每个人只有权力枪毙自
      己的狗,没有权力打死其他人的狗。
      第一天大家全看完了,但枪没有响,第二天仍没有枪响。到了第三天传来一阵枪声,问
      村里头共有几条病狗,你如何让推算得出的?
    有3条病狗 
    A、假设有1条病狗,病狗的主人会看到其他狗都没有病,那么就知道自己的狗有病,所以第一天晚上就会有枪响。因为没有枪响,说明病狗数大于1。 
    
      B、假设有2条病狗,病狗的主人会看到有1条病狗,因为第一天没有听到枪响,是病狗数大于1,所以病狗的主人会知道自己的狗是病狗,因而第二天会有枪响。既然第二天也每有枪响,说明病狗数大于2。 
    
    由此推理,如果第三天枪响,则有3条病狗。
    
    1. 不均匀分布的香,每根香烧完的时间是一小时,你能用什么方法来确定一段15分钟的时间?

    香a点燃一头,香b点燃两头。等香b烧完时,时间过去了30分钟。再把香a剩下的另一头也点燃。从这时起到a烧完的时间就是15分钟

    五、性格测试

    1.简单说一下,你是一个什么性格的人?

    表象温和 内里狂热

    2.你认为你自身最大的优点和缺点是什么?

    最大优点:自信
    		最大缺点:自信过头
    

    3.是否愿意在比较大的工作压力下工作?有创业公司的工作经验么?简单说一下你对创业公司的看法。

    		愿意尝试下
    		没有
    创业公司的基础:资金 人脉 最主要的是有一个精良的团队 市场的洞察力
    		如果没有一个良好的基础奠基,做什么都很困难
    

    4.你具体是使用什么方法来提供自身的技术(或业务)水平的?

    5.说说你对本公司的了解。简单说说你理想中下面找的工作是一个什么样的工作?简单说一下离开上一个工作的原因是什么?

    有相互学习的氛围
    没有提升自己能力或技术的环境
    
  • 相关阅读:
    webdriver学习
    [Sqlite]-->Java使用jdbc连接Sqlite数据库进行各种数据操作的详细过程(转)
    java 二维码
    java 解析json超大文件(转)
    嵌套三目运算符
    实体的字段以is开头的教训
    easyui中formatter的使用
    springmvc中的controller是单例的
    hibernate 中baseservice中添加事物
    easyui中添加富文本编辑器
  • 原文地址:https://www.cnblogs.com/wjw9/p/15511800.html
Copyright © 2020-2023  润新知