interview question

  • 格式:rtf
  • 大小:460.02 KB
  • 文档页数:33

问题1:谈谈你对的PHP的基本认识。

回答:PHP是Hypertext Preprocessor(超文本预处理器)的简称,是一种用来开发动态网站的服务器端脚本语言。

问题2:什么是MVC?回答:MVC,即Model(数据层),View(视图层),Controller(控制层)。

PHP中的MVC模型是一种有效将代码分成三层的管理办法,其中Model表示着应用中的数据信息,View负责将应用中的数据信息展现出来,Controller控制着如何将数据信息读出。

问题3:你在一个页面上有几种方式添加CSS?回答:三种办法可以使用:(1)引用外部CSS文件。

(2)引用内部CSS文件。

(3)内联CSS样式。

问题5:PHP中echo和print有什么区别?回答:这两个函数看起来很相似,都是用来打印输出的。

两者最大的区别是,echo不是函数,没有返回值,而print是一个函数有返回值,所以相对而言如果只是输出 echo会更快。

问题6:GET和POST方法有什么区别?回答:我们在网页上填写的表单信息可以通过这两种方法将数据传递到服务器上,GET或POST方法。

当我们使用GET时,所有的信息都会显示在URL 地址中,并且使用GET方法最多只能传递1024个字符,所以GET方法适用于传输量小,且数据安全不是很重要的情况。

而POST方法,没有信息会显示在URL地址上,相对安全,且最多可以传输2MB字节的数据,这个数字还可以根据需要增加。

问题7:PHP中获取图像大小,宽与高的函数是什么?回答:getimagesize () 获取图像的尺寸,imagesx () 获取图像的宽度,imagesy () 获取图像的高度。

问题8:PHP中的PEAR是什么?回答:PEAR是PHP扩展与应用库(the PHP Extension and Application Repository)的缩写,它是一个PHP扩展及应用的一个代码仓库,同时它也是一个标准,使用这个标准来书写PHP代码,会增强程序的可读性,复用性。

问题9:如何使用PHP和MySQL上传视频?回答:我们只需要复制数据库中存储视频的路径,而不是存储视频文件本身。

所有的视频会被存在另外一个文件夹中,当需要的时候可以从中调用视频。

上传视频的默认大小是2MB,但是我们也可以在php.ini文件中修改max_file size,改变文件大小。

问题10:PHP中的错误类型都有哪些?回答:PHP中主要有三种错误类型,(1)Notice:这些都是一些非常正常的信息,而非重大错误,甚至有一些都不会展示给用户。

(2)Warning:这类是稍微严重一些的错误,错误会展示给用户,但不影响程序的输出。

(3)Fatal errors:这些是非常严重的错误,比如要访问一个不存在的PHP 类。

问题12:如何不使用submit按钮来提交表单?回答:如果我们不想用submit按钮提交表单,我们可以用超链接来提交,比如使用javascript代码如下:<a href=”javascript:document.myform.submit();”>Submit Me</a >前段如何让div标签在页面中居中?提示:用margin 的左右auto谈谈对javascript的闭包的认识?如何解决ajax跨域调用的问题?ajax同步和异步的区别?谈谈对网站优化的看法提示:css的Sprites概念页头部分有个控制页面缓存的标签是什么,http1.0 和http1.1对该标签有无区别php说说对设计模式的认识,谈谈什么情况下用单例模式谈谈对mvc的认识,你用过哪些框架?session 和cookie的区别,服务器是如何判断客户端session的身份的?谈谈接口与抽象类的区别数据库谈谈数据库的优化的看法一. 基本知识点1.1 HTTP协议中几个状态码的含义:503 500 401 403 404 200 301 302。

200 : 请求成功,请求的数据随之返回。

301 : 永久性重定向。

302 : 暂时行重定向。

401 : 当前请求需要用户验证。

403 : 服务器拒绝执行请求,即没有权限。

404 : 请求失败,请求的数据在服务器上未发现。

500 : 服务器错误。

一般服务器端程序执行错误。

503 : 服务器临时维护或过载。

这个状态时临时性的。

1.2 Include require include_once require_once 的区别.处理失败方式不同:require 失败时会产生一个致命级别错误,并停止程序运行。

include 失败时只产生一个警告级别错误,程序继续运行。

include_once/require_once和include/require 处理错误方式一样,唯一区别在于当所包含的文件代码已经存在时候,不在包含。

1.3 (mysql)请写出数据类型(int char varchar datetime text)的意思; 请问varchar 和char有什么区别;int : 数值类型char : 固定长度字符串类型varchar : 可变长度字符串类型datetime : 时期时间类型text : 文本类型varchar和char有什么区别:a. char 长度是固定的,不管你存储的数据是多少他都会都固定的长度。

而varchar则处可变长度但他要在总长度上加1字符,这个用来存储位置。

b. char 固定长度,所以在处理速度上要比varchar快速很多,但是浪费存储空间,所以对存储不大,但在速度上有要求的可以使用char类型,反之可以用varchar类型来实例。

1.4 error_reporting 等调试函数使用error_reporting() 函数能够在运行时设置php.ini中 error_reporting 指令。

所以可以再程序中随时调节显示的错误级别。

使用此函数时 display_errors必须是打开状态。

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

PHP是不支持多线程的,可以使用php的flock加锁函数实现。

$fp = fopen("/tmp/lock.txt", "w+");if (flock($fp, LOCK_EX)) { // 进行排它型锁定fwrite($fp, "Write something here\n");flock($fp, LOCK_UN); // 释放锁定} else {echo "Couldn't lock the file !";}fclose($fp);1.6 写一段上传文件的代码。

upload.html<form enctype="multipart/form-data" method="POST" action="upload.php"> Send this file: <input name="name" type="file" /><input type="submit" value="Send File" /></form>upload.php$uploads_dir = '/uploads';foreach ($_FILES["error"] as $key => $error) {if ($error == UPLOAD_ERR_OK) {$tmp_name = $_FILES["tmp_name"][$key];$name = $_FILES["name"][$key];move_uploaded_file($tmp_name, "$uploads_dir/$name");}}1.7 Mysql 的存储引擎,myisam和innodb的区别。

a. MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.b. MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快.c. InnoDB不支持FULLTEXT类型的索引.d. InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可.e. 对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM 表中,可以和其他字段一起建立联合索引。

f. DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。

g. LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用.h. MyISAM支持表锁,InnoDB支持行锁。

二. web 架构,安全,项目经验2.1 MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?a. 设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率。

b. 选择合适的表字段数据类型和存储引擎,适当的添加索引。

c. mysql库主从读写分离。

d. 找规律分表,减少单表中的数据量提高查询速度。

e。

添加缓存机制,比如memcached,apc等。

f. 不经常改动的页面,生成静态页面。

g. 书写高效率的SQL。

比如 SELECT * FROM TABEL 改为 SELECT field_1, field_2, field_3 FROM TABLE.2.2 对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题a. 确认服务器是否能支撑当前访问量。

b. 优化数据库访问。

参考2.3c. 禁止外部访问链接(盗链), 比如图片盗链。

d. 控制文件下载。

e. 使用不同主机分流。

f. 使用浏览统计软件,了解访问量,有针对性的进行优化。

2.3 写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把标记及其内容都去掉):(9)。

答:/<[^>].*?>.*?<\/>/si2.4 用PHP打印出前一天的时间格式是2006-5-10 22:21:21答:echo date('Y-m-d H:i:s', strtotime('-1 day'));2.5 echo(),print(),print_r()的区别答:echo是语言结构,无返回值;print功能和echo基本相同,不同的是print是函数,有返回值;print_r是递归打印,用于输出数组对象2.6 如何实现字符串翻转?答:.用strrev函数呗,不准用PHP内置的就自己写:strrev($str){$len=strlen($str);$newstr = '';for($i=$len;$i>=0;$i--){$newstr .= $str{$i};}return $newstr;}2.7 实现中文字串截取无乱码的方法。