wav转换mp3-trimleft

phpnow 1 5 6
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();

$row):>

">

更多推荐

phpnow 1 5 6