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. 关于vim的折叠

    参考: http://www.cnblogs.com/fakis/archive/2011/04/14/2016213.html 和 这篇文章: https://blog.csdn.net/benda ...

  2. Codeforces 147 B. Smile House

    题目链接:http://codeforces.com/contest/147/problem/B 求有向图的最小正权环的大小   ${n<=300}$ 非常显然的有${n^{3}log^2}$的 ...

  3. oracle 11 g release 2 卸载

    Win 10 系统,Oracle 11 g R 2 ,安装目录C盘根目录 1.停止Oracle的所有服务 打开“服务”窗口,关闭Oracle的所有服务 2.运行Oracle Universal Ins ...

  4. Java 中断

    https://zhuanlan.zhihu.com/p/45667127 看的似懂非懂

  5. Qgis练手

    师妹推荐了一个神器 Qgis,因为看我拿Echarts和Excel缝缝补补效率实在太低下. 还记得,以前写过一个“echarts画中国地图并上色”的笔记,那个应付一下事还行,真正需要精细画图的时候还得 ...

  6. 在虚拟环境下运行 Confluence 6

    这个页面针对运行在虚拟硬件环境下的 Confluence 提供一些信息. 概要 在虚拟环境(virtual machine (VM))下运行 Confluence 需要一些特定的技能来进行设定和进行管 ...

  7. mysql数据库的基础操作

    注 : 本文中注释因为方便写了# ,mysql中规范应为 -- 创建用户 通过root管理员权限可以创建各种用户,并为他们分配权限及可以操作的数据库. 语法:create user '用户名'@'ip ...

  8. Vue项目在真机测试

    一:修改config 找到config文件夹下的index.js文件并修改为: module.exports = { dev: { host: '0.0.0.0' // 原为: hotst: 'loc ...

  9. WindowsForms 调用API

    WindowsForms 后台 using System;using System.Collections.Generic;using System.ComponentModel;using Syst ...

  10. 最简单的操作 jetty IDEA 【debug】热加载

    [博客园cnblogs笔者m-yb原创,转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708] http ...