面试

21.写一个函数,尽可能高效的,从一个标准url里取出文件的扩展名例如: http://www.test.com.cn/abc/de/fg.php?id=1需要取出php或.php
  答:
   1、$a="http://www.test.com.cn/abc/de/fg.php?id=1";
   2、$b=parse_url($a);
   3、Echosubstr($b['path'],strpos($b['path'],'.'));
      或者:
   4、Echoend(explode('.',$b['path']));

22.描述一下大流量高并发量网站的解决方案
  答:
   1、确认服务器硬件是否足够支持当前的流量。
   2、使用memcache缓存技术,将动态数据缓存到内存中,动态网页直接调用这些文件,而不必在访问数据库。
   3、禁止外部的盗链。
   4、外部网站的图片或者文件盗链往往会带来大量的负载压力,因此应该严格限制外部对自身图片或者文件盗链,目前可以简单的通过refer来控制盗链,apache自己就可以通过配置来禁止盗链。
   5、控制大文件的下载。
   大文件的下载会占用很大的流量,对于非SCSI硬盘来说会消耗,使得网站响应能力下降。
   6、使用不同的主机分流主要流量
   7、使用流量统计软件。
  在网站上安装一个流量统计软件,可以即时知道哪些地方耗费了大量流量,哪些页面需要再进行优化。
   8、分库分表。
   9、Sphinx全文索引引擎。

如何设计或配置Mysql,才能达到高效使用的目的。
  答:
   1、数据库设计方面,设计结构良好的数据库,允许部分数据冗余。
   选取最适用的字段属性,尽可能把字段设置为NOTNULL,这样在查询的时候,数据库不用去比较NULL值。
   2、系统架构设计方面,表散列,把海量数据散列到几个不同的表里面,集群,数据库查询和写入分开。
    写高效sql语句,以提高效率。
使用连接(join)来代替子查询
使用联合(union)来代替手动创建的临时表
所得皆必须,只从数据库取必须的数据。
必要的时候用不同的存储引擎,比如Innodb可以减少死锁,HEAP可以提高一个数量级的查询速度。
使用事务
使用外键
使用索引

24.如何进行防SQL注入?
  答:
   1、过滤掉一些常见的数据库操作关键字:select,insert,update,delete,and,*等
或者通过系统函数:addslashes(需要被过滤的内容)来进行过滤。
   2、在PHP配置文件中
Register_globals=off;设置为关闭状态 //作用将注册全局变量关闭。
比如:接收POST表单的值使用$_POST['user'],如果将register_globals=on;直接使用$user可以接收表单的值。
   3、SQL语句书写的时候尽量不要省略小引号(tab键上面那个)和单引号
   4、提高数据库命名技巧,对于一些重要的字段根据程序的特点命名,取不易被猜到的
   5、对于常用的方法加以封装,避免直接暴漏SQL语句
   6、开启PHP安全模式
Safe_mode=on;
   7、打开magic_quotes_gpc来防止SQL注入
   Magic_quotes_gpc=off;默认是关闭的,它打开后将自动把用户提交的sql语句的查询进行转换,把'转为\',这对防止sql注入有重大作用。
因此开启:magic_quotes_gpc=on;
   8、控制错误信息
关闭错误提示信息,将错误信息写到系统日志。
   9、使用mysqli或pdo预处理。

25,.用PHP写出一个安全的用户登录系统需要注意哪些方面。
答:
1、密码要使用MD5(密码+字符串)进行加密。
2、登录表单的名称不要跟数据库字段一样,以免暴漏表字段。
3、用户表的表名、字段名、密码尽量用不容易被猜到的。
4、要使用验证码验证登陆,以防止暴力破解。
5、验证提交的数据是不是来自本网站。
6、登录后台处理代码数据库部分使用预处理,做好过滤,防止sql注入。

26.使用过哪些PHP框架。试描述其优劣点。
答:
1、BroPHP框架:
优点:轻量级学习型框架,配置简单,操作简单,容易上手,提供了比较全面的文档。
缺点:
2、ThinkPHP框架:
优点:功能比较全面,配置相对比较简单,操作相对比较简单,有很多使用示例程序。
缺点:提供的操作方法太多,新手不知如何选择,文档不够全面。

27.用过哪些版本控制工具?
答:
使用过SVN版本控制器。

28.输出为Mozilla/4.0(compatible;MSIE5.01;Window NT 5.0)时,可能的输出语句是:B
  A.$_SERVER['HTTP_USER_AGENT_TYPE'];
  B. $_SERVER['HTTP_USER_AGENT'];
   C. $_SERVER['USER_AGENT'];
   D. $_SERVER['AGENT'];

29.下面功能PHP无法实现的是:D
   A. 服务器端脚本运行
   B. 命令行脚本运行
   C. 客户端图形界面(GUI)程序
   D. 浏览器端执行DOM操作

30.下面说法不正确的是:C
   A. PHP有四种标量类型:布尔型(boolean),整型(integer),浮点型(float),字符串(string)
   B. 浮点型(float)与双精度型(double)是同一种类型
   C. 符合类型包括:数组(array),对象(object),资源(resource)
   D. 伪类型:混合型(mixed),数字型(number),回调(callback)

31.执行下面的代码后,A
    <?php   echo  和print不是系统函数(看手册)
      echo function_exists('print');   imagecreatetruecolor
    ?>
    得到的输出是:
   A. 空
   B. true
   C. false
   D. FALSE

32.下面不是PHP语法的组成部分的函数是:AD
   A. array
   B. eval
   C. each
  D. list

 33.执行下面的代码的结果是什么?A
   <?php
      $bool = TRUE;
      echo gettype($bool);
      echo is_string($bool);
   ?>
   A. boolean
   B. boolean0
   C. booleanFALSE
   D. booleanfalse

34.写出下面代码执行的结果:12 10 18
   <?php
      $a = 12;
      $b = 012;
      $c = 0x12;
      echo$a,"\n",$b,"\n",$c;
   ?>

35.下面代码的执行结果是什么?C
    <?php
    echo 1+2+"3+4+5";
   ?>
  A. 0
   B. 3
  C. 6
   D. "33+4+5";

36.下面代码加入下面那个函数后返回TRUE:B
   return ? == 'A';
   A. ord(65)
   B. chr(65)
   C. 65+''
   D. ''+65

37.下面代码的输出正确的是:C
  <?php
      $a =array(1=>5,5=>8,22,2=>'8',81);
      echo $a[7];
      echo $a[6];
      echo $a[3];
   ?>
  A. 空2281 B.空8122C.8122空D.空空空

38.下面代码的输出结果:D
   <?php
      $a[bar]='hello';
      echo $a[bar];
      echo $a['bar'];
   ?>
  A. hello B. 空空 C.报错D.hellohello

39.写出下面代码的结果:C 左右相当于乘2,右移相当于除2
   <?php             二进制位移后
      echo 1>>0;  0001 0001
      echo 2>>1;  0010 0001
      echo 3<<2;  0011 1100
   ?>
  A. 012 B. 106 C. 1112 D.123

40.下面代码的执行结果:D
   <?php   中间的i少个$
     for($i=0;i<10;$i++){
         print $i;
      }
   ?>
  A. 0123456789 B. 012345678910 C. 无输出 D. 死循环

41.下面对于echo, print 的描述正确的是:C
   A. echo, print 都可以打印多个参数
   B. print 可以打印多个参数,echo 不可以
   C. echo  可以打印多个参数,print不可以
   D. echo, print 都不可以打印多个参数

42.对于正面的代码
   <?php
      $fruits = array('strawberry'=>'red','banana'=>'yellow');
   ?>
   能够正确得到结果'yellow'的代码是:ACD
   A. echo "A banana is{$fruits['banana']}";
   B. echo "A banana is$fruits['banana']";
   C. echo "A banana is{$fruits[banana]}";
   D. echo "A banana is$fruits[banana]";

43.下面代码执行完成后的结果是什么?1  2
   <?php
      function change(){
         static $i = 0;
         $i++;
         return $i;
      }
      print change();  //1
      print change();  //2
   ?>
44.下面的include语句不正确的是?A
  A. include "mms://www.abc.com/a.php";
   B. include"http://www.abc.com/a.php";
   C. include"https://www.abc.com/a.php";
   D. include"ftp://www.abc.com/home/a.php";

45.<?php
      $foo = 'test';
      $bar = <<<'EOT'
      $foobar
EOT;
      echo$bar;
      ?>
上面的语句输出结果 (a): A
  a. $foo bar;
   b. 'EOT' $foo bar EOT;
   c. test bar;
   d. 'EOT' test bar EOT;

46.$a=3;$b=4;
   if($a||$b=5){    ||或和|的区别
      echo 'todo';
   }
   $b的值是(a): A
   a. 4;
   b. 5;
   c. 3;
   d. false

47.什么事面向对象?主要特征是什么?
   答:
   1、面向对象是程序的一种设计方式,它利于提高程序的重用性,是程序结构更加清晰。
   2、主要特征:封装、继承、多态。

48.SESSION与 COOKIE的区别是什么,请从协议,产生的原因与作用说明?
答:
1、http无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求不同的页面不能看做是同一个用户。
2、SESSION保存在服务器端,COOKIE保存在客户端,SESSION依赖COOKIE进行传输,如果COOKIE被禁用了,SESSION将不能继续使用。

49.HTTP状态中302、403、 500代码含义?
答:
300重定向、403服务器拒绝访问、500服务器内部错误。

50.Linux 下建立压缩包,解压缩包的命令。
答:
1、压缩:gzip 、tar -cvfz、zip、bzip2
2、解压:gunzip、tar -zxvf、unzip、bunzip2

www.abc.com/a.php";
   B. include"http://www.abc.com/a.php";

   C. include"https://www.abc.com/a.php";

   D. include"ftp://www.abc.com/home/a.php";

45.<?php

      $foo = 'test';

      $bar = <<<'EOT'

      $foobar

EOT;

      echo$bar;

      ?>

上面的语句输出结果 (a): A

  a. $foo bar;

   b. 'EOT' $foo bar EOT;

   c. test bar;

   d. 'EOT' test bar EOT;

46.$a=3;$b=4;

   if($a||$b=5){    ||或和|的区别

      echo 'todo';

   }

   $b的值是(a): A

   a. 4;

   b. 5;

   c. 3;

   d. false

47.什么事面向对象?主要特征是什么?

   答:

   1、面向对象是程序的一种设计方式,它利于提高程序的重用性,是程序结构更加清晰。

   2、主要特征:封装、继承、多态。

48.SESSION与 COOKIE的区别是什么,请从协议,产生的原因与作用说明?

答:

1、http无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求不同的页面不能看做是同一个用户。

2、SESSION保存在服务器端,COOKIE保存在客户端,SESSION依赖COOKIE进行传输,如果COOKIE被禁用了,SESSION将不能继续使用。

49.HTTP状态中302、403、 500代码含义?

答:

300重定向、403服务器拒绝访问、500服务器内部错误。

50.Linux 下建立压缩包,解压缩包的命令。

答:

1、压缩:gzip 、tar -cvfz、zip、bzip2

2、解压:gunzip、tar -zxvf、unzip、bunzip2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值