php高级工程师面试题

来源:互联网 发布:网狐棋牌游戏源码 编辑:程序博客网 时间:2024/04/27 21:43

1.HTTP协议中几个状态码的含义:503 500 401 200 301 302

503  请求超时 500 服务器内部错误  401 未授权访问  200 正确响应 301 永久重定向 302 临时重定向 

2. include require include_once require_once 的区别
 include  引入文件出错时,报警告错误,程序继续向下执行 。require 引入文件出错时,报致命错误,程序终止执行。

include_once 与include 类似,区别是include_once 在文件被引入一次后,不会再重复引入。 require_once 与require 类似 区别是require_once 在文件被引入一次后。不会再重复引入 

3. PHP/Mysql中几个版本的进化史,比如mysql4.0到4.1,PHP 4.x到5.1的重大改进等等

mysql4.1 改进了子查询(myisam 使用了 R-trees,mysql5.0 增加了存储过程、游标、视图,mysql5.1 有 触发器 、约束、innoDB外键的改进

 php5.x主要增强了oo的特性,构造函数/析构函数、类中属性和方法的类型(public private protected)、一些魔术方法(__call __set __get)和接口等

4.写出一些php魔幻方法

__construct 构造方法  对象被实例化的时候调用

__destruct 析构方法  对象被销毁时调用

__get  当访问不存在、或者是私有、被保护的属性时被调用

__set 向一个难以访问的属性赋值时被调用

__call 调用一个对象中不存在的方法时被调用

__sleep 对象序列化时被调用

__wakeup 对象反序列化时被调用

__clone 对象上使用clone关键字时被调用

__toString 当直接输出对象引用时调用

5. 一些编译php时的configure 参数

--with-prefix 

--with-config-file

--with-mysql

--with-curl

--with-gzip

--with-iconv

--with-gd

--with-mbstr

6.向php传入参数的两种方法

getopt() $argc

7.请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别

int 数字类型

varchar 可变长度字符串

char 固定长度字符串

datetime 时间类型

text 文本类型

varchar 可变长度字符串 节省空间  char 固定长度 查询速度更快 (不需要计算字符串长度)

8. error_reporting 调试函数的使用

error_reporting 设置php的报错级别并返回当前级别

9. 您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?

svn git 

10.posix和perl标准的正则表达式区别

posix ereg()

perl  preg_match()

11.safe_model 打开后会有哪些影响

所有操作文件的函数将只能操作与脚本UID相同的文件

12.写代码来解决多进程/线程同时读写一个文件的问题

function wFile($file,$content){

$fp = fopen($file,'w+');

if(flock($fp,LOCK_EX)){

fwrite($fp,$content);

flock($fp,LOCK_UN);

}

 fclose($fp);

}

13.写一个上传文件的脚本

if(isset($_FILES) && !$_FILES['uploadFile']['error']){

$info = pathInfo($_FILES['uploadFile']['tmp_name']);

$extend = $info['extension'];

$fileName = substr(md5(time()),0,10);

$fileName = $fileName.".".$extend;

move_upload_file($_FILES['uploadFile']['tmp_name'],"/uoload/".$fileName);

}

14.mysql存储引擎myisam  innodb的区别

myisam 支持全文索引 不支持事务处理 表级锁

innodb 不支持全文索引 支持事务处理  行级锁

15.linux下查看当前系统负载信息的一些方法

top uptime

16.ssh安全增强方法

禁止root 登录 ,修改登录默认时间,设置密码重试次数,限制监听ip ,修改监听端口,使用验证秘钥

原创粉丝点击