《PHP学习网》公众号每天都会分享一些面试题,找工作的朋友可以看看。1.写一个函数获取一篇文章内容中的所有图片,下载函数download_images($article_url='',$image_path='tmp'){//获取文章内容$content=file_get_contents($文章网址);//使用正则表达式获取图片链接$reg_tag='//';$ret=preg_match_all($reg_tag,$content,$match_result);$pic_url_array=array_unique($match_result1[1]);//创建路径$dir=getcwd().DIRECTORY_SEPARATOR.$image_path;mkdir(iconv("UTF-8","GBK",$dir),0777,true);foreach($pic_url_arrayas$pic_url){//获取文件信息$ch=curl_init($pic_url);curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_NOBODY,0);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$fileInfo=curl_exec($ch);$http信息($ch);curl_close($ch);//获取图片文件后缀$ext=strrchr($pic_网址,'。');$文件名=$目录。'/'。唯一标识符()。$分机;//保存图像信息到文件$local_file=fopen($filename,'w');if(false!==$local_file){if(false!==fwrite($local_file,$filecontent)){fclose($local_file);}}}}第二,什么是CSRF攻击?跨站脚本攻击?如何预防?CSRF:跨站请求伪造,可以通过判断来源和添加Token来防止XSS:跨站脚本攻击,可以通过对内容进行转义和过滤来防止,还有CSP3.在应用中,我们经常会遇到在user表随机取出10条数据显示,简单介绍一下你是如何实现这个功能的。SELECT*FROM`table`WHEREid>=(SELECTFLOOR(MAX(id)*RAND())FROM`table`)ORDERBYidLIMIT1;四、MYSQL中主键和唯一索引的区别主键:不能为空值。唯一索引:可以有空值5。http和https的主要区别就在S上。简而言之,https连接建立后,首先要发送SSL证书,有了公钥和私钥,就可以解密了。6、两台mysql服务器,其中一台宕机,如何让业务端随意切换,保证podium服务器正常情况下数据一致。如果不是核心业务,先停止写入,拉起备机,查看一台机器的两个Log,进行数据补偿,开始写入。如果是核心业务,现在所有的写操作都在正常状态机上。拉起这台好机的备机,充当主机。以上均为紧急行动。事实上,数据库的容灾设计要复杂得多。如果面试官问你,备份机上的数据不一致怎么办,你要勇敢的回答,你每秒有多少次写操作。按照百万级表,每秒1000条的写入效率,正常设计是两台机器各分配500条。使用这种级别的数据同步,出现差异的可能性可以忽略不计。如果一个失败,另一个将生存。(正常操作,先停止写入,等待数据一致,切换,开始写入。我们公司在凌晨4:00左右做这些切换,核心业务每秒写操作只有十几次。前后不超过20秒)。7、有10瓶水,其中一瓶是有毒的,老鼠喝了毒水24小时后就会死。问:至少24小时后,用多少只老鼠可以找出哪瓶水有毒。答案:四个二进制问题。薛定谔的老鼠。一只老鼠有死和活两种状态,对应01。假设老鼠的数量是A,那么2^A>=10;A=4;思路很简单,十瓶药的数量:0,1,10,11....1001;0不要喝。第一只老鼠喝个位数:13579,第二只老鼠喝十位数一,第三只老鼠喝百位数,第四只老鼠喝千位一。24小时后,死亡为1,存活为0。乖乖按照老鼠的顺序站起来...如果第一个和第三个死了,那就是0101,也就是5有问题。最后大家可以扫描下方二维码关注我公众号,我目前正在更新基础面试题,稍后会更新中高级面试题,redis,liunx面试题