1. 系统环境 1) 在 PHP 中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量____ 中;而链接到当前页面的 URL 记录在预定义变量____中。 答案:$_SERVER['PHP_SELF']; $_SERVER["HTTP_REFERER"]; 2) 如 何 用 php 的 环 境 变 量 得 到 一 个 网 页 地 址 的 内 容 ? ip 地 址 又 要 怎 样 得 到 ? $_SERVSR[‘REQUEST_URI’] 答 案 : $_SERVER[‘REMOTE_ADDR’] 3) 使用 POST 和 GET 有何区别。 4) 使用命令行调用 php 程序时,如何进行参数传递和环境参数获取。 5) PHP 中的脚本运行时间通过哪个参数配置?使用命令行是否受此超时时间限制。 2.PHP 安全开发 1)对所有从客户端传入的数据需要注意 GET\POST 即可? 2)安全的编码可以依赖 PHP 和服务器的安全配置? 3)为了方便调试程序,线上程序错误信息可选择性开放? 4)读写文件/包含文件(include、require),使用白名单限定文件路径、名称及后 缀名。 或者检查用户输入,过滤或转义含有 等跳转目录或字符终止符的输入。 答案:”../”、”..\”、”%00” 5)将用户输入作为参数代入或拼接 SQL 语句时,数字型的需要做 转换,字符串类 型的需要通过 进行过滤 答案:intval;mysql_real_escape_string 6)将用户输入作为参数代入 shell 命令并执行,使用白名单限制用户的输入值列表。 或者将代入拼接的参数使用 函数进行过滤 答案: escapeshellarg\escapeshellcmd 3. PHP 基础知识 1) 语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是_ ___;为了避免多次包含同一文件,可以用语句____来代替它们。 2) 用 PHP 打印出前一天的时间格式是 2011-1-10 10:17:57。 答案:echo date('Y-m-d H:i:s', strtotime('-1 day')); 3) 写一个程序,远程抓取图片,并存取在本地服务器。(抓取服务器有 refer 控制, 例如 refer 必须要求是 http://www.baidu.com/*)。 4) 请说明在 php.ini 中 safe_mode 开启之后对于 PHP 系统函数的影响。 5) “===”和”==”区别在什么地方,用于什么场景。 6) 禁用 COOKIE 后 SEESION 是否还可以使用。 7) 数组函数 arsort(), sort(),assort(), ksort() 的作用和应用场景。 8) 使用 exec()和 system()调用有什么区别?请各设计一个应用场景。 4. 字符串处理 1) echo(),print(),print_r()的区别。 答案:echo 是语言结构,无返回值;print 功能和 echo 基本相同,不同的是 print 是函数,有返回值;print_r 是递归打印,用于输出数组对象。 2) 写一个函数,实现字符串翻转。 3) 写 一 个 函 数 , 尽 可 能 高 效 的 , 从 一 个 标 准 url 里 取 出 文 件 的 扩 展 名 。 例 如 : http://www.baidu.com/abc/de/fg.php?id=1 需要取出 php 或 .php。 4) 实现一个字符串替换函数。(不得使用 str_replace)。 5. PHP 类相关 1) 类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到 的函数。 答案:serialize() /unserialize()。 2) 列出 PHP5 中的魔术方法,并举例说明其用法。 3) PHP 中构造函数和析构函数的使用方法。 4) 写出使用单例和工厂模式的程序片段,并指明有哪些需要注意的点。 5) PHP 中是否支持多态。 6. 数据库相关 1) SQL 中 left join, right join 和 inner join 的含义和区别是什么。 2) mysql_fetch_row() 和 mysql_fetch_array()的区别。 3) mysql_real_escape_string 和 mysql _escape_string 的区别。 4) mysql 中 explain 的详细用法,结合空间耗时长的 SQL 语句进行分析说明。 5) 请写出 php 连 mysql 连接中,获取下一个自增长 id 值的方法,可以写多个。 6) 如何使用命令行导入、导出数据库数据,需要指定字符集、数据库、表及限制条件。 7) MySQL 数据库,一天五万条以上的增量,预计运维三年,如何优化,给出数据库 和代码的解决方案。 8) Mysql 的存储引擎,myisam 和 innodb 的区别。 9) 查看数据库中的慢查询(可结合空间自身数据库),给出优化解决方案。 7. Web Server 相关 1) 搭建一套由 apache/lighty + fastcgi + php 组成的测试环境,并部署相关的 PHP 代码,如转帖、投票等,部署完成后,通过在其他服务器对应服务添加白名 单等方式,让部署的系统运行起来。 2) 在 HTTP 1.0 中,状态码 401 的含义是(1); 如果返回“找不到文件”的提示,则可用 header 函数,其语句为(2)。 答:(1)未授权 (2) header("HTTP/1.0 404 Not Found"); 3) 以 Apache 模块的方式安装 PHP,在文件 http.conf 中首先要用语句(1)动态装 载 PHP 模块,然后再用语句(2)使得 Apache 把所有扩展名为 php 的文件都作 为 PHP 脚本处理。 LoadModule php5_module 答 案 : "D:/xampp/apache/bin/php5apache2.dll" AddType application/x-httpd-php-source .phps AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml 8. 算法设计 1) 使用 PHP 描述冒泡排序和快速排序算法,参数是一个数组。 2) 使用 PHP 实现二分查找算法,参数是一个数组,分别使用递归和非递归方法。 3) 写一个函数,算出两个文件的相对路径。 如 $a = ‘/a/b/c/d/e.php’; $b = ‘/a/b/12/34/c.php’; 计算出 $b 相对于 $a 的相对路径应该是 ../../c/d。 4) 写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。 5) 用 PHP 实现一个双向队列。 6) 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名 例如: http://hi.baidu.com/abc/de/fg.php?id=1 需要取出 php 或 .php。 7) 用 PHP 或 SHELL 完成大规模日志统计频次和排序。 8) 编写用 PHP 语言实现的求 n 阶阶乘问题的递归算法: 9) 使用 PHP 实现多路归并排序算法。 9. 系统设计 1) 设计并实现论坛中的无限分类。 2) 设计一个 blog 系统,主要数据为用户、博客文章、博客评论,如何设计存储架 构, 能够方便的通过用户访问文章及其评论,同时也便于用户管理自己的评论?以及当 用户量增长以后如何考虑数据切分?当出现热区用户时如何处理? 3) 自己设计一套 COOKIE 系统,应该如何实现,当用户量日登陆量达到百万级别时 , 如何处理。 4) 设计一个简单的网页抓取系统,自动分析页面中的超链,并下载文本内容,存储在 本地服务器,抓取内容限制在本站域名下,层级可控。使用 PHP、数据库或文本 等存储系统实现。 5) 使用 PHP 的 GD 库,实现一个验证码控制提交系统,要求验证码由数字、字母或 中文组成,图片需包含背景噪点。 6) 设计一个反作弊系统,对关键词进行过滤处理,关键词可通过配置文件设置。 10. LINUX 技术 1) vi 编辑器中,选中、复制、粘贴、删除的命令各是什么。 2) 获取文件行数。 3) 输入文件的最后 5 行到另一个文件中。 4) 查找文件中包含 hello 的行。 5) 查找和删除当前目录下所有目录名为 CVS 的子目录的命令。 6) 如何让一个程序在后台运行并把输入定向到指定的文件。 7) 如何把一个文件的内容添加到另一个文件的末尾。 8) 如何实时的显示一个文件的输出。 9) 定时执行一个程序的方法有什么方法。 10) Vi 编辑器中,如何替换指定的字符串。 11) 当更新后,cvs 中文件有冲突时。如何判断哪些你编辑的内容和更新下来的内容。 12) 查看系统中正在运行哪些进程,并查看进程状态。 13) 使用 crontab 和 shell 脚本(可使用 php),定期下载某一个程序日志,并自动进 行分析(可结合空间实际案例)。 11. PHP 实战题 1) 写 出 <? 如 下 程 序 的 输 出 结 果 $str1 = $str2 = echo $str1==$str2 ? '相等' : '不相等'; $str3 = $str4 = echo $str3==$str4 ? '相等' : '不相等'; $str5 = $str6 = echo $str5===$str6 ? ' 相 等 ?> null; false; ''; 0; ' : ' 不 0; '0'; 等 '; 相 答案:相等 相等 不相等 2) 3) 写 出 如 下 程 序 的 输 <? $a1 = $a2 = $a3 = $a4 = $a5 = $a6 = $a7 = $a8 = array(array()); echo empty($a1) ? 'true' echo empty($a2) ? 'true' echo empty($a3) ? 'true' echo empty($a4) ? 'true' echo empty($a5) ? 'true' echo empty($a6) ? 'true' echo empty($a7) ? 'true' echo empty($a8) ? 'true' ?> 答案:true true true true true false true false 出 写 出 如 <? $test $abc unset($test); echo ?> 出 下 程 序 的 输 果 null; false; 0; ''; '0'; 'null'; array(); : : : : : : : : = = 结 'false'; 'false'; 'false'; 'false'; 'false'; 'false'; 'false'; 'false'; 结 果 'aaaaaa'; $test; & $abc; 答案:aaaaaa 4) 写 <? 出 如 下 程 序 的 输 出 结 果 $count function static return } echo ++$count; echo

docx文档 ting版php面试题

编程开发 > 后端开发 > PHP > 文档预览
5 页 3 下载 230 浏览 0 评论 0 收藏 3.0分
温馨提示:如果当前文档出现乱码或未能正常浏览,请先下载原文档进行浏览。
ting版php面试题 第 1 页 ting版php面试题 第 2 页 ting版php面试题 第 3 页 ting版php面试题 第 4 页 ting版php面试题 第 5 页
本文档由 phpinside2019-05-15 15:56:24上传分享
给文档打分
您好可以输入 255 个字符
文库之家的网址是?( 答案:wenkuzhijia.cn )
评论列表
  • 暂时还没有评论,期待您的金玉良言