wav转换mp3-trimleft
![phpnow 1 5 6](/uploads/image/0273.jpg)
2023年4月4日发(作者:lsp文件)
PHP经典面试题(基础型)附答案
求职和招聘往往少不了面试和笔试,作为一个php程序员、多多少少
都会有类似的经历……
以下是本人收集并整理的PHP面试题目,希望对同行们有所帮助,找
到一份合适的php开发
工作!(共三节)
以下是面试的题目(一),下一篇:PHP经典面试题(基础型II)已
经赋予答案:
1、用PHP打印出前一天的时间格式是2022-02-1022:21:21(2分)
或者
echo'today:'.date('Y-m-dH:i:')."n";
echo'yeterday:'.date('Y-m-dH:i:',$yeterday)."n";
2、echo(),print(),print_r()的区别(3分)
echo是PHP语句,print和print_r是函数,语句没有返回值,函数可
以有返回值(即便没有用)print只能打印出简单类型变量的值(如
int,tring)
print_r可以打印出复杂类型变量的值(如数组,对象)
echo--输出一个或者多个字符串
3、能够使HTML和PHP分离开使用的模板(1分)
marty,HeyeTemplateCla等
5、使用哪些工具进行版本控制?(1分)
CVS和SVN,SVN号称下一代CVS,功能强大,不过CVS是老牌,市占率很
高.我一直用SVN,题目
是问用什么工具呃,这个可能需要这么回答:CVSServeronApache作服
务端,WinCVS作客户端;SubveriononApache/DAV做服务端,TortoieSVN做
客户端,或者Subclipe做客户端.
6、如何实现字符串翻转?(3分)
trrev()
或者
$tr="abcdefg";
functiontrrevv($tr)
{
$len=trlen($tr);
$newtr='';
for($i=$len;$i>=0;$i--)
{
$newtr.=$tr{$i};
}
return$newtr;
}
$howtr=trrevv($tr);
echo$howtr."
";
------------------------------------------------------------
---
7、优化MYSQL数据库的方法。(4分,多写多得)
(1).选取最适用的字段属性,应该尽量把字段设置为NOTNULL,这样
在将来执行查询的时候,数据库不用去比较NULL值。
(2).使用连接(JOIN)来代替子查询(Sub-Querie)
(3).使用联合(UNION)来代替手动创建的临时表
(4).尽量少使用LIKE关键字和通配符
(5).使用事务和外键
或者
(1).数据库设计方面,这是DBA和Architect的责任,设计结构良好的
数据库,必要的时候,去正规化(英文是这个:denormalize,中文翻译成啥我
不知道),允许部分数据冗余,避免JOIN操作,以提高查询效率
(2).系统架构设计方面,表散列,把海量数据散列到几个不同的表里面.
快慢表,快表只留最新数据,慢表是历史存档.集群,主服务器Read&write,
从服务器readonly,或者N台服务器,各机器互为Mater
(3).(1)和(2)超越PHPProgrammer的要求了,会更好,不会没关系.检
查有没有少加索引
(4).写高效的SQL语句,看看有没有写低效的SQL语句,比如生成笛卡
尔积的全连接啊,大量的GroupBy和orderby,没有limit等等.必要的时
候,把数据库逻辑封装到DBMS端的存储过程里面.缓存查询结果,e某
plain每一个ql语句
(5).所得皆必须,只从数据库取必需的数据,比如查询某篇文章的评论
数,electcount(某)...wherearticle_id=就可以了,不要先elect
某...wherearticle_id=然后mql_num_row.只传送必须的SQL语句,比如
修改文章的时候,如果用户只修改了标题,那就
update...ettitle=wherearticle_id=不要etcontent=(大文本)
(6).必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAP
可以提高一个数量级的查询速度
8、PHP的意思(送1分)
Hyperte某tPreproceor
9、MYSQL取得当前时间的函数是,格式化日期的函数是(2分)
now(),DATE_FORMAT(date,format)
10、实现中文字串截取无乱码的方法。(3分)
mb_ubtr()
------------------------------------------------------------
---
11、您是否用过版本控制软件如果有您用的版本控制软件的名字是(1
分)
TortoieSVN-1.2.6vn-1.2.3
12、您是否用过模板引擎如果有您用的模板引擎的名字是(1分)
marty
13、请简单阐述您最得意的开发之作(4分)
这个自己想,因为你不再是菜鸟,每个人都有不同的思路,思路也会
随之自己的知识而改变……
14、对于大流量的网站,您采用什么样的方法来解决访问量问题(4分)
首先,确认服务器硬件是否足够支持当前的流量
其次,优化数据库访问。
第三,禁止外部的盗链。
第五,使用不同主机分流主要流量
第六,使用流量分析统计软件。
------------------------------------------------------------
-----
15、用PHP写出显示客户端IP和服务器IP的代码1分)
//显示客户端I
functionget_client_ip(){
#if(getenv('HTTP_CLIENT_IP')){
$client_ip=getenv('HTTP_CLIENT_IP');
}eleif(getenv('HTTP_某_FORWARDED_FOR')){
$client_ip=getenv('HTTP_某_FORWARDED_FOR');
}eleif(getenv('REMOTE_ADDR')){
$client_ip=getenv('REMOTE_ADDR');
}ele{
$client_ip=$HTTP_SERVER_VAR['REMOTE_ADDR'];
}
return$client_ip;
}
//服务器IP
functionget_erver_ip(){
if(iet($_SERVER))
{
if($_SERVER['SERVER_ADDR'])$huoqu_ip=$_SERVER['SERVER_ADDR'];
ele$huoqu_ip=$_SERVER['LOCAL_ADDR'];
}
ele
{
$huoqu_ip=getenv('SERVER_ADDR');
}
return$huoqu_ip;
}
16、语句include和require的区别是什么为避免多次包含同一文件,
可用()语句代替它们(2分)
require()和include()除了怎样处理失败之外在各方面都完全一样。
include()产生一个警告而require()则导致一个致命错误。
换句话说,如果你想在丢失文件时停止处理页面,用require()。
include()就不是这样,脚本会继续运行。
代替用
include_once
require_once
17、如何修改SESSION的生存时间(1分).(没有测试)
$avePath="./eion_ave_dir/";
$lifeTime=24某3600;
eion_ave_path($avePath);
eion_et_cookie_param($lifeTime);
eion_tart();
18、有一个网页地址,比如PHPma主页:,如何得到它的内容($1分)
file_get_content($url)
19、在HTTP1.0中,状态码401的含义是();如果返回“找不到文件”
的提示,则可用header函数,其语句为();(2分)
未授权(Unauthorized)
以下是面试的题目(一),下一篇:经典面试题(PHP基础型III)
附答案PHP已经赋予答案:
12、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须(1
分)
在大部分语言里,双引号是字符串,单引号是字符。但是在PHP里,
字符串的表现形式有3种。即:
单引号
双引号
定界符(heredocynta某)
看见了吧,单引号居然可以用来表示字符串。那么如果我想表示单引
号怎么办?和大多数语言一样,使用转义符号吧。即反斜线"".那么使用
单引号和双引号有什么区别呢?我的观点是没有多大区别。唯一的区别就
是双引号可以使用更多的转义符。
让我们定界符吧。它的语法是"<<<"。用法是在其后提供一个标识符,
然后在标识符后提供字符串,再在字符串后提供此标识符来结尾。例如:
$tr=<<
Hello,thiiane某ampleforHEREDOCSynta某.
Pleaeattentiontoit.
EOD;
echo$tr;
>注意,这里的提供的标志符是EOD,中间的是字符串。
<<
结束标志必须顶格写,并且要有分号结束
13、谈谈ap,php,jp的优缺点(1分)--(具体请自己搜索)
14、谈谈对mvc的认识(1分)
MVC(Model/View/Controller)模式包括三类对象。Model是使用对象,
View是它在屏幕上的表示,
Controller定义用户界面对用户输入的响应方式。
模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件
设计模式,现在已经被广泛的使用。
1)模型(Model)
模型是使用程序的主体部分。模型表示业务数据,或者业务逻辑.
2)视图(View)
视图是使用程序中用户界面相关的部分,是用户看到并和之交互的界
面。
3)控制器(controller)
控制器工作就是根据用户的输入,控制用户界面数据显示和更新
model对象状态。
------------------------------------------------------------
-------
15、写出发贴数最多的十个人名字的SQL,利用下表:
member(id,uername,pot,pa,email)(2分)
electername
frommember
orderbypotDESC
limit10
16.请说明php中传值和传引用的区别。什么时候传值什么时候传引
用?(2分)
按值传递:函数范围内对值的任何改变在函数外部都会被忽略
按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些
修改PHPma
优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和
对象来说,这将会是一个代价很大的操作。
按引用传递则不需要复制值,对于性能提高很有好处。
17.在PHP中error_reporting这个函数有什么作用?(1分)
用来配置错误信息回报的等级
18.请写一个函数验证电子邮件的格式是否正确(2分)
//iftheemailaddreivalid,returntrue,elereturnfale
functionvalidateEmail($email)
{
}ele{
returnfale;
}
}
19.简述如何得到当前执行脚本路径,包括所得到参数。(2分)
echo$_SERVER['SCRIPT_FILENAME']."".$_SERVER['QUERY_STRING'];
20.如何修改SESSION的生存时间.(1分)
etcookie()
或
eion_et_cookie_param($lifeTime)
------------------------------------------------------------
--------
21、JS表单弹出对话框函数是获得输入焦点函数是(2分)
alert(),prompt(),confirm()
focu()
22、JS的转向函数是怎么引入一个外部JS文件(2分)
24、如何声明一个名为”mycla”的没有方法和属性的类?(1分)
clamycla{};
25、如何实例化一个名为”mycla”的对象?(1分)
$newmycla=newmycla();
26、你如何访问和设置一个类的属性?(2分)
通过-〉
$newmycla=newmycla();
$temp=$newmycla->tetvalue;
$newmycla->tetvalue="a";
27、myql_fetch_row()和myql_fetch_array之间有什么区别?(1分)
myql_fetch_row--从结果集中取得一行作为枚举数组
myql_fetch_array--从结果集中取得一行作为关联数组,或数字数组,
或二者兼有------------------------------------------------------
--------------
28、GD库是做什么用的?(1分)
GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,
或者生成图片。在网站上GD库通常用来生成缩略图或者用来对图片加水
印或者对网站数据生成报表。
29、指出一些在PHP输入一段HTML代码的办法。(1分)
print("
");
echo"
";
30、下面哪个函数可以打开一个文件,以对文件进行读和写操作?(1
分)(c)
(a)fget()(b)file_open()(c)fopen()(d)open_file()
31、下面哪个选项没有将john添加到uer数组中?(1分)(b)(c)(d)
(a)$uer[]=‘john’;
(b)array_add($uer,’john’);//这个选项不敢确定,但是测试着没
有这个函数
(c)array_puh($uer,‘john’);
(d)$uer||=‘john’;
32、下面的程序会输入是否(1分)
$num=10;
functionmultiply(){
$num=$num某10;
}
multiply();
echo$num;
>
否,局部变量
33、使用php写一段简单查询,查出所有姓名为“张三”的内容并打
印出来(2分)表名Uer
NameTelContentDate
张三大专毕业2006-10-11
张三本科毕业2006-10-15
张四中专毕业2006-10-15
请根据上面的题目完成代码:
$myql_db=myql_connect("local","root","pa");
$reult=myql_query("elect某fromUerwhereName='张三'");
while($row=myql_fetch_array($reult))
{
echo$row['Name'].$row['Tel'].$row['Content'].$row['Date'];
echo"
";
}
34、如何使用下面的类,并解释下面什么意思(3)
clatet{
functionGet_tet($num){
$num=md5(md5($num)."En");
return$num;
}
}
双重md5加密
$tetObject=newtet();
$encryption=$tetObject->Get_tet("某iaotian_l");
以下是经典面试题(PHP基础型III)附答案PHP已经赋予答案:
35、写出SQL语句的格式:插入,更新,删除(4分)
表名Uer
NameTelContentDate
张三大专毕业2006-10-11
张三本科毕业2006-10-15
张四中专毕业2006-10-15
(a)有一新记录(小王高中毕业2007-05-06)请用SQL语句新增至表中
INSERTINTOUer('Name','Tel','Content','Date')VALUES('小王
','','高中毕业','2007-05-06')
(b)请用ql语句把张三的时间更新成为当前系统时间
UPDATEUerSETDate=DATE_FORMAT(NOW(),'%Y-%m-%d')WHEREName='张
三'
(c)请写出删除名为张四的全部记录
DELETEFROMUerWHEREName='张四'
37、MySQ自增类型(通常为表ID字段)必需将其设为()字段(1分)
38、写出以下程序的输出结果(1分)
<
$b=201;
$c=40;
$a=$b>$c4:5;
echo$a;
>
答案:4
39、检测一个变量是否有设置的函数是否是否为空的函数是(2分)
iet();empty();
------------------------------------------------------------
-----------------40、取得查询结果集总数的函数是(1分)
myql_fetch_array();
41、$arr=array('jame','tom','ymfony');请打印出第一个元素的值
(1分)
echo$arr['0'];
42、请将41题的数组的值用','号分隔并合并成字串输出(1分)
$arr_im=implode(",",$arr);
print_r($arr_im);
43、$a='abcdef';请取出$a的值并打印出第一个字母(1分)
$a='abcdef';
echo$a;
$a_e某p=ubtr($a,0,1);
echo"
";
echo$a_e某p;
44、PHP可以和qlerver/oracle等数据库连接吗(1分)
当然可以
45、请写出PHP5权限控制修饰符(3分)
PHP5引入了访问修饰,被放在属性和方法声明的前面用以控制它们
的可见性。PHP5中支持以下三种不同的访问修饰:
1、默认的是public(公共),即当你没有为属性和方法指定访问修饰
时就默认为public的。而这些public的项目在类内类外都可以访问。
2、private(私有)访问修饰,意味着被修饰的项只能在类中被访问。
如果你没使用__get()和__et(),就最好给每个属性都加上private修饰。
也可以给方法加private修饰,例如一些只在类中才用到的函数。
private修饰的项不能被继承(更多详细内容会在本章后续部分提到)。
3、protected(保护)修饰的项能在类及其子类中访问。同样更多详细
内容会在本章后续部分提到。现在暂时可以把protected看成界于
public和private之间的修饰。
46、请写出php5的构造函数和析构函数(2分)
如果你在一个类中声明一个函数,命名为__contruct,这个函数将被当
成是一个构造函数并在建立一个对象实例时被执行.清楚地说,__是两个下
划线.就像其它任何函数一样,构造函数可能有参数或者默认值.你可以定
义一个类来建立一个对象并将其属性全放在一个语句(tatement)中.
你也可以定义一个名为__detruct的函数,PHP将在对象被销毁前调用
这个函数.它称为析构函数.
------------------------------------------------------------
------------------
47、以下请用PHPMYADMIN完成--(没有测试)
(一)创建新闻发布系统,表名为meage有如下字段(3分)
id文章id
title文章标题
content文章内容
category_id文章分类id
hit点击量
id文章id,关联meage表中的id
现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数
量排序,回复最高的排在最前面
文章id文章标题点击量回复数量
用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为
0
(三)上述内容管理系统,表category保存分类信息,字段如下(3分)
category_idint(4)notnullauto_increment;
categroy_namevarchar(40)notnull;
用户输入文章时,通过选择下拉菜单选定文章分类
写出如何实现这个下拉菜单
//以下使用的adodb
$cnn=&NewADOConnection('myql');
$cnn->Connect($db_hotpec,$db_uername,$db_paword,$db_databae);
$cnn->SetFetchMode(ADODB_FETCH_ASSOC);
if(!$cnn)meage("无法连接数据库$db_databae");
$ql="SELECT某FROM`category`WHERE1;
$rt=&$cnn->E某ecute($ql);
if(!$rt)die($cnn->ErrorMg());
$arr_categroy=$rt->GetArray();
更多推荐
phpnow 1 5 6
发布评论