近期面试总结(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来 ...
随机推荐
- 福州大学软工 1715 | K 班 - 启航
福州大学软工 1715 | K 班 - 启航 愉快的暑假已经接近尾声了,我猜很多同学的暑假都过得轻松,毕竟是夏天(空调/WiFi/西瓜).不过呢,暑假期间的老师.助教们可没有闲着,都在为接下来的软工实 ...
- 201521123111《Java程序设计》第13周学习总结
本次作业参考文件 正则表达式参考资料 1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.bai ...
- Spring - bean的autowire属性(自动装配)
当我们要往一个bean的某个属性里注入另外一个bean,我们会使用<property> + <ref/>标签的形式.但是对于大型项目,假设有一个bean A被多个bean引用注 ...
- 我和Python
记不得是年,我在网易云课堂上乱逛,看到了哈佛大学的<计算机编程导论>,这门课讲的正好是Python,讲的啥内容已经记不得多少了,因为是全英文教学,我只能慢慢的看字幕,一集得看个好几遍. 我 ...
- 传统编程和IoC的对比
ref:http://www.importnew.com/13619.html 传统编程:决定使用哪个具体的实现类的控制权在调用类本身,在编译阶段就确定了. IoC模式:调用类只依赖接口,而不依赖具体 ...
- angular directive自定义指令
先来看一下自定义指令的写法 app.directive('', ['', function(){ // Runs during compile return { // name: '', // pri ...
- Java数据库 高级查询
插入数据记录 1.插入单行数据 语法: INSERT INTO 表名 [(字段名列表)] VALUES (值列表); 2.插入多行数据 语法:INSERT INTO 新表 (字段名列表) VALUE ...
- mxnet的训练过程——从python到C++
mxnet的训练过程--从python到C++ mxnet(github-mxnet)的python接口相当完善,我们可以完全不看C++的代码就能直接训练模型,如果我们要学习它的C++的代码,从pyt ...
- 通过express搭建自己的服务器
前言 为了模拟项目上线,我们就需要一个服务器去提供API给我们调用数据.这次我采用express框架去写API接口.所有请求都是通过ajax请求去请求服务器来返回数据.第一次用node写后端,基本就是 ...
- Variational Bayes
一.前言 变分贝叶斯方法最早由Matthew J.Beal在他的博士论文<Variational Algorithms for Approximate Bayesian Inference> ...