PHP面试题学习
PHP 开发工程师笔试试卷 姓名 :__________ 第一部分为必答题,第二、三部分任选其一回答 一、 PHP 开发部分 1.合并两个数组有几种方式,试比较它们的异同。 2.请写一个函数来检查用户提交的数据是否为整数(不区分数据类型,可以为二进制、八进制、十进制、十六进制数字)。 3PHP的strtolower()和strtoupper()函数在安装非中文系统的服务器下可能会导致将汉字转换为乱码,请写两个替代的函数实现兼容Unicode文字的字符串大小写转换 4PHP的is_writeable()函数存在Bug,无法准确判断一个目录文件是否可写,请写一个函数来判断目录文件是否绝对可写 5PHP的chmod()函数存在Bug,无法保证设置成功,请写一个函数在指定路径下创建一个目录/文件并确保可以正确设置权限掩码 PHP 处理上传文件信息数组中的文件类型 $_FILES['type'] 由客户端浏览器提供,有可能 是黑客伪造的信息,请写一个函数来确保用户上传的图像文件类型真实可靠 7 . PHP 通过对数据的 URL 编码来实现与 Javascript 的数据交互,但是对于部分特殊字符的 编解码与 Javascript 的规则不尽相同, 请具体说明这种差异, 并针对 UTF-8 字符集的数据, 写出 PHP 的编解码函数和 Javascript 的编解码函数, 确保 PHP 编码数据可以被 Javascript 正确解码 、 Javascript 编码的数据可以被 PHP 正确解码 8 .试阐述 Memcache 的 key 多节点分布的算法?当任一节点出现故障时 PHP 的 Memcache 客 户端将如何处置?如何确保 Memcache 数据读写操作的原子性? 9 .如何实现 PHP 的安全最大化?怎样避免 SQL 注入漏洞和 XSS 跨站脚本攻击漏洞? 10 .请设计一个数据结构可以实现无限级子菜单的树型菜单功能并提供菜单生成算法,用 UML 描述设计并写出相关 PHP 代码 二、系统相关部分 1 .请简述 Linux 、 FreeBSD 、 Soalaris 、 Mac OS 、 Windows 几种系统下进程与线程的内核实 现方式、管理机制的异同 2 .请简述 Linux/BSD 系统下进程间通讯的方式有哪些,并具体说明在 PHP 下如何实现 3 .请简述 Linux/BSD 系统下系统的消息 / 事件异步通知机制有几种,并加以比较 4 .简单比较 TCP/UDP 协议的异同,对于 PHP 的 Socket 扩展与 Stream 扩展,试比较两者基 于 TCP/UDP 协议的 SOCKET 编程差异? 5 .为什么会出现僵死进程(孤儿进程)?怎样查看僵死进程?如何解决僵死进程问题? 6 .对于 System-V 消息队列,如何解决系统本身对于消息队列条数、总容量(字节数)的限 制?如何设置消息的优先级别?请比较阻塞模式和非阻塞模式的异同, 并说明如何避免非阻 塞模式下的消息队列堵塞? 7 .请描述 Apache 2.x 版本的 MPM ( Multi-Processing Module )机制,并具体说明在不同 的 MPM 机制下如何支持 PHP ? 8 .请简述 PHP 在 Apache 下的几种运行方式并加以比较?如何让 PHP 在 Linux+Apache 下以 Fast CGI 方式运行? 9 . 请写出让 PHP 能够在命令行下以脚本方式执行时安装 PHP 所必须指定的 configure 参数, 并说明如何在命令行下运行 PHP 脚本(写出两种方式)同时向 PHP 脚本传递参数? 10 .请简述 PHP 5.2 的内存池及其内存管理机制、垃圾回收机制 三、 WEB 相关部分 1 .请比较说明 HTML 与 XHTML 过渡标准、严格标准之间的区别,指出具体的标签差异 2 . Javascript 脚本如何实现和页面其它资源并发下载、 避免阻塞?请列举 3-5 种 Javascript 脚本并发加载的实现方式,并比较异同和优劣 3 . Yahoo 的 Web 优化 34 条原则是什么? 4 .请说明 HTTP 状态码 200 , 302 , 304 以及 cache 所代表的含义,以及在 Web 优化上的作用 5 .请具体说明 IE 、 FireFox 、 Safari 、 Opera 四种浏览器对于 JS 事件处理机制的差异,并 写出能够多浏览器支持的 JS 事件处理代码 6 .请简述 MySQL3.23 、 4.0 、 4.1 、 5.0 、 5.1 、 6.0 这些主要版本之间的差异,并说明如何实 现数据库升级并确保数据安全、数据格式和字符集编码正确? 7 .使用 PHP 写出 MySQL 预查询、事务处理、存储过程、触发器、视图实现方式及适用场合 8 .请比较 MySQL 各种数据表类型,并说明各自的用法和限制 9 .请列举 MySQL 各种定长和变长字段类型,并说明其存储数据的长度限制、占用字节数 10 .请说明 MySQL 主从镜像、 Cluster 这两种集群的不同实现方式及各自的数据同步原理, 并比较两种集群方式的优缺点
PHP面试题学习的更多相关文章
- 2010年腾讯前端面试题学习(jquery,html,css部分)
看了牛人写的回忆文章,里面有2010年腾讯的前端面试题,里面涉及到不少基础性的问题,js部分已学习,这是jquery,html和css部分,学习一下:) 原文地址:https://segmentfau ...
- 2010年腾讯前端面试题学习(js部分)
看了牛人写的回忆文章,里面有2010年腾讯的前端面试题,里面涉及到不少基础性的问题,学习一下:) 原文地址:https://segmentfault.com/a/1190000012998107 js ...
- 通过面试题学习零散知识:Java面试题整理
一.如何看待面试题 对于喜欢学习的开发者来说,我们抛开工作和生活的时间,剩余的时间并不多,如果都用于学习的话,也不可能学的下所有感兴趣的技术点,精力也跟不上,我是深感如是.而面试题一般都是零碎的知识 ...
- 海量数据处理面试题学习zz
来吧骚年,看看海量数据处理方面的面试题吧. 原文:(Link, 其实引自这里 Link, 而这个又是 Link 的总结) 另外还有一个系列,挺好的:http://blog.csdn.net/v_jul ...
- [js高手之路]javascript腾讯面试题学习封装一个简易的异步队列
这道js的面试题,是这样的,页面上有一个按钮,一个ul,点击按钮的时候,每隔1秒钟向ul的后面追加一个li, 一共追加10个,li的内容从0开始技术( 0, 1, 2, ....9 ),首先我们用闭包 ...
- Android常见面试题学习第二天(原创)
61. Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 DVM指Dalvik的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik ...
- Python 面试题学习
Python的函数参数传递 在Python中,strings,tuples=('abc',123,2.2,'join),numbers 是不可更改的对象. list=['abc',123,2.23,' ...
- Android常见面试题学习第一天(原创)
1. 内存泄漏 在android程序开发中,当一个对象已经不需要再使用了,本该被回收时,而另外一个正在使用的对象持有它的引用从而导致它不能被回收,这就导致本该被回收的对象不能被回收而停留在堆内存中,内 ...
- <面试题>学习面试
1.代码中要修改不可变数据会出现什么问题? 抛出什么异常? 代码不会正常运行,抛出 TypeError 异常. # 比如修改元祖.会报错 TypeError: 'tuple' object does ...
随机推荐
- 安装win10 和win中的一些杂项问题
reg中的 policies是政策/策略, 主要是指 控制面板中的一些控制项目, 其中 explorer是 控制面板的 显示项目... DWORD值是一个32位(4个字节:即双字)长度的数值, 是数字 ...
- Win32汇编学习(6):键盘输入消息
这次,我们将要学习WINDOWS程序是如何处理键盘消息的. 理论: 因为大多数的PC只有一个键盘,所以所有运行中的WINDOWS程序必须共用它.WINDOWS 将负责把击键消息送到具有输入焦点的那个应 ...
- Learning-Python【13】:迭代器和生成器
一.什么是迭代器 迭代指的是一个重复的过程,每一次重复都是基于上一次的结果而来的 # 这里的循环也是一个迭代,每次基于上一次的结果而取值 li = 'hello' i = 0 while i < ...
- Linux wc -l 统计文件行数存在的问题
1.使用这种方式效率较低,而且不注意可能出现错误 find . -name "*.pc" |xargs wc -l 直接查看 total 不是正确的值. 原因: 这种方式存在一个 ...
- 版本控制工具Git的复杂用法的情境分析
Git的版本库中的文件的三种状态 对于任何一个文件,在 Git 内都只有三种状态: 已提交(committed),已修改(modified)和已暂存(staged). 已提交表示该文件已经被安全地保存 ...
- Matlab:五点差分方法求解椭圆方程非导数边值问题
差分格式脚本文件: tic; clear clc M=32;%x的步数 N=16;%y的步数 h1=1/M;%x的步长 h2=1/N;%y的步长 x=0:h1:1; y=0:h2:1; u=zeros ...
- linux安装elasticsearch-head和elasticsearch-analysis-ik及遇到的各种问题
1.获取elasticsearch-head http://mobz.github.io/elasticsearch-head/ 下载并解压 wget https://github.com/mobz/ ...
- CentOS 7上安装Pure-FTPd
# 安装 yum install epel-release yum install pure-ftpd 位置文件位于/etc/pure-ftpd/pure-ftpd.conf # 修改配置文件 # 注 ...
- github命令总结
一.创建版本库 1.创建一个空目录 $ mkdir learngit $ cd learngit $ pwd //pwd命令用于显示当前目录 2.创建一个版本库(通过git init命令把这个目录变成 ...
- fly.js抛物线连续不断加入购物车
http://yanshi.sucaihuo.com/jquery/2/298/demo/