当前位置:首页 » 编程语言 » php机试题

php机试题

发布时间: 2024-04-16 09:04:20

‘壹’ php中高级面试题 – 第一天

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

二、什么是 CSRF 攻击?XSS 攻击?如何防范?
CSRF:跨站请求伪造,可以通过通过判断来源和加 Token 的方式来防范。

XSS:跨站脚本攻击,可以通过对内容转义和过滤来防范,还有 CSP

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

四、MYsql 中主键与唯一索引的区别

主键:绝对不能有空值。唯一索引:可以有空值

五、http 与 https 的主要区别

关键是 S 上。简而言之,https 建立连接后要先把 SSL 的证书发下去,有了公钥和私钥,就可以解密了。

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

不是核心业务的话,先停写,把备机拉起来,查看两台机器的日志,进行数据补偿,开写。

如果是核心业务的话,现在所有的操作都在正常的状态机器上。把好的这台机器的备机拉起来,当主机。

以上全是应急操作。实际上数据库的容灾设计要复杂得多。

面试官要是问你,备机的数据不一致怎么办,你要勇敢怼回去,你们每秒多少写入操作。按照百万级表,每秒 1000 的写入效率,正常的设计是,分布在 2 台机器上每台 500。这个级别的数据同步,出现差异的概率 可以忽略不计的。有一台出现问题,另一台也可以抗住。

(正常的操作,还是先停写,等数据一致,切换,开写。我们公司搞这些切换都是在凌晨 4.00 左右,核心业务的每秒写操作,只有十几个。前后耽搁不到 20 秒)。

七、10 瓶水,其中一瓶有毒,小白鼠喝完有毒的水之后,会在 24 小时后死亡,问:最少用几只小白鼠可以在 24 小时后找到具体是哪一瓶水有毒。

答案:四只
二进制问题。薛定谔的老鼠。

一只老鼠有两个状态,死活,对应 01。假设老鼠的个数为 A,则有 2^A>=10; A=4;

思路很简单,十瓶药编号:0,1,10,11….1001;

0 不喝。第一只老鼠喝所有个位是 1 的:13579,第二只喝十位是 1 的,第三只和百位是 1 的,第四只喝千位是 1 的。

24 小时后,看下死了的是 1,活着的是 0。按老鼠的顺序乖乖站好…… 假如第一只和第三只死了,那就是 0101,就是 5 有问题。

‘贰’ 程序员面试必备PHP基础面试题 – 第十三天

一、在HTTP1.0中,状态吗500的含义的是什么?如果返回“找不到文件”的提示,则可用header(函数),其语句为?

500 Internal Server Error 服务器遇到了意料不到的情况,不能完成客户的请求
Header(“ HTTP/1.0 404 NOT FOUND”);

二、数组函数arsort()的作用是什么?语句err_reporting(2047)的作用是什么?

arsort:对数组进行逆向排序并保持索引关系;
error_reporting(2047)的作用是:report All errors and warnings

三、语句include和require都能把另外一个文件包含到当前文件中,它们的区别是___;为避免多此包含同一个文件,可以用语句_____来代替它们。

在如何处理失败时,include() 产生一个警告而 require() 则导致一个致命错误; require_once()/include_once()

四、get_magic_quotes_gpc的作用是_______

本函数取得 PHP 环境配置的变量 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。返回 0 表示关闭本功能;返回 1 表示本功能打开。当 magic_quotes_gpc 打开时,所有的 ‘ (单引号), ” (双引号), (反斜线) and 空字符会自动转为含有反斜线的溢出字符。

五、在php中, heredoc是一种特殊的字符串, 他的结束标志必须是_____

结束标识符所在的行不能包含任何其它字符除”;”

六、写出一个正则表达式, 把$string中的所有数字全部删除

preg_replace(‘/d/U’,’’,$string);

七、找出/data1/source 目录中大于100k 的文件, 并复制到 ~/tmp/35/下

find /data1/source +size >100k | cp ~/temp/35/

八、perl –pi –e ‘s|ABCD|linux|g’ `find ./ -type f`的含义是

find ./-type f:找寻当前目录下的类型为f的文件

九、10 2 * * * /data0/apache/schele/ussd/topnews/import_data.pl > /dev/null 的含义:_______将import_data.pl清空或删除

十、rsync -avu 105903.zip 218.206.86.68::mmsres/resource/291/205的含义:_________备份数据用

-a 归档模式,递归传输文件;
-v 详细模式输出;
-u, –update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)

十一、写出x,y的值

十二、使用纯CSS实现未知寸的图片(但高度都小于200px) 在200px的正方形容器中水平和垂直居中,HTML代码如下

‘叁’ PHP中高级面试题 – 第三天

一、简述一下MongoDB的应用场景

mongodb 支持副本集、索引、自动分片,可以保证较高的性能和可用性。

更高的写入负载

默认情况下,MongoDB 更侧重高数据写入性能,而非事务安全,MongoDB 很适合业务系统中有大量 “低价值” 数据的场景。但是应当避免在高事务安全性的系统中使用 MongoDB,除非能从架构设计上保证事务安全。

高可用性

MongoDB 的复副集 (Master-Slave) 配置非常简洁方便,此外,MongoDB 可以快速响应的处理单节点故障,自动、安全地完成故障转移。这些特性使得 MongoDB 能在一个相对不稳定(如云主机)的环境中,保持高可用性。

数据量很大或者未来会变得很大

依赖数据库 (MySQL) 自身的特性,完成数据的扩展是较困难的事,在 MySQL 中,当一个单达表到 5-10GB 时会出现明显的性能降级,此时需要通过数据的水平和垂直拆分、库的拆分完成扩展,使用 MySQL 通常需要借助驱动层或代理层完成这类需求。而 MongoDB 内建了多种数据分片的特性,可以很好地适应大数据量的需求。

基于位置的数据查询

MongoDB 支持二维空间索引,因此可以快速及精确地从指定位置获取数据。

表结构不明确

在一些传统 RDBMS 中,增加一个字段会锁住整个数据库 / 表,或者在执行一个重负载的请求时会明显造成其它请求的性能降级。通常发生在数据表大于 1G 的时候(当大于 1TB 时更甚)。 因 MongoDB 是文档型数据库,为非结构货的文档增加一个新字段是很快速的操作,并且不会影响到已有数据。另外一个好处当业务数据发生变化时,是将不再需要由 DBA 修改表结构。

二、数据库设计经验,为什么进行分表?分库?一般多少数据量开始分表?分库?分库分表的目的?

1、为什么要分表

当一张表的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。

分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率。数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大;另外,由于无法进行分布式式部署,而一台服务器的资源(CPU、磁盘、内存、IO 等)是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。

2、分表的方案

做 mysql 集群,有人会问 mysql 集群,根分表有什么关系吗?虽然它不是实际意义上的分表,但是它启到了分表的作用,做集群的意义是什么呢?为一个数据库减轻负担,说白了就是减少 sql 排队队列中的 sql 的数量,举个例子:有 10 个 sql 请求,如果放在一个数据库服务器的排队队列中,他要等很长时间,如果把这 10 个 sql 请求,分配到 5 个数据库服务器的排队队列中,一个数据库服务器的队列中只有 2 个,这样等待时间是不是大大的缩短了呢?

linux mysql proxy 的安装,配置,以及读写分离

mysql replication 互为主从的安装及配置,以及数据同步

优点:扩展性好,没有多个分表后的复杂操作(php 代码)

缺点:单个表的数据量还是没有变,一次操作所花的时间还是那么多,硬件开销大。

三、简述一下数据库主从复制,读写分离

* 什么是主从复制
主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;

* 主从复制的原理:
1.数据库有个bin-log二进制文件,记录了所有的sql语句。
2.只需要把主数据库的bin-log文件中的sql语句复制。
3.让其从数据的relay-log重做日志文件中再执行一次这些sql语句即可。

* 主从复制的作用
1.做数据的热备份,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。
2.架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问频率,提高单机的I/O性能
3.主从复制是读写分离的基础,使数据库能制成更大 的并发。例如子报表中,由于部署报表的sql语句十分慢,导致锁表,影响前台的服务。如果前台服务使用master,报表使用slave,那么报表sql将不会造成前台所,保证了前台的访问速度。

* 主从复制的几种方式:
1.同步复制:所谓的同步复制,意思是master的变化,必须等待slave-1,slave-2,…,slave-n完成后才能返回。
2.异步复制:如同AJAX请求一样。master只需要完成自己的数据库操作即可。至于slaves是否收到二进制日志,是否完成操作,不用关心。MYSQL的默认设置。
3.半同步复制:master只保证slaves中的一个操作成功,就返回,其他slave不管。
这个功能,是由google为MYSQL引入的。

* 关于读写分离
在完成主从复制时,由于slave是需要同步master的。所以对于insert/delete/update这些更新数据库的操作,应该在master中完成。而select的查询操作,则落下到slave中。

‘肆’ php第八章测试题求解

一、单选题(每题3分)
第1题 javaScript脚本语言的前身是
A.Basic
B.Live Script
C.Oak
D.VBScript

第2题 使用CSS对文本进行修饰,若使文本闪烁,text-decoration的取值为
A.none B.underline C.overline D.blink

第3题 XML基于的标准是
A.HTML B.MIME C.SGML D.CGI

第4题 标记符title是放在标记符什么之间的
A.html与html
B.head与head
C.body与body
D.head与body

第5题 <img>标记符中连接图片的参数是:
A. href B. src C. type D. align

第6题 级联样式表文件的扩展名是:
A html B css C xml D dib

第7题 同以往的版本相比较,HTML4.0:
A 增加了JavaScript支持
B 增加了Flash技术
C 增强了网页的动态性
D 增加了ActiveX技术

‘伍’ 腾讯php面试题

腾讯php面试题

php程序员一般会遇到的面试题:

1. 基本知识点

HTTP协议中几个状态码的含义:503 500 401 200 301 302

Include require include_once require_once 的区别.

PHP/Mysql中几个版本的进化史,比如mysql4.0到4.1,PHP 4.x到5.1的重大改进等。

HEREDOC介绍

写出一些php魔幻方法;

一些编译php时的configure 参数

向php传入参数的两种方法。

(mysql)请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别;

error_reporting 等调试函数使用

您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?

posix和perl标准的正则表达式区别;

Safe_mode 打开后哪些地方受限.

写代码来解决多进程/线程同时读写一个文件的问题。

写一段上传文件的代码。

Mysql 的存储引擎,myisam和innodb的区别。

2. web 架构,安全,项目经验

介绍xdebug,apc,eAccelerator,Xcache,Zend opt的使用经验。

使用mod_rewrite,在服务器上没有/archivers/567.html这个物理文件时,重定向到index.php?id=567 ,请先打开mod_rewrite.

MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?

写出一种排序算法(原理),并说出优化它的方法。

请简单阐述您最得意的开发之作

对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题

您是否用过模板引擎? 如果有您用的模板引擎的名字是?

请介绍Session的原理,大型网站中Session方面应注意什么?

测试php性能和mysql数据库性能的工具,和找出瓶颈的方法。

正则提出一个网页中的'所有链接.

介绍一下常见的SSO(单点登陆)方案(比如dedecms整合discuz的passport)的原理。

您写过的PHP框架的特点,主要解决什么问题,与其他框架的不同点。

大型的论坛/新闻文章系统/SNS网站在性能优化上有什么区别?

相册类应用:要求在浏览器中能同时选中并上传多个文件,图片要求能剪裁,压缩包在服务器端解压。能上传单个达50M的文件。上传过程中有进度条显示。每个图片能生成四种大小缩略图,视频文件要转成flv供flash播放。叙述要涉及的各类开源软件和简单用途。

一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。用程序模拟该过程。

3. unix/linux 基本使用

linux下查看当前系统负载信息的一些方法。

vim的基本快捷键。

ssh 安全增强方法;密码方式和rsa key 方式的配置。

rpm/apt/yum/ports 装包,查询,删除的基本命令。

Makefile的基本格式,gcc 编译,连接的命令,-O0 和-O3区别。

gdb,strace,valgrind的基本使用.

4. 前端,HTML,JS

css盒模型。

javascript中的prototype。

javascript中this对象的作用域。

IE和firefox事件冒泡的不同。

什么是怪异模式,标准模式,近标准模式。

DTD的定义

IE/firefox常用hack.

firefox,IE下的前端js/css调试工具。

;
热点内容
淘宝帐号怎么改密码 发布:2024-11-28 07:46:05 浏览:11
监控未配置怎么办视频 发布:2024-11-28 07:44:41 浏览:501
android获取手机的ip 发布:2024-11-28 07:42:13 浏览:170
python打开文件窗口 发布:2024-11-28 07:36:13 浏览:555
cpu二级缓存的作用 发布:2024-11-28 07:36:12 浏览:1001
net数据库控件 发布:2024-11-28 07:32:58 浏览:99
我的世界国际服创建服务器pc 发布:2024-11-28 07:20:53 浏览:773
编译原理LR分析法pdf 发布:2024-11-28 07:17:41 浏览:264
安卓光遇版本怎么看 发布:2024-11-28 06:29:52 浏览:871
oraclesql加密 发布:2024-11-28 06:29:15 浏览:901