[关闭]
@lgh-dev 2018-12-20T08:11:31.000000Z 字数 5468 阅读 939

学生PHP面试题

积云教育


1、redis的使用场景,为什么使用,都用过什么数据类型?


考核点分析:

这个问题考核的东西还是比较直接的,基本上都在题面上显示出来了,最主要的还是是我们要把redis相关的知识点结合着我们的的项目应用场景融汇贯通的说出来,这样会显得更真实贴切,比如说redis数据类型没必要都说出来,最好是能够说在哪个项目的那个应用场景下使用了什么数据类型,如果全说的话,一是感觉还是在背东西,二是如果忘了的话会比较尴尬;为什么使用的话就可以说一些redis的优点,还有他与memecache的区别去拓展知识面。

参考答案

2、用过什么Linux的命令,是否安装过lnmp环境?

考核点分析


这个问题考核的东西就很直接了,主要的话就是考核你Linux命令使用的熟练程度,我们回答的这种问题的话还是要命令结合着实际的应用来说会更好,显得内容会更加的充实。

参考答案



1、文本搜索类

如果vi或vim打开一个很大的文件,不易查找到对应的内容。可以用查找命令:
末行模式下输入"/关键字",输入的关键字会高亮显示,按"n"向下查找,按"N"向上查找。

2、管道命令,也就是"|"
将查询出来的内容交给管道后面的命令装饰之后再显示出来

  1. cat -n test.txt|grep "123" //显示123所在行的全部内容
  2. ps -ef | grep php-fpm | wc -l //查看php-fpm的进程总数

3、查看版本

  1. php -v //查看php的版本号信息

4、用户和用户组的权限

  1. useradd April //创建用户
  2. groupadd April //创建用户组

5、find搜索文件和目录

  1. find /home -name helloword* //查找home目录下名为helloword开头的文件或目录
  2. find / -name h?ll*
  3. find / -size +1000k //查找根目录下大于1000k的文件
  4. find 查找效率比较低

查找命令还有:locate,whereis xxx

6、重定向命令
标准输入

命令 < 文件 //把文件作为命令的输入

标准输出

①语法:命令 > 文件 //把命令执行结果输出到文件中

  1. ls -l > list.txt //命令结果输出到list.txt文件中
  2. ls -l > list.txt //命令结果输出到list.txt文件中,list已经存在则覆盖
  3. ls -l >> list.txt
  4. //命令结果输出到list.txt文件中,list已经存在不会覆盖而是直接追加

7、权限修改
这中命令我们还是经常会用到的

  1. chmod -R 755 /home/April/lib //将/home/April/lib文件夹及其里面的权限
  2. chown -R April:April /home/April/lib //将/home/April/lib文件夹及其里面内容的所有者修改为April

8、常用查看系统使用情况的命令

  1. free -m //查看内存使用情况:free -m (m是MB,g为GB)
  2. df -h //查看磁盘使用情况
  3. cat /proc/cpuinfo //查看cpu使用情况
  4. cat /proc/cpuinfo | grep "model name" //只显示一行对应的cpu型号以及其他信息
  5. cat /proc/cpuinfo | grep "model name" | wc -l //统计出一共有多少核
  6. du -h 文件夹名 //查看某文件夹的空间使用情况
  7. du -sh 文件夹名/* //查看某文件夹内的所有文件的大小:

9、SSH登录限制

  1. vi /etc/ssh/sshd_config
  2. PermitRootLogin yes //允许root用户 SSH登录
  3. PermitRootLogin no //不允许root用户 SSH登录
  1. vi /etc/ssh/sshd_config
  2. AllowUsers April //如此设置后,只能用户April 以SSH形式登录,其他用户登录不了

⚠️修改配置后,使用如下命令时期生效

  1. service sshd reload

10、查看Linux的防火墙

  1. iptables -vnL | grep ":80" //防火墙是否阻止80端口

其他命令参照:
Linux21个常用命令-思否


3、ajax跨域的问题你是怎么处理的?

考点分析

这个问题回答最主要的就是两个方面,一个就是什么是跨域,用自己的话能给别人解释清楚,然后说才是你在项目的过程中哪儿遇到了跨域的问题,然后你是怎么处理的,跨域问题的处理无非就两端,客户端和服务端两个方面,然后结合实际场景说明什么时候用客户端合适,什么时候用服务端合适.

参考答案

Ajax跨域的原理

举例来说,http://www.example.com/dir/page.html这个网址,协议是http://,域名是www.example.com,端口是80(默认端口可以省略)。它的同源情况如下。

  1. http://www.example.com/dir2/other.html:同源
  2. http://example.com/dir/other.html:不同源(域名不同)
  3. http://v2.www.example.com/dir/other.html:不同源(域名不同)
  4. http://www.example.com:81/dir/other.html:不同源(端口不同

可以参考 浏览器同源政策及其规避方法(阮一峰)

如何解决跨域的问题

  • JSONP之所以能够用来解决跨域方案,主要是因为 <script> 脚本拥有跨域能力,而JSONP正是利用这一点来实现;

客户端网页网页通过添加一个元素,向服务器请求JSON数据,这种做法不受同源政策限制

  1. function addScriptTag(src) {
  2. var script = document.createElement('script');
  3. script.setAttribute("type","text/javascript");
  4. script.src = src;
  5. document.body.appendChild(script);
  6. }
  7. window.onload = function () {
  8. addScriptTag('http://example.com/ip?callback=foo');
  9. }
  10. function foo(data) {
  11. console.log('response data: ' + JSON.stringify(data));
  12. };
  1. foo({
  2. "test": "testData"
  3. });

CORS处理

PHP后台配置跨域问题很简单

  1. <?php
  2. header('Access-Control-Allow-Origin: *');
  3. header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');
  4. //主要为跨域CORS配置的两大基本信息,Origin和headers

也就是在header头里面这是允许访问的域名来源地址即可,比如在laravel作为框架的服务端的话,这段代码就可以放到laravel的中间件中。

4、Laravel,Yii,Tp框架的区别怎么说的更饱满?

考点分析

这个问题其实回答的时候最主要的还是要把这三个框架的特点都能够说清楚,然后能从中找出来区别,比较他们之间的优缺点,也没有必要非得说哪个框架好,那个框架不好,最终话题还是落到自己擅长的框架上,多说一些自己比较擅长的框架的特点。

参考答案

我在项目的开发中使用比较多的框架是laravel和tp,laravel主要用过5.25.5的版本,Tp主要使用的是3.2的版本

个人资源参考


添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注