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面试题学习的更多相关文章

  1. 2010年腾讯前端面试题学习(jquery,html,css部分)

    看了牛人写的回忆文章,里面有2010年腾讯的前端面试题,里面涉及到不少基础性的问题,js部分已学习,这是jquery,html和css部分,学习一下:) 原文地址:https://segmentfau ...

  2. 2010年腾讯前端面试题学习(js部分)

    看了牛人写的回忆文章,里面有2010年腾讯的前端面试题,里面涉及到不少基础性的问题,学习一下:) 原文地址:https://segmentfault.com/a/1190000012998107 js ...

  3. 通过面试题学习零散知识:Java面试题整理

     一.如何看待面试题 对于喜欢学习的开发者来说,我们抛开工作和生活的时间,剩余的时间并不多,如果都用于学习的话,也不可能学的下所有感兴趣的技术点,精力也跟不上,我是深感如是.而面试题一般都是零碎的知识 ...

  4. 海量数据处理面试题学习zz

    来吧骚年,看看海量数据处理方面的面试题吧. 原文:(Link, 其实引自这里 Link, 而这个又是 Link 的总结) 另外还有一个系列,挺好的:http://blog.csdn.net/v_jul ...

  5. [js高手之路]javascript腾讯面试题学习封装一个简易的异步队列

    这道js的面试题,是这样的,页面上有一个按钮,一个ul,点击按钮的时候,每隔1秒钟向ul的后面追加一个li, 一共追加10个,li的内容从0开始技术( 0, 1, 2, ....9 ),首先我们用闭包 ...

  6. Android常见面试题学习第二天(原创)

    61. Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 DVM指Dalvik的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik ...

  7. Python 面试题学习

    Python的函数参数传递 在Python中,strings,tuples=('abc',123,2.2,'join),numbers 是不可更改的对象. list=['abc',123,2.23,' ...

  8. Android常见面试题学习第一天(原创)

    1. 内存泄漏 在android程序开发中,当一个对象已经不需要再使用了,本该被回收时,而另外一个正在使用的对象持有它的引用从而导致它不能被回收,这就导致本该被回收的对象不能被回收而停留在堆内存中,内 ...

  9. <面试题>学习面试

    1.代码中要修改不可变数据会出现什么问题? 抛出什么异常? 代码不会正常运行,抛出 TypeError 异常. # 比如修改元祖.会报错 TypeError: 'tuple' object does ...

随机推荐

  1. luogu[愚人节题目3]现代妖怪殖民地 NTT

    U34272 [愚人节题目3]现代妖怪殖民地 fft 题目链接 https://www.luogu.org/problemnew/show/U34272 思路 虽然是个py题. ntt(或者fft)模 ...

  2. Lintcode423-Valid Parentheses-Easy

    思路: 数据结构:stack.遍历整个字符串,如果遇到左向括号( [ { 则入栈.如果遇到右向括号时,先检查栈是否为空,为空说明左右向括号数目不一致,返回false:不为空则弹出栈顶元素查看是否和右向 ...

  3. 洛谷 P2915 【[USACO08NOV]奶牛混合起来Mixed Up Cows】

    类似于n皇后的思想,只要把dfs表示放置情况的数字压缩成一个整数,就能实现记忆化搜索了. 一些有关集合的操作: {i}在集合S内:S&(1<<i)==1: 将{i}加入集合S:S= ...

  4. JVM运行时内存模型

    JDK1.7版本图 一,栈   基本数据类型的局部变量是直接保存在栈中. 栈帧:一个栈里面会包含多个栈帧,每一个栈帧代表一个方法的开始到结束,它涵盖了整个方法运行期间所有的操作和数据 栈帧 1:局部变 ...

  5. U3D外包团队—技术分享 U3d中获得物体的size

    以size的x方向为例 1:gameObject.renderer.bounds.size.x;//这个值的结果真实反应出有MeshRenderer这个组件的模型的尺寸.不需要再乘以localScal ...

  6. 解决Firefox显示“已阻止载入混合活动内容”的方法

    今天把项目放到服务器上了,调试的时候出现“已阻止载入混合活动内容……”的报错: 解决方法如下: 方法1:让Firefox暂时不阻止 打开新标签页,在地址栏输入 about:config,进入配置页面. ...

  7. [Spring MVC] 取控制器返回的ModelAndView/Map/Model/Request的对象

    ${key }页面可取, <input value="${key}"> 或者<%=request.getParameter("key")%&g ...

  8. 深入理解Plasma(三)Plasma MVP

    这一系列文章将围绕以太坊的二层扩容框架 Plasma,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等.本篇文章主要介绍 Plasma 的一个最小实现 Plasma MVP(Minima ...

  9. python模块--re模块

    常用的正则表达式模式: .  匹配除换行符以外的任意字符 \d  匹配一个数字字符.等价于 [0-9]. \D  匹配一个非数字字符.等价于 [^0-9]. \s  匹配任何空白字符,包括空格.制表符 ...

  10. 『流畅的Python』第1~4章笔记_数据结构、编码

    由于1~4章内容零散且基础,所以统计一下涉及到的内容,记录一下,方便查阅(第一张图右键新页面打开即可看到清晰大图)