搜索
首页后端开发php教程中高级的php面试题

中高级的php面试题

May 18, 2018 pm 02:16 PM
php试题

这篇文章主要介绍了中高级的php面试题 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

相关推荐:《2019年PHP面试题大汇总(收藏)

1、给你四个坐标点,判断它们能不能组成一个矩形,如判断([0,0],[0,1],[1,1],[1,0])能组成一个矩形。

2、写一段代码判断单向链表中有没有形成环,如果形成环,请找出环的入口处,即P点

3、写一个函数,获取一篇文章内容中的全部图片,并下载

4、获取当前客户端的IP地址,并判断是否在(111.111.111.111,222.222.222.222)

5、nginx的log_format配置如下:
log_format main ‘remoteaddr−remote_user [timelocal]"request”’
‘statusbody_bytes_sent “httpreferer"″"http_user_agent” “upstreamresponsetime""request_time” “http_x_forwarded_for"';
从今天的nginx log文件 access.log中:

  • a、列出“request_time”最大的20行?

  • b、列出早上10点访问量做多的20个url地址?

6、什么是CSRF攻击?XSS攻击?如何防范?

7、应用中我们经常会遇到在user表随机调取10条数据来展示的情况,简述你如何实现该功能。

8、从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是连续的

9、两条相交的单向链表,如何求它们的第一个公共节点

10、最长公共子序列问题LCS,如有[1,2,5,11,32,15,77]和[99,32,15,5,1,77]两个数组,找到它们共同都拥有的数,写出时间复杂度最优的代码,不能用array_intersect(这里有坑,需要去研究一下动态规划)。

11、linux的内存分配和多线程原理

12、MYSQL中主键与唯一索引的区别

13、http与https的主要区别

14、http状态码及其含意

15、linux中怎么查看系统资源占用情况

16、SQL注入的原理是什么?如何防止SQL注入

17、isset(null) isset(false) empty(null) empty(false)输出

18、优化MYSQL的方法

19、数据库中的事务是什么?

20、写一个函数,尽可能高效的从一个标准URL中取出文件的扩展名

21、参数为多个日期时间的数组,返回离当前时间最近的那个时间

22、echo、print、print_r的区别

23、http协议的header中有哪些key及含义

24、二叉树前中后遍历代码

25、PHP的数组和C语言的数组结构上有何区别?

26、Redis的跳跃表怎么实现的

27、哈希是什么?hash冲突后,数据怎么存?

28、聚簇索引,聚集索引的区别?

29、B+Tree是怎么进行搜索的

30、数组和hash的区别是什么?

31、写个函数,判断下面扩号是否闭合,左右对称即为闭合: ((())),)(()),(()))),(((((()),(()()),()()

32、 找出数组中不重复的值[1,2,3,3,2,1,5]

33、32题你的时间复杂度是多少?有的情况下,你写了个算法,然后面试官会让你把你的算法的时间复杂度表达式写出来

34、PHP的的这种弱类型变量是怎么实现的?

35、在HTTP通讯过程中,是客户端还是服务端主动断开连接?

36、PHP中发起http请求有哪几种方式?它们有何区别?

37、有一颗二叉树,写代码找出来从根节点到flag节点的最短路径并打印出来,flag节点有多个。比如下图这个树中的6和14是flag节点,请写代码打印8、3、6 和 8、10、14两个路径

38、有两个文件文件,大小都超过了1G,一行一条数据,每行数据不超过500字节,两文件中有一部分内容是完全相同的,请写代码找到相同的行,并写到新文件中。PHP最大允许内内为255M。

39、请写出自少两个支持回调处理的PHP函数,并自己实现一个支持回调的PHP函数

40、请写出自少两个获取指定文件夹下所有文件的方法(代码或思路)。

41、请写出自少三种截取文件名后缀的方法或函数(PHP原生函数和自己实现函数均可)

42、PHP如何实现不用自带的cookie函数为客户端下发cookie。对于分布式系统,如何来保存session值。

43、请用SHELL统计5分钟内,nginx日志里访问最多的URL地址,对应的IP是哪些?

44、写一段shell脚本实现备份mysql指定库(如test)到指定文件夹并打包,并删除30天前的备份,然后将新的备份推送到远端服务器,完成后送邮件通知。

45、mysql数据库中innodb和myisam引擎的区别

46、从用户在浏览器中输入网址并回车,到看到完整的见面,中间都经历了哪些过程。

47、如何分析一条sql语句的性能。

48、ping一个服务器ping不通,用哪个命令跟踪路由包?
linux:traceroute,windows:tracert

49、$a=[0,1,2,3]; $b=[1,2,3,4,5]; $a+=$b; var_dump($a)等于多少?

50、$a=[1,2,3]; foreach($a as &$v){} foreach($a as $v){} var_dump($a)等于多少; 

51、数据库中的存放了用户ID,扣费很多行,redis中存放的是用户的钱包,现在要写一个脚本,将数据库中的扣费记录同步到redis中,每5分钟执行一次。请问要考虑哪些问题?

52、MYSQL主从服务器,如果主服务器是innodb引擎,从服务器是myisam引擎,在实际应用中,会遇到什么问题?

53、linux中进程信号有哪些?

54,redis的底层实现

55,异步模型

56,10g文件,用php查看它的行数

57,有10亿条订单数据,属于1000个司机的,请取出订单量前20的司机

58,设计一个微信红包的功能

59,根据access.log文件统计最近5秒的qps,并以如下格式显示,01 1000(难点在01序号)

60、php7性能为什么提升这么高

61、遍历一个多维数组

62、有这样一个字符串abcdefgkbcdefab......随机长度,写一个函数来求bcde在这个字符串中出现的次数

63、有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16个字节,内存限制大小是1M。返回频数最高的100个词

65,php进程模型,php怎么支持多个并发

66,nginx的进程模型,怎么支持多个并发

67,php-fpm各配置含义,fpm的daemonize模式
static - 子进程的数量是固定的(pm.max_children)
ondemand - 进程在有需求时才产生(当请求时,与 dynamic 相反,pm.start_servers 在服务启动时即启动
dynamic - 子进程的数量在下面配置的基础上动态设置:pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers

68、让你实现一个简单的架构,并保持高可用,两个接口,一个上传一条文本,一个获取上传的内容,你怎么来设计?要避免单机房故障,同时要让代码层面无感。

69、两台mysql服务器,其中一台挂了,怎么让业务端无感切换,并保证正常情况下讲台服务器的数据是一致的

70、http协议具体的定义

71、什么是锁,怎么解决锁的问题

72、rand与mt_rand的区别

73、mysql事务隔离是怎么实现的

74、mysql锁怎么实现的

75、对称加密和非对称加密的方式

76、10瓶水,其中一瓶有毒,喝完毒水会在23小时59分后毒发身亡,请在24小时内用最少的小白鼠找到这瓶水。

相关推荐:

PHP面试题的小结


以上是中高级的php面试题的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
使用数据库存储会话的优点是什么?使用数据库存储会话的优点是什么?Apr 24, 2025 am 12:16 AM

使用数据库存储会话的主要优势包括持久性、可扩展性和安全性。1.持久性:即使服务器重启,会话数据也能保持不变。2.可扩展性:适用于分布式系统,确保会话数据在多服务器间同步。3.安全性:数据库提供加密存储,保护敏感信息。

您如何在PHP中实现自定义会话处理?您如何在PHP中实现自定义会话处理?Apr 24, 2025 am 12:16 AM

在PHP中实现自定义会话处理可以通过实现SessionHandlerInterface接口来完成。具体步骤包括:1)创建实现SessionHandlerInterface的类,如CustomSessionHandler;2)重写接口中的方法(如open,close,read,write,destroy,gc)来定义会话数据的生命周期和存储方式;3)在PHP脚本中注册自定义会话处理器并启动会话。这样可以将数据存储在MySQL、Redis等介质中,提升性能、安全性和可扩展性。

什么是会话ID?什么是会话ID?Apr 24, 2025 am 12:13 AM

SessionID是网络应用程序中用来跟踪用户会话状态的机制。1.它是一个随机生成的字符串,用于在用户与服务器之间的多次交互中保持用户的身份信息。2.服务器生成并通过cookie或URL参数发送给客户端,帮助在用户的多次请求中识别和关联这些请求。3.生成通常使用随机算法保证唯一性和不可预测性。4.在实际开发中,可以使用内存数据库如Redis来存储session数据,提升性能和安全性。

您如何在无状态环境(例如API)中处理会议?您如何在无状态环境(例如API)中处理会议?Apr 24, 2025 am 12:12 AM

在无状态环境如API中管理会话可以通过使用JWT或cookies来实现。1.JWT适合无状态和可扩展性,但大数据时体积大。2.Cookies更传统且易实现,但需谨慎配置以确保安全性。

您如何防止与会议有关的跨站点脚本(XSS)攻击?您如何防止与会议有关的跨站点脚本(XSS)攻击?Apr 23, 2025 am 12:16 AM

要保护应用免受与会话相关的XSS攻击,需采取以下措施:1.设置HttpOnly和Secure标志保护会话cookie。2.对所有用户输入进行输出编码。3.实施内容安全策略(CSP)限制脚本来源。通过这些策略,可以有效防护会话相关的XSS攻击,确保用户数据安全。

您如何优化PHP会话性能?您如何优化PHP会话性能?Apr 23, 2025 am 12:13 AM

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显着提升应用在高并发环境下的效率。

什么是session.gc_maxlifetime配置设置?什么是session.gc_maxlifetime配置设置?Apr 23, 2025 am 12:10 AM

thesession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceIsiseededeedeedeedeedeedeedto to to avoidperformance andununununununexpectedLogOgouts.3)

您如何在PHP中配置会话名?您如何在PHP中配置会话名?Apr 23, 2025 am 12:08 AM

在PHP中,可以使用session_name()函数配置会话名称。具体步骤如下:1.使用session_name()函数设置会话名称,例如session_name("my_session")。2.在设置会话名称后,调用session_start()启动会话。配置会话名称可以避免多应用间的会话数据冲突,并增强安全性,但需注意会话名称的唯一性、安全性、长度和设置时机。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)