当前位置: 首页 > Linux

2020年10月php面试笔记

时间:2023-04-06 05:10:19 Linux

1.请说明PHP最新版本的版本号和新特性2.简单说明一下PHP的垃圾回收机制垃圾回收机制是一种动态存储分配方案。它会自动释放程序分配的不再需要的内存块。自动回收内存的过程称为垃圾回收。参考:PHP7垃圾回收机制解析3.列举大家熟悉的PHP框架,并说明框架的特点4.常见状态码,解释其含义5.解释:脏读,幻读,不可重复读,因为另一个事务在两次读取之间添加或删除数据。不可重复读:一个事务两次读取同一条记录,得到的结果不一致。进行了修改。补充:数据库事务的特点:ACID原子性(AAtomicity):事务是一个原子操作单元,事务中对数据库的操作要么执行,要么不执行。一致性(CConsistent):事务开始前和结束后,数据必须处于一致状态,必须保证数据库的完整性。即数据必须符合数据库的规则。隔离性(Iioslation):数据库允许多个并发事务同时对数据进行操作,事务之间相互独立,事务处理的中间状态对其他事务不可见,从而防止数据不一致。MySQL中有4个事务隔离级别,隔离级别由低到高:隔离级别越高越能保证数据的完整性和一致性,但对并发性能的影响也越大。读未提交(Readuncommitted)、读已提交(Readcommitted)、可重复读(Repeatableread)、可序列化(serializable)使用_select@@tx_isolation;_查看MySQL默认的事务隔离级别。不同的事务隔离级别会导致不同的问题:持久性(DDurable):事务结束后,它对数据库的修改是永久性的,即使系统出现故障也不会丢失。6.rsync命令详解及实际应用rsync是一个开源的、快速的、多功能的工具,可以实现本地或远程数据的全量和增量同步。适用于linux、unix、windows等多种操作系统平台。它可以作为文件复制工具来替代mv和cp。常用命令:1.rsync-avsourcedestination//除了递归同步,还可以同步元信息(如修改时间,权限等),2.如果目标目录destination不存在,rsync会自动创建它。执行以上命令后,3.将源目录source完整复制到目标目录destination中,即形成destination/source的目录结构。5、如果只想将源目录source中的内容同步到目标目录destination,需要在source目录后面加一个斜线。6.$rsync-asource/destination7.上述命令执行后,会将源目录下的内容复制到目标目录下。8.目标下不会创建源子目录。11、rsync除了支持本地两个目录同步外,还支持远程同步。它可以将本地内容同步到远程服务器。12.$rsync-avsource/username@remote_host:destination14.也可以将远程内容同步到本地。15.$rsync-avusername@remote_host:source/destination参考:rsync使用教程备份数据的重要性和rsync的基本使用功能,这个功能类似于ssh用scp命令,但是比scp命令的功能更好,scp每次都是全量拷贝,而rsync可以增量拷贝。2)rsync还可以在本地主机的不同分区或目录之间进行全量和增量复制数据,3)使用rsync还可以实现删除文件和目录的功能。等同于rm4)rsync等同于scp,cp.rm但优于它们的每一个命令。数据备份的方式是全量备份---会备份所有的数据,效率比较低。增量备份---只备份变化的数据,效率更高,适合异地备份rsync-avzP-e'ssh-i/home/vagrant/.ssh/new*vidat.pem'test2centos@18.*.*.34:/home/wwwroot/default/test//远程复制文件,相当于scp7。讲解APP与服务器的关系互通安全机制防非法调用——身份认证,防抓包——数据加密,防重放攻击——时间戳+随机串防篡改——签名机制HTTPS协议通信Token认证机制:防止恶意刷接口,可以反向查询调用者信息,封号或token失效Symmetricencryption:对称加密:对称加密是一种可逆的加密算法,这里的“对称”是指加密过程和解密过程使用相同的密钥,常见常见的对称加密算法有DES、3DES、AES、IDEA等对称加密算法的特点对称加密算法的特点是算法公开,计算量小,加密速度快,加密效率高。对称加密算法的安全性取决于密钥,任何人得到密钥都可以对数据进行加密和解密。由于参与通信的双方都需要持有密钥,如果任何一方的密钥泄露,双方的通信就会不安全,所以如何安全地保存和传递密钥是使用对称时最重要的问题加密。非对称加密:非对称加密是指在加密过程和解密过程中使用不同的密钥。非对称加密算法需要一对密钥(公钥和私钥)。公钥用于加密数据,私钥用于解密数据。常见的非对称加密算法有RSA、ECC、ElGamal等。非对称加密算法的特点非对称加密算法使用公钥加密,私钥解密。私钥不需要公开传输,安全性比较高。同时私钥可以对数据进行签名,公钥可以用来验证签名,可以解决中间人攻击和信息篡改等问题。由于加解密过程使用不同的密钥,对大量数据进行加解密的速度比较慢。通常,非对称加密算法只适用于少量数据的加密和解密。对称加密算法运算速度快但安全性不足,非对称加密算法安全性高但运算速度慢。那么我们可以将两者结合起来:使用对称加密算法对数据进行加解密以保证运算速度,使用非对称加密算法对对称加密算法的密钥进行加密可以兼顾密钥的安全性。Anti-replayattack:Anti-replayattack:拦截请求后,只需将请求原封不动地发送给服务器即可发起重放攻击。如果短时间内发起大量重放攻击,服务器会直接崩溃。我们只需要保证请求只能被正确处理一次即可。这里我们采用时间戳+随机字符串的方案。在请求中加入时间戳和随机字符串后,服务端收到请求后会先检查时间戳和随机字符串。验证随机字符串,只有验证通过才会执行正常的业务处理逻辑。参考:如何保证APP与服务器的通信安全8.svn与git的区别,列出常用的git命令,重点介绍git中merge与rebase的区别9.PHP写的快速排序的算法(1)快速排序算法是对冒泡算法的一种优化。他的思路是先拆分数组,将大元素值放入一个临时数组,将小元素值放入另一个临时数组(这个拆分点可以是数组中的任意一个元素值,一般使用第一个元素,即,$array[0]),然后继续将两个临时数组反复拆分,最后将小数组元素与大数组元素合并。这里用到了递归的思想。1.//快速排序2.functionquickSort($arr)3.{4.if(!isset($arr[1])){5.return$arr;6.}8.$mid=$arr[0];9.$leftArr=[];10.$rightArr=[];12.foreach($arras$value){13.if($value>$mid){14.$rightArr[]=$value;15.}17.if($value<$mid){18.$leftArr[]=$value;19.}20.}21.$leftArr=quickSort($leftArr);22.$leftArr[]=$mid;24.$rightArr=quickSort($rightArr);25.返回array_merge($leftArr,$rightArr);26.}28.$arr=[2,4,88,33,44,5];29.print_r(快速排序($arr));30.//Result:Array([0]=>2[1]=>4[2]=>5[3]=>33[4]=>44[5]=>88)10.用PHP来写一个算法判断一个整数是否为回文,考虑最低的CPU和内存占用11.使用装饰器模式写简单的代码,带有房产销售功能12.设计高并发场景下的CRM软件硬件架构