近期面试总结(PHP后端开发工程师)(部分笔试题)
1.字符串"0"在PHP和js中转换为布尔值是false还是true
php:false; php 弱语言 '0'和0一样;
js:true;字符串除了空字符串('')其他都是true(包括' ' 这种中间有空格的);
2. echo,print_r ,print,var_dump 区别
echo:语句结构;
print:是函数,有返回值
print_r:能打印数组,对象
var_dump:能打印对象数组,并且带数据类型
3.如何获取客户端的IP(要求取得一个int)和服务器端的IP的代码
$ip = $_SERVER["REMOTE_ADDR"]; 或者:getenv('REMOTE_ADDR');
转化为int $intIP = ip2long($ip);
$_SERVER["SERVER_ADDR"];
gethostbyname('www.baidu.com');
4. mysql联合索引index_a_b_c(a,b,c) charset=utf8,a int(10),b varchar(10),c tinyint(1),问条件where a = 5 and c = 1用到的索引长度。
索引长度:4+1 = 5 (用到a,c)
where a=5 and b = "hahah";
索引长度:4+10*3+2 = 36 (用到a,b)
5.json和jsonp的区别,什么时候用。
jsonp 跨域请求
6.写出点击一个div出现相应的序号的js
7.session和cookie的区别和联系
8.PHP实现遍历出文件夹和他下面子文件的代码
1. <?php
2. $dir = '/Users/zhaoning/Desktop/算法';
3.
4. function getAllFile($dir){
5. $allFileArr = array();
6. if (is_dir($dir)) {
7. $res = opendir($dir);
8. while ($row = readdir($res)) {
9. if ($row == '.' || $row == '..') {
10. continue;
11. }
12. if (is_file($dir.'/'.$row)) {
13. $allFileArr[] = $row;
14. }else if (is_dir($dir.'/'.$row)) {
15. $allFileArr[$row] = getAllFile($dir.'/'.$row);
16. }
17. }
18. closedir($res);
19. }
20. return $allFileArr;
21. }
22. var_dump(getAllFile($dir));
23. ?>
9.写出匹配html标签的而不匹配div span img的正则表达式
10.写出下面正则表达式的含义
$ ^ [^] ? ?:
11.PHP中this和self的区别
this:对象
self:类
12.如何防止SQL注入,XSS攻击和CSRF攻击
SQL注入:mysqli_real_escape_string()转义关键字符;
XSS攻击:alert把一些cookie信息打印出来;过滤掉<>等关键字符串
CSRF攻击:跨站攻击。防止:token,验证码
13.Linux的命令:查找出文件名后缀是.txt的,内容包含delete的文件,并删除
1. find / -name "*.txt" | xargs -n1 -I(这是i) 'xxx' grep -l(这是L) 'delete' 'xxx' | xargs -n1 -I 'zzz' rm -f 'zzz'
14.PHP解决多进程读写一个文件的方法
1. function putFile($file,$mode="w"){
2. $file = fopen($file,$mode);
3. if(flock($file,LOCK_EX)){
4. fwrite($file,'write a word');
5. flock($file,LOCK_UN);
6. }else{
7. echo "无法访问";
8. }
9. fclose($file);
10. }
15.数据库表的引擎有哪几种?区别和场景
MyISAM:多用于select
Innodb:事务
memory:内存中,存储快
merge:用于日志和数据仓库
archive:用于日志,只有select和insert,不支持索引。
16.nginx和PHP的工作原理
17.ES连接PHP的扩展叫什么名字
elasticsearch
18.调用接口需要什么,签名怎么生成的,登陆接口的实现
签名:( token + 时间戳 ) 加密 = sign
19.接口返回包含哪几部分。
1. {
2. code:
3. msg:
4. data:{}
5. }
1.不知道什么的英文
2.PHP错误种类.
3.var_dump(0123==123);var_dump('0123'==123); false true
4.36个人,6个赛道,没有秒表,比赛多少次能够得出前三名?
5.正方形四个角有四个虫子,虫子沿边走,问:虫子相遇(两个碰头)的概率是多少?
6.A去买水果3.5斤共14元,给老板B 20 元 ,B没零钱,找隔壁C换20元,回来后找A 6元,C发现这个钱是假的,找B,B又给C 20 元。问:B一共亏了多少钱。
7.快排
8.同一个ip,10分钟能只能访问5次
9.设计微博粉丝互粉,用户1亿。
问答:
http协议包含几部分。
接口是怎么实现的。
token 是怎么生成的。
你知道哪些加密。
如何防止http包的数据篡改。比如说转账10块,http包被劫,改成100块了。
针对有项目经验的面试梳理:
1.自我介绍。
在哪工作,多长时间。做了什么东西,项目背景,用到的技术,负责什么工作。
答案:之前在滴滴打车工作,工作半年多。参加的项目有谷雨移动和司机帮。谷雨移动是(移动端)为汽车租赁公司提供管理旗下快车的软件。主要用的PHP+redis+ES。我主要负责服务分和各项报表的查询和汇总。司机帮主要是面向快车司机的,司机能够查看自己的流水和服务分,服务时长等各项数据。我主要负责服务分的排名。
问:redis起什么作用?
减少访问es的次数
懒加载(访问redis没有数据,然后去查ES,把结果导入数据redis里面)有什么弊端?
数据不同步的问题。
怎么解决数据不同步?
1.把懒加载换成定时跑数据。
2.从ES里面读取近期是否有数据变化,如果有从新读取ES。没有的话在还用原来的redis里面的数据。
2.apache和nginx的区别
工作模式:
apache 有两种模式perfork,worker模式
perfork:
worker:
nginx的epoll和select:
epoll:模式单线程异步非阻塞。
select:选择性的
3.Innodb和My ISAM的区别
MyISAM:
支持全文索引,
不支持事务。
存储结构:三个文件,一个数据文件,一个索引文件,一个表文件。
表级别的锁。
Innodb:
不支持全文索引,
支持事务。
存储结构:所有表同一个文件。
行级别的锁。
4.hash索引和b+tree索引的区别
近期面试总结(PHP后端开发工程师)(部分笔试题)的更多相关文章
- Java后端开发工程师是否该转大数据开发?
撰写我对java后端开发工程师选择方向的想法,写给在java后端选择转方向的人 背景 看到一些java开发工程师,对java后端薪酬太悲观了.认为换去大数据领域就会高工资.觉得java后端没有前途.我 ...
- 希望各位博友能对我的自我介绍提出意见(要面试IBM的应用开发工程师,本科应届生一枚)
面试官你好,首先我非常高兴能参加今天的面试. 我叫XXX(我名字里面有光宗耀祖),也许父母希望我光宗耀祖吧,所以给我起这样的名字.我的家乡山西太原,本科就读于XX大学,专业是信息与计算科学. 我今天要 ...
- 面试乐融集团Python开发工程师有感
这是笔者第一次面试,,乐融集团位于朝阳区朝阳公园的乐融大厦.是下午两点的笔面试,笔者是一点半到的,然后在里面等了会,开始笔试 笔试题并不是太难,就是考的比较宽,因为笔者是校招,所以笔试题出来了数据结构 ...
- python后端开发工程师考证试题
python开发工程师考证试题 问答题链接 python开发工程师考证试题 选择题 题目 关于 Python 程序格式框架的描述,以下选项中错误的是 ( A ) A: Python 语言不采用严格的“ ...
- 【转】2012年7月12 – 腾讯公司 WEB高级应用开发工程师 最新面试题
腾讯面试(WEB高级应用开发工程师<PHP>)非答案啊!!! 开始正题之前,容博主啰嗦两句吧,呵呵.(你也可跳过直接到红色字体看题!) 腾讯一直是我很敬重的企业,尽管小企鹅在战略上饱受争议 ...
- 面试 Java 高级后端开发,要准备哪些知识点?
其实公司肯花时间让你去面试,前提条件一定是通过你的简历,一定发现了你和公司的匹配点,也就是说,一定是有录用意向的. 在技术面试的时间段里(最长1个小时),你如果能展现你的优势那是最好的,但如果你做不到 ...
- 2012年7月12 – 腾讯公司 WEB高级应用开发工程师 最新面试题 [转]
笔试(45 minute):(本来是四张纸,被我弄丢了一张!无伤大雅,难度级别不会有出入) 注意:由于时间紧迫和水平有限,难免有不足或错误,请指证,虚心学习! [PHP] 写出PHP中至少5个全局变量 ...
- Java开发工程师最新面试题库系列——Web部分(附答案)
WEB 如果你有更好的想法请在评论区留下您的答案,一起交流讨论 http和https有什么区别? 答:http是超文本传输协议,默认端口是80.https是安全的默认端口是443:http是明文传输, ...
- 高级iOS开发工程师的面试题
1:CALayer与UIView的区别是什么? 两者最大的区别就是:涂层不会直接渲染到屏幕上: UIView是iOS界面元素的基础,所有界面元素都是继承于它,他的本身全是由CoreAnimation来 ...
随机推荐
- 【Beta】阶段 第三次Daily Scrum Meeting
每日任务 ·1.本次会议为第三次 Meeting 会议 ·2.本次会议在周三上午9:40召开,会议时间为10分钟 一.今日站立式会议照片 二.每个人的工作(有work item的ID) 三.工作中遇到 ...
- Coding使用方法
首先在码市coding.net上创建账号 基础配置 1. 首先,下载安装git客户端和tortoisegit(就是小乌龟,本地右键使用的,跟SVN一样的那个小乌龟). git下载官网:https:// ...
- Android事件机制
一句话描述: 用户和程序之间的互动机制 什么是事件? 用户和程序交互时触发的程序操作. 只要是事件,必须具备三方面: 1 事件的发生者 2 事件接受者 3 事件触发和传递 事件处理的方法 观察者模式: ...
- 201521123066 《Java程序设计》第十周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 有关异常的知识点: 一段代码可能生成多种类型的异常,子类异常必须放在父类异常前面,否则会出现编译错误: 可以 ...
- Python爬虫2----------运用代理访问
为request添加一个代理,及将浏览器头部信息加入,随机从ip列表中拿出一个ip进行访问 注意函数参数的形式,如request.proxyhandler(协议,地址) import urllib.r ...
- Vuforia开发完全指南---License Manager和Target Manager详解
License Manager和Target Manager License Manager 对于每一个用Vuforia开发的AR程序来说,都有一个唯一的license key,在Unity中必须首先 ...
- uvalive 7500 Boxes and Balls
https://vjudge.net/problem/UVALive-7500 题意: 找到规律之后发现给出一个数n,要求找到1 + 2i + ... + x <= n,找出1到x的和. 思路: ...
- netty4.x 传输文件
一:简介 netty传输文件的例子并不多,当前的项目刚才需要使用netty,所以就记录一下使用方法,使用netty传输文件,首先需要启动一个服务端,等待服务端请求监听,然后传输文件的时候,启动一个客户 ...
- 探索Java NIO
什么是NIO? java.nio全称java non-blocking IO,是指jdk1.4 及以上版本里提供的新api(New IO),NIO提供了与标准IO不同的IO工作方式. 核心部分: Ch ...
- 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest, qualification stage (Online Mirror, ACM-ICPC Rules, Teams Preferred)
题目链接:http://codeforces.com/problemset/problem/847/I I. Noise Level time limit per test 5 seconds mem ...