新浪技术部php工程师笔试题及答案

本文详细介绍了PHP基础知识,包括字符串操作、数组处理、Smarty模板应用、预定义全局变量使用、文件包含的区别、创建多级目录的函数,以及操作系统命令、服务功能概述。同时,对数据库操作、面向对象编程、数据库设计原则、安全性和性能优化进行了探讨。
摘要由CSDN通过智能技术生成


一、php基础知识
 1、strlen()与mb_strlen的作用分别是什么
  strlen在统计长度是以字节统计,不区分字符编码的区别;而mb_strlen会自动区分字符编码,

       统计字符长度。例如汉字北京,strlen()统计为6,而mb_strlen则统计为2.

 2、下列哪个函数是用正则表达式将字符串分割到数组中(A)
  A、Split
  B、implode
  C、explode
  D、join
 
 3、写出下列程序的输出结果:  1
  $x=87;
  $y=($x%7)*16;
  $z=$x>$y?1:0;
  echo $z;
  ?>

 4、写出smarty模板的特点
  答:1.在程序中不需要解析模板,程序自动完成
      2.编译过的网页,如果模板没有变动的情况下,会自动跳过编译动作,直接执行编译过的 

 网页
      3.速度比较快
      4.编译型 在运行时会编译成一个非模板技术的php文件,以后访问会直接请求这个php和 

 html混合的编译文件(模板没有改动的情况下)
      5.缓存技术
      6.插件技术 可以自定义插件
      7.强大的逻辑  在模板中可以通过判断和迭代处理数据

        5、写出下列几个预定义全局变量的作用
  $_SERVER['DOCUMENT_ROOT']    当前运行脚本所在的文档根目录。在服务器配置文件中定义。
  $_SERVER['HTTP_HOST ']       当前请求的 Host: 头部的内容
  $_SERVER['REMOTE_ADDR']      正在浏览当前页面用户的 IP 地址
  $_SERVER['HTTP_REFERER']     链接到当前页面的前一页面的 URL 地址
  $_SERVER['SERVER_NAME']      当前运行脚本所在服务器主机的名称
  $_FILES         包含有所有上传的文件信息。
  $_FILES['userfile']['name']  客户端机器文件的原名称。
  $_FILES['userfile']['type']  文件的 MIME 类型,如果浏览器提供此信息的话。一个例子是 

      “image/gif”。不过此 MIME 类型在 PHP 端并不检查,因此不要想当然认为有这个值。
  $_FILES['userfile']['size']  已上传文件的大小,单位为字节。
  $_FILES['userfile']['tmp_name']    文件被上传后在服务端储存的临时文件名。

 6、include和require都能把另外一个文件包含到当前文件中,他们有什么区别?Include和

include_once又有什么区别?
                答:它们在包含一个不存在的文件时,include只会产生一个警告,而require则会产生一个致

命性的错误,导致程序无法继续执行。
      include_once 只可以包含相同的文件一次,而include可以包含多次。

 7、写出一个能创建多级目录的PHP函数
<?php
      function createdir($path,$mode){
              if (is_dir($path)){ 
                      echo "目录'" . $path . "'已经存在";
              }else{
                          $re=mkdir($path,$mode,true); //第三个参数为true即可以创建多极目录
                         if ($re){
                                 echo "目录创建成功";
                         }else{
                                 echo "目录创建失败";
                         }
                 }
         }
     $path="c:/test/test"; //要创建的目录
     $mode=0755; //创建目录的模式
     createdir($path,$mode);//测试
 ?>

 


二、操作系统
 1请解释下列10个shell命令的用途
  top 显示或管理执行中的程序 
  ps 显示程序状态
  mv      移动或重命名现有的文件或目录
  find    查找文件或目录
  df      显示磁盘的相关信息
  cat 查看文件内容
  chmod   更改文件或目录的权限
  chgrp   更改文件或目录所在组
  grep    查找文件里符合条件的字符串
  wc 统计
 
 2、写出下列服务的用途和默认端口
  ftp  与另一台计算机互访,并实现文件交换操作  21/20
  ssh  远程登陆会话                            22
  http  提供一种发布和接收HTML页面的方法        80
  telnet   它为用户提供了在本地计算机上完成远程主机工作的能力 23
  https  用于安全的HTTP数据传输     443

三、面向对象
 1、写出php的public、protected、private三种访问控制模式的区别
                          private      protected       public 
同一个类中            是             是                 是
类的子类中            否             是                 是
所有的外部成员     否             否                 是

 2、写出下列程序的输出结果: 10
class a{
protected $c;
public function a(){
$this ->c=10;
}
}

class b extends a
{
public function print_data(){
return $this->c;
}
}
$b=new b();
echo $b ->print_data();
?>


四、数据库
 1、写出下面2个PHP操作Mysql函数的作用和区别
  mysql_num_rows() 返回结果集中行的数目
  mysql_affected_rows() 取得前一次 MySQL 操作所影响的记录行数
  区别:mysql_num_row() 针对于select操作,mysql_affected_rows()针对   

insert,update,delete操作

 2、sql语句应该考虑哪些安全性?


 3、简单描述mysql中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)


    

 索引:是对数据表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据表中特定信息。


   唯一索引:唯一索引是特殊的索引,保证该列每行数据的唯一性


   主键索引:数据表会为每个主键自动创建主键索引,主键索引是唯一索引的特定类型。


    联合索引:一个查询只可以使用索引中的左侧部分,如keyindex(a,b,c)。可以支持a|a,b|a,b,c 3种组合的查找,但不支持b,c查找。


    索引对特定的列进行了排序,减少了查找时间,大大提高了‘读’的速度,因为需要对索引进行创建与维护,所以‘写’的性能会降低


 4、有一个留言板,用mysql做数据库,用户信息包括:用户名,密码,email 留言内容包括:留言ID,标题,内容,发表时间,状态(审核,未审核)
  请实现下列需求:
  1)数据库结构。无需写建表语句,用类似下面的表格,描述清楚即可
  
表明 Table_aaa
字段名 字段说明 字段类型 索引
name 姓名 Varchar(64) 唯一索引
gender 性别 Enum('M','F')
  注意,要在索引栏中注明是否需要创建索引,以及要创建的索引的类型
   2)用一个sql语句查询出发表留言数量大于10条的用户名及其留言数量,查询结果按文章数量降序排列#p#分页标题#e#

  五、系统分析
  假设有一个博客系统,数据库存储采用mysql,用户数量为1000万,预计文章总数为10亿,每天有至少10万的更新量,每天访问量为5000万,对数据库的读写操作的比例超过10:1,你如何设计该系统,以确保其系统高效,稳定的运行?
  提示:可以从数据库设计,系统框架,及网络架构方面进行描述,可以自由发挥



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值