尽量涵盖,这里只写关于PHP的,基础肯定是各种字符串操作,数组操作,然后面向对象的理解。其实这里面好多好多东西都是平时用不到的,但这就是基础,面试官问到的东西只是你知道的很少很少一部分,但这就是你们交涉的全部所以还你是得让自己尽可能知道的多。写这些东西没有应试教育的意思,虽然有的东西平时不会用,但对你绝对都是有帮助的

1 PHP是用什么语言编写的

php是用c写的

扩展:php3 php4 php5的主要区别是什么,php6的新特征有哪些?

这个问题真恶心,等我以后心情好了在回答吧

2 目前PHP的最高版本是

2013.9.12现在应该是php5.5

3 PHP的三种注释方式

天啊,我竟然知道两种,太可怕了 # 竟然也是 好吧

4 请列出PHP的8种数据类型

字符串 数组 对象 数值类型 整型 xml 浮点 布尔值 特殊的有Null和resource(说实话我只用过前五种)

5 PHP中有几种形式装载代码,并列举,以包含同目录下的Config.php文件为例?

require include require_once include_once

require一般用在文件的头部包含文件,执行php时包含这个文件使它成为php的一部分

include一般用在流程控制中,用到时再包含

区别是require遇到错误不会往下执行,而include会继续执行

require_once和include_once的作用是避免重复包含,也就是说如果不小心包含了同一个文件,用这两个函数会只包含一次

6 PHP中===表示什么意思,以及与==的区别,什么情况下==是true,===是false

这个问题也是比较常见的,不过巨简单。==是比较表达式两边的值,而===会比较数据类型,比如a=1;b = ‘1’; ==的话就为true,但===就为false,因为数据类型不同

7 header的作用是什么,以及它的限制

sorry,这个需要先看http协议,等有功夫在回答这个问题,目前只知道这是做跳转用的

8 strstr和stristr的区别

这种字符串操作的方法但凡加了i的一般都是不区分大小写的意思。这里在普及一下strstr的做用吧,strstr默认返回从指定字符到该字符串结束的字符

9 php如何获得浏览器信息

看吧,php能做的事还是不少的,哎,我这么说会不会暴露了我的知识面比较窄的缺陷呢,哈哈

$_SERVER[‘HTTP_USER_AGENT’];平时没用过这些东西

10 什么是URLRewriteing

说说我自己的理解吧,就是伪静态嘛!通过隐藏网页的访问地址以达到更好收录的的效果,可能有不对的地方,欢迎拍砖

11 如何遍历一个文件夹下所有的内容(考中几率非常高)

以前我都嫌麻烦,不去记这些东西,而且平时用的话我都是从网上搜索,但笔试的时候肯定不能让你从网上搜虽然这东西经常被考到,但我可以确定的是你写不出来对你影响不会很大,当然写出来了更好,之前我欧诺个的都是什么opendir 之类的这些傻×函数,刚才我知道了scandir这个函数,这是循环遍历文件夹的函数,非常实用奥

[php] view plain copy 

在CODE上查看代码片派生到我的代码片

<?php  
$dir = "."; //当前目录  
list_file($dir);  

function list_file($dir){  
    $list = scandir($dir); // 得到该文件下的所有文件和文件夹  
    foreach($list as $file){//遍历  
        $file_location=$dir."/".$file;//生成路径  
        if(is_dir($file_location) && $file!="." &&$file!=".."){ //判断是不是文件夹  
            echo "------------------------sign in $file_location------------------";  
            list_file($file_location); //继续遍历  
        }  
        echo "<br/>";  
    }  
}  
?>  	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

12 二分法和冒泡排序(为什么把这俩在一起说呢,因为他俩都是经常被考到的,而且对于我们的思维逻辑很重要)

二分法 array(1,2,3,4,5,6,7)取出其中一个值的键名

先说一个网上很常见的方法 

[php] view plain copy 

在CODE上查看代码片派生到我的代码片

function Dichotomy($php,$k,$low=0,$max=0)  

  {  

    if(count($php)!= 0 and $max == 0)  

    {  

        $max = count($php);  

    }  

    if($low <= $max)  

    {  

    $mid = intval(($low+$max)/2);  

    if($php[$mid] == $k)  

    {  

        return $mid;  

    }  

    else if($k < $php[$mid])  

    {  

        return Dichotomy($php,$k,$low,$mid-1);  

    }  

    else  

    {  

        return Dichotomy($php,$k,$mid+1,$max);  

    }  

    }  

    return -1;  

  }  

  $php = array('1','2','3','4','5','6');  

  echo Dichotomy($php,5);  

?>  	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

这个方法确实可以,我也试过。但是,我觉得这种方法不好,确切的说是不准确。因为这种方法是以顺序的不间断的数组为基础的,比如上面所说的

max=count(php);$max很明显不是最大值,而是数组的总长度,所以这里不准确。看看我写的方法吧

[php] view plain copy 

在CODE上查看代码片派生到我的代码片

function dis($arr,$var) {  

     $max = count($arr);  

     $mid = intval($max/2);  
     if($arr[$mid-1] == $var){  

        return $mid;  

     }  
     if($arr[$mid-1] >= $var){  
         $arrs = array_slice($arr,0,$mid);  
         return dis($arrs,$var);  
     }else{  
         $arrs = array_slice($arr,$mid,$mid);  
         return dis($arrs,$var);  
     }  
  }  

$arr = array(1,2,3,4,5,6,7,9);  
  echo $a = dis($arr,2);  	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

这里我没有引入最大值最小的概念,只是从数组的中间开始取值判断

冒泡排序

[php] view plain copy 

在CODE上查看代码片派生到我的代码片

$arr = array(1,5,2,23,64,27);  
 foreach($arr as $key=>$val){  
     for($i=0;$i<count($arr);$i++){  
         $var = '';  
         if($arr[$i] < $arr[$i+1]){  
              $var = $arr[$i];  
              $arr[$i] = $arr[$i+1];  
              $arr[$i+1] = $var;  
         }  

     }  
 }  
 print_r($arr);  	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

太神奇了,刚才我自己手写了一下这段程序。我竟然在没有任何思考的情况下给背下来了,真的是考的多了

这里最重要的是程序里的for循环,普通的if判断只是判断哪个值最大,但这只是比对一遍,外层在加上一个for循环的目的是将当前值跟所有值做比较

13 php常用数组和字符串函数(这对于我们来说是最最最基本和常用的,一定要深刻认识并熟练运用)

数组:这里说的都是常用的大约有20个

1 in_array 判断数组中是否存在某值或某数组

2 is_array 判断是否是数组

3 array_merge 合并数组

4 array_search 搜索某值是否存在于数组中

5 array_slice 分个数组(从数组中取出一段)

6 array_values 建立数字索引

7 array_diff 取差集

8 array_keys返回所有键名

9 array_unique 移除重复的值

10 array_splice 将数组中的值用其他值替换

11 sort asort rsort arsort ksort

12 implode

13 print_r

14 foreach

15 count

16 array_shift 将数组开头 的单元去掉

另外像array_map使用频率不是很高,但这些函数你得知道是做什么的

字符串:

1 substr(截取字符串,这是最最常用的)

2 strlen(获取字符串的长度)

3 strpos(查找字符在字符串中首次出现的位置)

4 str_replace(字符串替换)

5 explode(按照规律将字符串拆分成数组)

6 strtoupper(将所有字母变成大写)

7 strtolower

8 ucfirst(将字符串的首字母变成大写)

9 ucwords(将字符串中每个单词的首字母变成大写)

10 strrev(反转字符串,其实不是很常用)

11 substr_replace(替换字符串的子串,注意与str_replace的区别)

12 strip_tags(去除html和php标记,可以选择保留想要的标签)

13 trim(去除空格)

14 获取一个网页的内容,比如获取www.sina.com.cn的内容

主要有三种方法,掌握其中两种就可以

第一种 使用file_get-contents

第二种,使用fopen先打开一个文件,然后读里面的内容,忽略

第三种使用curl

15 说出php中给变量加密的函数

15.1 md5 单项加密,不能解密。生成32个字符的值

15.2 crypt 单项加密,不能解密。接受两个参数,不传第二个参数时生成的值刷新可变,传入第二个值salt之后,加密的结果不变。且,在不同的系统上算法可能不同

15.3 sha1 单项加密,不能解密。和md5很像,不同的是默认生成40个字符串的值,

15.4 base64_encode() 为双向加密,可以解密。使用base64decode()解密

16 原样输出用户输入的内容,使用哪一个函数?比如用户输入’export

export’

htmlspecicalchars 把预定义的字符转换成html实体

17 如何判断一个字符串是否是合法的日期类型如’2017-03-31’,要求代码不超过5行

运用date和strtototime进行转换和比较

18 静态和非静态的区别

普通意义上认为静态可以不用实例化就直接调用了,这是和静态的不同。但这是结果,不是原因。为什么我们要使用静态,难道仅仅是为了在不实例化的情况下就调用它?那和我们实例化之后调用有什么区别。

其实静态和非静态的区别在于内存。静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存。 

任何语言都是对内存和磁盘的操作,至于是否面向对象,只是软件层的问题,底层都是一样的,只是实现方法不同。静态内存是连续的,因为是在程序开始时就生成了,而实例申请的是离散的空间,所以当然没有静态方法快。 

静态方法始终调用同一块内存,其缺点就是不能自动进行销毁,而是实例化可以销毁。

19 require比require_once要快,因为后者要先查看是否已经包含要引用的路径

20 如果你需要得到脚本执行时的时间,$_SERVER[‘REQUSET_TIME’]优于time(); 

可以想象。一个是现成就可以直接用,一个还需要函数得出的结果。

21 str_replace 比preg_replace要快,而strtr比str_replace还要快1/4

另外不要做无谓的替换即使没有替换,str_replace 也会为其参数分配内存。很慢!解决办法: 

用 strpos 先查找(非常快),看是否需要替换,如果需要,再替换效率:- 如果需要替换:效率几乎相等,差别在 0.1% 左右。 

如果不需要替换:用 strpos 快 200%。

22 row[′id′]比row[id]速度快7倍 建议养成数组键加引号的习惯; 

23 不要在循环里计算数组的长度

24 Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。

25 使用ip2long将ip地址转化成整形存入数据库,可节省存储空间

26 对于比较大的字符串在存入数据库之前可以使用gzcompress先进行压缩(前提应该是不需要检索的情况下吧!!!)

27 不要随意复制变量

[php] view plain copy 

在CODE上查看代码片派生到我的代码片

BAD:  
$description = $_POST['description'];  
echo $description;  
GOOD:  
echo $_POST['description'];  	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

28 使用选择分支语句 switch case好于使用多个if,else if语句,并且代码更加容易阅读和维护。

29 在可以用file_get_contents替代file、fopen、feof、fgets 它的效果要比其他的高很多

30 用i+=1代替i=i+1

31 对global变量,应该用完就unset()掉; 

32 打开apache的mod_deflate模块,可以提高网页的浏览速度

33 disable_functions 函数,可以禁用某些php内置函数

34 php脚本最长执行时间 php_execuation_time = 30. 默认是30秒

35 memory_limit 设置php脚本处理内存占用的最大内存

36 upload_file_filezize 上传文件的大小限制,默认是2M

37 屏蔽php错误的方法

37.1 最简单的方法,直接在页面写入error_reporting(E_ALL^E_NOTICE^E_WARNING); 可以关闭所有notice 和 warning 级别的错误。

37.2 修改php.ini,将参数display_errors 的值修改为off

37.3 在可能出错的语句前加@,弃用此方法  	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

38 合并两个数组有几种方式,试比较它们的异同

array_merge 合并两个数组,遇到有相同的键名,则第二个键名的值会覆盖第一个

array_merge_recursive 合并数组,遇到有相同的键名的情况,不会覆盖。而是将相同键名的值递归成一个数组

array_combine 函数通过合并两个数组来创建一个新数组,其中的一个数组是键名,另一个数组的值为键值。

39 请写一个函数来检查用户提交的数据是否为整数

[php] view plain copy 

在CODE上查看代码片派生到我的代码片

function checkType1($var){  
    if(is_int($var)){  
        return true;  
    }else{  
        return false;  
    }  
}  
function checkType2($var){  
    if(floor($var) == $var){  
        return true;  
    }else{  
        return false;  
    }  
}  	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

40 字符 字节 汉字 英文字符等等的关系

字节是计算机中的存储单位

字符是计算机中使用的文字和符号。如 1 2 3 a b c 汉 字 ! @ # $等

字节和字符是两个层面的概念,无法直接比较或区分。不同编码里,字符和字节的对应关系不同

1字节=8个二进制位

ASCII中,一个英文字母(不区分大小写)占用一个字节的空间,一个汉字占用2个字节的空间

UTF8中,一个英文字母占用一个字节,一个汉字(含繁体字)占用三个字节

UNICODE中,一个英文字母占用2个字节,一个汉字占用2个字节

41 如何实现PHP的安全最大化?怎样避免SQL注入漏洞和XSS跨站脚本攻击漏洞?

基本原则:不对外界展示服务器或程序设计细节(屏蔽错误),不相信任何用户提交的数据(过滤用户提交)

41.1  屏蔽错误,将display_errors 设置为off

41.2 过滤用户提交参数,这里需要注意的是不能仅仅通过浏览器端的验证,还需要经过服务器端的过滤

         这里是需要注意最多的地方,因为所有用户提交的数据入口都在这里,这是过滤数据的第一步。

             1 考虑是否过滤select,insert,update,delete,drop,create等直接操作数据的命令语句

             2 使用addslashes 将所有特殊字符过滤

             3 打开magic_quotes_gpc,开启该参数数后自动将sql语句转换,将 ' 转换成  \'

41.3 可以考虑设置统一入口,只允许用户通过指定的入口访问,不能访问未经许可的文件等内容

41.4 可以考虑对于安全性要求高的文件进行来源验证,比如要想执行b.php必须先执行a.php,可以在b.php中判断来自a.php的referer,避免用户直接执行b.php  	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

42 a++和++a的区别

前者是先执行表达式,在自增

后者是先自增,在执行表达式

43 合并两个数组的方式,并比较它们的一同

这是一个非常基本也比较考验基础的问题,正因为基础,被考中的几率也非常大

array_merge 简单的合并数组

array_merge_recursive 合并两个数组,如果数组中有完全一样的数据,将它们递归合并

array_combine 合并两个数组,前者的值作为新数组的键

44 请写一个函数来检查用户提交的数据是否为整数(不区分数据类型,可以为二进制、八进制、十进制、十六进制数字)

45 PHP的strtolower()和strtoupper()函数在安装非中文系统的服务器下可能会导致将汉字转换为乱码,请写两个替代的函数实现兼容Unicode文字的字符串大小写转换

46 PHP处理上传文件信息数组中的文件类型$_FILES[‘type’]由客户端浏览器提供,有可能是黑客伪造的信息,请写一个函数来确保用户上传的图像文件类型真实可靠

47 PHP通过对数据的URL编码来实现与JavaScript的数据交互,但是对于部分特殊字符的编解码与Javascript的规则不尽相同,请具体说明这种差异,并针对UTF-8字符集的数据,写出PHP的编解码函数和Javascript的编解码函数,确保PHP编码数据可以被Javascript正确解码 、Javascript编码的数据可以被PHP正确解码

48 

[php] view plain copy 

在CODE上查看代码片派生到我的代码片

unset销毁的不是实际存在于内存中的对象,销毁的是指向内存中对象的变量  
所以说  
$a = 123;  
$b = $a;  
unset($a);  
echo $b;  
输出结果123;很明显这种情况,销毁$b对$a没有任何影响,因为$b和$a引用的完全是两个内存中的地址  
$a = 123;  
$b = &$a;  
unset($a);  
echo $b;  
这种情况,$a和$b指向同一个内存地址,因为unset销毁的是指向内存对象的变量,所以销毁一个对另一个不会产生影响,所以结果扔是123  
这是牵扯到php的垃圾回收机制(目前还不太懂)  

$a = 123;  
$b = &$a;  
$a = 456;  
echo $b;  
这时$b的值是456,因为$a $b两个变量指向的是同一块内存地址  	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

49 HTTP常见状态值、作用

200请求成功

401 未授权

403 禁止

404 未找到

500 服务器内部错误

503 网关不可用

50

高级面试题

1 isset和empty的区别

isset 检测变量是否设置 

当变量不存在或者存在但值为null的情况下,返回false;否则返回true

empty 检测变量值是否为空 

当变量不存在或者存在,但值为null,”,0,’0’,false,array(),var $var或者任务没有属性的对象时,返回true. 

否则返回false

2 将字符串abcdef 翻转的函数

[php] view plain copy 

在CODE上查看代码片派生到我的代码片

<?php  
$var = 'abcdef';  
$len = strlen($var);  
$res = '';  
for($i=$len-1;$i>=0;$i--){  
    $res .= $var[$i];  
}  
echo $res;  
?>  	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

3 多维数据a1,a2,a1与a2比较,得出a1中的元素在a2中的不同部分.

4 将一个多维数组转化成一维数组

[php] view plain copy 

在CODE上查看代码片派生到我的代码片

<?php  
function splitArray($array){  
    static $res = array();  
    foreach($array as $Key=>$val){  
        if(is_array($val)){  
            splitArray($val);  
        }else{  
            array_push($res,$val);  
        }  
    }  
    return $res;  
}  
$array = array(1,2,array(2,array(array(3),array(4),5),6));  
$res = splitArray($array);  
print_r($res);  
?>  	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

5 如何安全的发送短信,(即如何防止恶意刷短信)

基本解题思路:定义input.php和send.php,前者允许用户输入手机号,然后提交到后者处理发送行为。

先执行input.php在执行send.php没有任何问题,但考虑到程序开发中的时序性,我们应该设想多种用户可能进行的操作或是恶意操作。比如

input->send 按照逻辑顺序,先执行input.php在执行send.php

input 只执行input.php,不执行第二步

send 只执行send.php,不执行第一步

send->input 先执行send.php,在执行input.php

因为目前只有两个执行文件,所以组合出四种执行方法,即所有用户有可能进行的操作。

因为目前没有进行任何安全防范,所以用户可以循环执行input.php->send.php,从而不断的给用户发短信。

这肯定是错误的,那如何安全防范呢?我们可以在input.php中添加一个验证码,让用户每次都输入验证码通过时才能继续执行send.php,我们将验证码放入到session中,

在send.php中验证,用户输入的验证码和session中的验证码是否相同,如果相同,就发送短信。

那么问题来了,如果用户直接不经过input.php,而直接执行send.php的话呢?因为这时候没有执行input.php,所以也就没有生成验证码的session,而在send.php中,用户也

不输入任何内容,这样就成了‘’==‘’又绕过了一层过滤。这时候大家肯定会想到除了用户输入的验证码和存放在session中的验证码要相等之外还要判断验证码都不能为空。

6 多服务器之间Session共享

6.1 通过cookie共享达到session共享的目的。如何实现呢?我们知道,不同的站点下面的cookie是无法直接通过$_COOKIE来同步共享的。但我们可以攻错curl的cookie共享

来达到共享的目的,做法就是通过curl的参数设置来控制,在点击打开链接这篇文章中我有详细介绍。我们通过获取以登录站点的cookie信息来达到在其他站点也登录目的。

6.2 服务器之间Session数据同步的方式

6.3 利用MySQL数据库共享Session数据的方式

6.4 利用NFS共享Session数据的方式  	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

7 将1234567890转换成1,234,567,890 每3位用逗号隔开的形式

[php] view plain copy 

在CODE上查看代码片派生到我的代码片

<?php  
$var = '1234567890';  
$len = strlen($var);  
$res = strrev($var);  
$a = '';  
for($i=0;$i<$len;$i++){  
    if(($i%3 == 0) && ($i != 0)){  
         $a.=',';  
    }  
       $a.=$res{$i};  
}  
$a = strrev($a);  
echo $a;  
?>  	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

8 一组随机数学的数列,对其重新进行排序,要求实现:奇数位保持奇数,偶数位保持偶数.

MySQL 面试题

1 如何对一张数据量比较大的表进行导入导出操作?假如有至少1000万条数据

—————————————————————–我是高级程序员的分割——————————————————————– 

这里是月薪15000以上的薪资要求的面试题及hr问题 

首先是hr问题 

1 你的职业规划是什么,并为这个目标做了那些努力 

2 你的性格优缺点是什么 

3 你在团队中的角色是什么 

4 离职的原因是什么 

5 你对加班怎么看 

6 在工作中做过的觉得比较有意义的一件事 

7 自己平时除工作外,关注什么其他技术 

8 你找工作时看重的是哪些因素(这个问题就比较深入了,问这些问题的我觉得要不是hr很负责,能力强,要不就是公司对这个岗位比较看重) 

最后—你有什么想问我的

技术方面 

0.1 大访问量 高并发的解决方案 

1 mysql如何分库分表 

个人认为,目前掌握难度3颗星。需要比较多的基础知识,可能不需要你实际操作中用过,但理论你必须能说出来

2 php设计模式–很重要–说出你知道的设计模式及使用场景和优势 

我认为这是中级程序和初级程序之间,甚至是高级程序和中级程序之间的一个过渡标准,单纯从程序语言方面来讲,能牵扯到设计模式的时候应该已经是稍微有点规模的项目了。当然了,你可能平时不会注意,但实际中在用。可面试的时候你说不出来或理解的不深刻会成为你的减分项,而且是很重要的一点,因为你毕竟是一名程序员而不是DBA或运维,所以属于程序的知识你还是应该掌握更多的。

3 数据库千万级别的数据操作和表设计 

4 对索引的理解 

5 memcache的理解和底层—类似此类的缓存几乎是必考的,扩展如memchache和redis的区别及实际应用场景 

6 redis的使用场景 

7队列和堆栈的理解及实际应用场景 

8 php多进程 

正则表达式的(50%的考中机会,有些面试官会比较看重,因为这是基础,就像操作字符串一样) 

什么是面向对象,考中几率50%。直说封装 继承 多态直接淘汰 

apache和nginx的区别,以及为什么现在大都选用nginx 

mysql 优化方法,问的非常笼统,只要考你平时对mysql的运用水平和设计深度,考中几率10000%,只是看考的问题深浅 

linux使用情况,要求不想对缓存和mysql这么深,但也是基本的至少计划任务、简单的shell脚本和基本命令你肯定要回 

session问题(比如session共享、session和cookie的关系等,这是必考的,几乎是100%) 

事物的本质是什么以及应用场景 

9 对字符串和数组的操作,必考,没有跳过这两种问题的 

以上都是笼统的,但都是必考的,下面是笔试 

10 int=intval(int)和int=int+0的区别 

intval是强制将变量转换成整型。而+对变量的操作只能是进行相加的运算操作,所以,如果int是整型的话可以正常运算,如果是非数值型,结果为011arr1= array(1,2,3,4,5); 

arr2=array(6,7,8,9,10,11);vardump(arr1+arr2);的结果是什么12arr1 = array(1,2,3,4,5); 

foreach(arr1 as &item){echo item;}item = 3; 

foreach(arr1asitem){echo $item;} 

这两次会输出什么

13 php对大文件的操作和linux对大文件的操作—-考中的几率非常大,尤其是前者 

14 写一个函数,能够遍历文件夹中所有文件和子文件 这个几乎是必考的 

15 表tab_log的结构,id,uid,tm;如何实现查询某天中有三条记录以上的uid 

select uid,count(*) as num from tab_log group by tm having num > 3 

16 error_reporting(“E_ALL”)和ini_set(“display_errors”, “on”)的区别? 

后者的权限大于前者,后者是OFF的话,前者就算是E-ALL也没用。 

17 echo print print_r的区别 

echo 和print的最大的区别是前者是php内置语句,没有返回值,不能用于表达式中比如三元运算符。后者属于函数,打印正确返回true错误返回false. 1?print(1):6; 正确,但使用echo是错误的。 

—持续更新 

最后,终极问题,谈谈你对面向对象的理解,呵呵 

总体来说,面试要比笔试重要的多(前提是面试官不忙,你如果笔试题答的不好可能直接就没有面试机会了),只要你面试发挥的好一切都不是问题,可是,可是,可是,你面试发挥的好,面试能发挥的不好吗哈哈,万物皆有共性,好多事都是相辅相成的