php面试题集-简答题

简答题


PHP的意思
答:PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页

请简单阐述您最得意的开发之作.
暂无答案

对于大流量的网站, 您采用什么样的方法来解决访问量问题?
答:确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表,
程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量

echo,print(),print_r()的区别
echo和print都可以做输出,不同的是,echo不是函数,没有返回值,
而print是一个函数有返回值,所以相对而言如果只是输出 echo 会更快,而print_r通常用于打印变量的相关信息,通常在调试中使用。
print是打印字符串
print_r则是打印复合类型 如数组、对象。

能够使HTML和PHP分离开使用的模板
Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate

如何实现PHP、JSP交互?
SOAP,XML_RPC,Socket function,CURL都可以实现这些

使用哪些工具进行版本控制?
SVN(TortoiseSVN)、cvs、vss
CVS和SVN,SVN号称下一代CVS,功能强大,不过CVS是老牌,市占率很高.
我一直用SVN,题目是问用什么工具,呃,这个可能需要这么回答:CVS Server on Apache作服务端,
WinCVS作客户端;Subversion on Apache/DAV 做服务端,TortoiseSVN做客户端,或者Subclipse做客户端

请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别(2分)
答:int是数字类型,char固定长度字符串,varchar实际长度字符串,datetime日期时间型,text文本字符串。
char的场地固定为创建表设置的长度,varchar为可变长度的字符。

请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)
答:按值传递:函数范围内对值的任何改变在函数外部都会被忽略
按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改
优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。
按引用传递则不需要复制值,对于性能提高很有好处。

优化MYSQL数据库的方法
1、选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置not null。例如性别,最好设置为ENUM
2、使用连接(join)来代替子查询
3、使用联合(union)来代替手动创建临时表
4、事务处理
5、锁定表,优化事务处理
6、使用外键,优化锁定表
7、建立索引
8、优化查询语句

apache+mysql+php实现最大负载的方法
问的太笼统。主要是配置文件的优化了,另外用linux跑要比用windows跑效果好一点。
条件允许的话,将mysql和apache分离开不用同一台机器跑也好一点。生成静态html页面。

实现中文字串截取无乱码的方法。
http://blog.csdn.net/zyb_icanplay7/article/details/8493048

include、require、include_once、require_once的区别.
include() 、require()语句包含并运行指定文件。这两结构在包含文件上完全一样,唯一的区别是对于错误的处理。
require()语句在遇到包含文件不存在,或是出错的时候,就停止即行,并报错。include()则继续即行。
include_once()和require_once()一样,应该用于在脚本执行期间同一个文件有可能被包含超过一次的情况下,
想确保它只被包含一次以避免函数重定义,变量重新赋值等问题。这就是include_once()和require_once()与include() 和require()的主要区别。

HEREDOC介绍
heredoc 是可以让我们在php代码内实现一大段的html代码,并且可以在其中,使用php变量。
1.以<< 开始标记和开始标记相同,比如常用大写的EOT、EOD、EOF来表示,但是不只限于那几个,只要保证开始标记和结束标记不在正文中出现即可。
2.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。
        
写出一些php魔幻方法;
__construct 初始化 构造函数
__destruct 卸载 析构函数
__autoload 自动加载函数
__call   调用不存在的类的函数的时候得处理方法,__call 失败,就调用父类方法,依此类推
__get   获取属性值
__set()   设置属性值
__isset() 测定变量是否设定用的函数,传入一个变量作为参数,如果传入的变量存在则传回true,否则传回false
__unset() 删除指定的变量且传回true,参数为要删除的变量。
__clone();   克隆对象
__toString(); 进行对象的类型转换
__sleep();    
__wakeup();
当一个对象被串行化,PHP会调用__sleep方法(如果存在的话). 在反串行化一个对象后,PHP 会调用__wakeup方法. 
这两个方法都不接受参数. __sleep方法必须返回一个数组,包含需要串行化的属性.

HTTP协议中几个状态码的含义:503 500 401 200 301 302……
1**:请求收到,继续处理
2**:操作成功收到,分析、接受
3**:完成此请求必须进一步处理
4**:请求包含一个错误语法或不能完成
5**:服务器执行一个完全有效请求失败

500——服务器产生内部错误
501——服务器不支持请求的函数
502——服务器暂时不可用,有时是为了防止发生系统过载
503——服务器过载或暂停维修

400——错误请求,如语法错误
401——请求授权失败
403——请求不允许

200——交易成功
201——提示知道新文件的URL
202——接受和处理、但处理未完成
203——返回信息不确定或不完整
204——请求收到,但返回信息为空
205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件
206——服务器已经完成了部分用户的GET请求

300——请求的资源可在多处得到
301——删除请求数据
302——在其他地址发现了请求数据

向php传入参数的两种方法。
1.传值方式:
将实参的值复制到对应的形参中,在函数内部的操作针对形参进行,操作的结果不会影响到实参,即函数返回后,实参的值不会改变。
2.传址方式:
实参的内存地址传递到形参中,在函数内部的所有操作都会影响到实参的值,即返回后,实参的值会相应发生变化。传址时只需要在形参前加&号即可。

用php写出显示客户端ip与服务器ip的代码
打印客户端ip:echo $_SERVER['REMOTE_ADDR'];或者:getenv('REMOTE_ADDR');
打印服务器ip:echo gethostbyname('www.baidu.com');

在PHP中error_reporting这个函数有什么作用?
暂无答案

如何修改SESSION的生存时间.
答:
方法1:
将php.ini中的session.gc_maxlifetime设置为9999重启apache
方法2:
$savePath = "./session_save_dir/";
$lifeTime = 小时 * 秒;
session_save_path($savePath);
session_set_cookie_params($lifeTime);
session_start();
方法3:
setcookie() and session_set_cookie_params($lifeTime);

有一个一维数组,里面存储整形数据,请写一个函数,将他们按从大到小的顺序排列。要求执行效率高。并说明如何改善执行效率。(该函数必须自己实现,不能使用php函数)
暂无答案

请举例说明在你的开发过程中用什么方法来加快页面的加载速度。
暂无答案

谈谈asp,php,jsp的优缺点(1分)
答: ASP全名Active Server Pages,是一个WEB服务器端的开发环境, 利用它可以产生和运
行动态的、交互的、高性能的WEB服务应用程序。ASP采用脚本语言VB Script(Java script
)作为自己的开发语言。 
PHP是一种跨平台的服务器端的嵌入式脚本语言. 它大量地借用C,Java和Perl语言的语法
, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面.它支持目前绝大多数数
据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(http://www.php.ne
t)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。 
JSP 是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病--
脚本级执行(据说PHP4 也已经在Zend 的支持下,实现编译运行).Sun 公司借助自己在Jav
a 上的不凡造诣,将Java 从Java 应用程序 和 Java Applet 之外,又有新的硕果,就是Js
p--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能强大的站点
程序。 
三者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。
但JSP代码被编译成 Servlet 并由 Java 虚拟机解释执行,这种编译操作仅在对 JSP 页面的
第一次请求时发生。在 ASP 、PHP、JSP 环境下, HTML 代码主要负责描述信息的显示样式
,而程序代码则用来描述处理逻辑。普通的 HTML 页面只依赖于 Web 服务器,而 ASP 、PH
P、JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到 
HTML 代码中,然后一起发送给浏览器。 ASP 、PHP、 JSP三者都是面向 Web 服务器的技术
,客户端浏览器不需要任何附加的软件支持。

谈谈对mvc的认识(1分)
答:由模型(model),视图(view),控制器(controller)完成的应用程序
由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图;

GD库是做什么用的?
gd库提供一系列用来处理图片的api,使用gd库可以处理图片,或者生成图片。
在网站上gd库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。

表单中get与post提交方法的区别?
答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.

error_reporting 等调试函数使用。
error_reporting()函数是用来重新定义页面显示错误等级的函数,这个函数可以覆盖掉PHP.ini针对程序运行时错误报告等级的配置。
error_reporting()函数能够使用的参数列表和这些参数的数字值:
值    常量
1     E_ERROR
2     E_WARNING
4     E_PARSE
8     E_NOTICE
16    E_CORE_ERROR
32    E_CORE_WARNING
64    E_COMPILE_ERROR
128   E_COMPILE_WARNING
256   E_USER_ERROR
512   E_USER_WARNING
1024  E_USER_NOTICE
2047  E_ALL
2048  E_STRICT

posix和perl标准的正则表达式区别;
PHP同时使用两套正则表达式规则,
一套是由电气和电子工程师协会(IEEE)制定的POSIX Extended 1003.2兼容正则(事实上PHP对此标准的支持并不完善),
另一套来自PCRE(Perl Compatible Regular Expression)库提供PERL兼容正则,这是个开放源代码的软件,作者为 Philip Hazel。
详情:http://purpen.iteye.com/blog/770751
            
safe_mode 打开后哪些地方受限.
启动safe_mode,会对许多PHP函数进行限制,特别是和系统相关的文件打开、命令执行等函数。
所有操作文件的函数将只能操作与脚本UID相同的文件
虽然safe_mode不是万能的(低版本的PHP可以绕过),但还是强烈建议打开安全模式,在一定程度上能够避免一些未知的攻击。
不过启用 safe_mode会有很多限制,可能对应用带来影响,所以还需要调整代码和配置才能和谐。被安全模式限制或屏蔽的函数可以参考PHP手册。
详情:http://bbs.csdn.net/topics/390019464
            
写代码来解决多进程/线程同时读写一个文件的问题
暂无答案

写一段上传文件的代码。
暂无答案

写出session的运行机制
暂无答案

打印出字符串$a = 'abcdef'的第二个字母
echo $a{1};

在PHP中error_reporting这个函数有什么作用? (1分)
答:设置错误级别与错误信息回报

了解MVC模式吗?请写出三种以上目前php流行MVC框架名称。
FleatPHP、ZF、CakePHP、Symfony、Yii、TP等

写出五种以上你使用过的php的扩展的名称(提示:常用的php扩展)
MB_String、Iconv、Curl、GD、SHM、Libxml、Socket、MySQL、PDO等

foo()和@foo()之间有什么区别?(1分)
答:@foo()控制错误输出

在命令行下运行php方式
暂无答案

接口的作用,抽象类的作用,接口和抽象类的区别
暂无答案

$a = 'abcdef'; 请取出$a的值并打印出第一个字母(1分)
答:echo $a{0} 或 echo substr($a,0,1)

session与cookie的区别?
session储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放;
cookie用来存储连续访问一个页面时所使用,是存储在客户端,对于cookie来说是存储在用户win的temp目录中的。
两者都可通过时间来设置时间长短。

你可能感兴趣的:(PHP)