
php面试题
-
2023年2月12日发(作者:)PHP面试题及答案
unt(“abc”);输出什么?
答案:1
2.用PHP代码写出显示客户端IP与效劳器IP的代码。
答案:客户端getenv(‘REMOTEADDR’);效劳器端
getenv(‘SERVERADDR’);
//gethostbyname(“.phpmst.”);
eporting(2047)什么作用?
答案:相当于errorreporting(‘EALL’);输出所有的错误。
4.如何实现PHP、JSP交互?
答案:题目有点模糊不清,SOAP,XMLRPC,Socket
function,CURL都可以实现这些,如果是考PHP和Java的整合,PHP
内置了这种机制(如果考PHP和.NET的整合,也可以这么答复),例
如$foo=newJava(‘.’);
5.翻开中的Safemode,会影响哪些参数?至少说出6
个。
答案:此模块翻开时,php将检查当前脚本的拥有者是否和受
操作文件的拥有者相同,因此,将影响文件操作类函数,程序执行
函数(programExecutionFunctions)。这些函数
有.pathinfo,basename,fopen,system,exec,procopen等函数;
6.请写一个函数验证电子邮件的格式是否正确(要求使用正那
么)。
functioncheckEmail($mail){
$reg=‘/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/’;
$rst=pregmatch($reg,$mail);
if($rst){
returnTRUE;
}else{
returnFALSE;
}}
7.写个函数用来对二维数组排序。
答案:arraymultisort()。
8、优化MYSQL数据库的方法。
答案:(1).数据库设计方面,这是DBA和Architect的责任,设计
构造良好的数据库,必要的时候,去正规化(英文是这个:denormalize,
中文翻译成啥我不知道),允许部分数据冗余,防止JOIN操作,以提高
查询效率。
(2).系统架构设计方面,表散列,把海量数据散列到几个不同的
表里面.快慢表,快表只留最新数据,慢表是历史存档.集群,主效劳器
Read&write,从效劳器readonly,或者N台效劳器,各机器互为
Master。
(3).(1)和(2)超越PHPprogrammer的要求了,会更好,不会没关
系.检查有没有少加索引。
(4).写高效的SQL语句,看看有没有写低效的SQL语句,比方生
成笛卡尔积的全连接啊,大量的GroupBy和orderby,没有limit
等等.必要的时候,把数据库逻辑封装到DBMS端的存储过程里面.缓
存查询结果,explain每一个sql语句。
(5).所得皆必须,只从数据库取必需的数据,比方查询某篇文章
的评论数,selectcount(*)…wherearticleid=?就可以了,不
要先select*…wherearticleid=?然后msqlnumrows.只传送
必须的SQL语句,比方修改文章的时候,如果用户只修改了标题,那
就…settitle=?wherearticleid=?不要setcontent
=?(大文本)。
(6).必要的时候用不同的存储引擎,比方InnoDB可以减少死
锁,HEAp可以提高一个数量级的查询速度。
1.请写出PHP5权限控制修饰符。
答案:privateprotectedpublic。
2.对于大流量的网站,您采用什么样的方法来解决访问量问题?
答案:首先,确认效劳器硬件是否足够支持当前的流量。
其次,优化数据库访问。
第三,制止外部的盗链。
第四,控制大文件的下载。
第五,使用不同主机分流主要流量第六,使用流量分析统计软
件。
3.在1.0中,状态码401的含义是?;如果返回\"找不到文件\"
的提示,那么可用header函数,其语句是?
答案:401的含义是未授权。
header(“HTTp/1.0404NotFound”);———找不到文件
header(“HTTp/1.1403Forbidden”);———不允许访问
4.以Apache模块的方式安装PHP,在文件.conf中首先要怎样
动态装载PHP模块,然后再用什么语句使得Apache把所有扩展名为
php的文件都作为PHP脚本处理。
答案:动态装载PHP模块:LoadModulephp5module
\"c:/php/\"
把所有扩展名为php的文件都作为pHp脚本处理:AddType
application/dTypeapplication/x-d-
5.类的属性可以序列化后保存到session中,从而以后可以恢
复整个类,这要用到的函数是?
答案:serialize()/unserialize()。
6.一个函数的参数不能是对变量的引用,除非在中把
什么模块设为on。
答案:allowcalltimepassreference。