广州睿东网络科技有限公司是国内最专业的香港空间,云主机,香港VPS,香港服务器租用提供商,专注为国内站长提供高速且稳定的香港空间,云主机,香港VPS,香港服务器租用,欢迎您的选购!
当前位置:首页 -> 香港主机 -> 独立IP空间

PHP面试题之0731

云服务器 34℃ 1884评论

1、PHP支之父是谁?

Rasmus Lerdorf,拉斯姆斯●勒多夫。

2、$name和$$name有什么区别?

$name是变量,$$name是引用变量。例如:$name=sex;$$name=male;则$sex=male。

3、如何提交 form 表单而不是使用 submit 按钮?

使用javascript的submit()方法,如onclick时调用  document.formname.submit()。

4、用什么方法可以从mysql结果集中获取数据?

mysql_fetch_row,mysql_fetch_array,mysql_fetch_object,mysql_fetch_assoc。

5、mysql_fetch_object() 和 mysql_fetch_array() 有什么区别?

前者返回对象,需要用对象的方式遍历数据。后者返回数组,可以使用关联数组或索引数组方式遍历数据。

6、get 和 post方法有什么去别?

1)get方法有数据长度限制,最大2kb,post方法没有限制;

2)get方法请求数据直接显示在url上,不安全,post方法适合传输敏感请求。

7、如何从http://info@pcds.co.in中获取”pcds.co.in”?

Preg_match("/@(S+)$/" , "http://info@pcds.co.in" , $matches);

        echo $matches[1];

8、用PHP和mysql如何创建一个数据库?

mysql_create_db(dbname);

9、require 和 include 有什么区别?

都是用来加载文件的。

1)include报警报,require报致命错误。

2)include执行时文件每次都要进行读取和评估,require只处理一次。

3)include受流程控制影响,require不走流程控制。

10、在PHP文件中能否多次使用include("xyz.php")?

可以,但是如果xyz.php中有函数定义,第二次include时会报函数不能重定义错误。

11、mysql数据表引擎有什么区别,哪个是默认的?

1)MyISAM,默认,这种存储引擎在硬盘上会存三个文件,文件名为表名,后缀名分别为.frm(存储表结构)、.myd(存储数据)、.myi(存储索引)。

2)InnoDB,支持事务安全的存储引擎,支持提交、回滚和恢复。

3)Merge,

4)Heap(MEMORY),内存存储引擎

5)BDB(BerkeleyDB),同样支持提交和回滚

6)EXAMPLE,

7)FEDERATED,

8)ARCHIVE,

9)CSV,

10)BLACKHOLE,

12、header()函数的作用?

可以给客户端发送报文头,必须在任何实际输出被发送之前调用header()函数。

利用它header()重定向,如: header(‘Location:http://baidu.com/’);

13、如何在命令行模式下执行php脚本?

利用PHP CLI(Command Line Interface),将脚本名作为参数,如:

$ php test1.php

14、如何配置zend框架,使其支持简写标记<??>?

修改php.ini文件,设置short_open_tag=on即可开启。

15、Shopping cart online validation i.e. how can we configure Paypal,etc.?

Nothing more we have to do only redirect to the payPal url after

submit all information needed by paypal like amount,adresss etc.

16、nl2br()函数的作用?

在html换行符前加<br/>标签。

17、什么是htaccess?为什么使用它?

.htaccess文件是apache服务器提供的配置文件方法,使用它可以实现针对指定目录的基础配置更改,被放置该文件的目录和其所有只目录都适用文件中的配置。

18、如何获取客户端ip地址,来源地址?

使用$_SERVER[REMOTE_ADDR]和$_SERVER[HTTP_REFERER]。

19、为什么使用lamp环境替代其他程序、服务和运行环境?

Lamp是开源的,linux相比windows安全性更高,apache相比iis也具函数性和安全性,mysql是目前最受欢迎的开源数据库,php相比asp等其他脚本语言更加快速。

20、如何利用mysql加密和解密数据?

使用AES_ENCRYPT () 和 AES_DECRYPT ()。

21、如何用php加密用户名和密码?

Php中的加密和解密功能:

加密 解密

AES_ENCRYT() AES_DECRYPT()

ENCODE() DECODE()

DES_ENCRYPT() DES_DECRYPT()

ENCRYPT() 不可逆

MD5() 不可逆

OLD_PASSWORD() 不可逆

PASSWORD() 不可逆

SHA() 和 SHA1() 不可逆

不可逆 UNCOMPRESSED_LENGTH()

22、面向对象编程的特点和优势?

面向对象程序的主要优势是其易维护和易扩展性,可以有效降低维护成本。

相比过程化编程,它与现实世界认知模式更接近,更容易让非技术人员理解,使他们更容易参与和改进项目。对于某些系统,面向对象方法可以加快开发时间,因为许多对象是标准的跨系统可重复使用的,比如时间管理、航运、购物车等组件,可以供多个系统复用。

23、过程化编程和面向对象编程的区别?

1)过程化编程易于上手,但相比面向对象编程,它更复杂、让人难于了解整个系统。

2)过程化编程,很难使用mvc等设计模式。

3)在面向对象编程中,我们可以使用继承和多态去复用功能,但过程化编程中需要复制和粘贴。

24、友元函数有什么作用?

友元是一种定义在类外部的普通函数,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。友元函数 通过对象的引用可以直接访问私有变量而一般的函数则不可以。

25、public, private, protected,static, transient, final 和 volatile有什么区别?

Public:被声明为public的元素可以在任何地方访问。

Protected:被声明为protected的元素之能在父类或定义它的类中访问。

Private:被声明为私有private的元素只能在定义它的类中访问。

Static:声明属性或方法为静态,就可以不实例化而知己访问。静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。

Final:如果父类方法声明为final,则子类无法覆盖该方法,如果一个类被声明为final,则不能被继承。

Transient:临时变量(private)不能被序列化。

Volatile:多线程时使用,声明为volatile的变量将不会由编译器进行优化,因为它们的值可能随时改变。

26、php错误有哪些类型?

1)notices:提示,如使用未定义变量。

2)warnings:警告,如include一个不存在的文件。

3)fatal errors:致命错误,会终止脚本运行,如实例化一个不存在的类、访问一个不存在的函数。

27、substr和subistr的功能?

Substr返回字符串的一部分,从第一个字符开始查找,可以传偏移量和截取个数。

Subistr是substr的不分大小写版本。

28、如何asp页面转换为php页面?

有很多工具可以实现,比如http://asp2php.naken.cc./

29、函数htmlentities的作用?

将字符转换为html实体。如“&”会被转换为“&amp;”

30、如何获取当前时间的秒数?

$second = date(“s”);

31、php中如何转换时区?

使用date_default_timezome_get和date_default_timezone_set函数。

32、urlencode和urldecode有什么作用?

编码和解码url字符串,编码时会将除了-_.之外的非字符数字字符都转换为百分号(%)后跟两位十六进制数的形式,空格则编码为加号(+)。

此编码与WWW表单POST数据的编码方式是一样的,同时与application/x-www-form-urlencoded 的媒体类型编码方式一样。

33、unlink和unset函数有什么区别?

Unlink用于删除文件,unset用于销毁变量。

34、如何将变量写入session?

$_SESSION[‘name’] = ‘sonia’;

35、利用php图片函数如何获取图片的大小、类型、宽度和高度?

Exif_imagetype(),获取图片类型。

Getimagesize(),获取图片大小。

Imagesx(),获取图片宽度。

Imagesy(),获取图片高度。

36、php如何获取用户浏览器信息?

$_SERVER[‘HTTP_USER_AGENT’]

37、php上传文件大小上限是多少,如何修改上限?

默认上限是2mb,可以修改php.ini调整,如下:

Upload_max_filesize = 2M

38、如何提高php脚本执行时间限制?

修改php.ini,如下:

Max_excution_time = 30

每个脚本执行时间,单位为秒。

39、如何备份mysql表,如何恢复?

备份:

BACKUP TABLE 

40、如何优化或增加mysql查询语句的速度?

1)不使用select * ,只查询需要的字段

2)给适当的字段增加索引

3)使用limit关键字控制数据条数。

41、有什么方法可以获取当前的session id?

Session_id()

42、如何销毁session,如何销毁session中的变量?

Session_unregister可以销毁当前的sesssion

Session_unset可以释放session中的变量

43、php如何设置和销毁cookie?

设置:Setcookie(’user’, value, expire, path, domain);

销毁:setcookie(‘user’, ‘’, time()-3600)

44、有什么方法可以在页面之间传递变量?

GET/QueryString

POST

45、ereg_replace和eregi_replace有什么区别?

都是替换,后者忽略大小写

46、有哪些数组排序函数?

Sort(),arsort()

Assort(),ksort()

Natsort(),natcasesort()

Rsort(),usort()

Array_muletisort(),uksort()

47、如何获取数组中的元素个数?

1)sizeof(),count()的别名

2)count()

48、session_set_save_handler 有什么作用?

用户级session存储函数,可以将数据存储到session中。

49、如何判断一个变量是数字?

1)is_numeric(),如果是数字或数字字符串返回true,否则返回false。

2)isNaN(),用于判断一个值是否不是一个数字

50、有什么工具可以画mysql的E-R图?

Case studio

Smart Draw

51、列出php中的预定义类?

Directory

stdClass

__PHP_Incomplete_Class

Exception

Php_user_filter

52、如何写一个脚本支持双语(如英语、德语)?

可以生成两个语言文件,分别存储变量,在运行php脚本时选择所需的语言,引入该语言的变量。

53、抽象类和接口有什么区别?

抽象类中可能有一个或多个抽象方法,但不必所有方法都是抽象的。

抽象类的抽象方法必须由子类实现。

接口中的所有方法都是抽象方法。

实现接口的类必须实现所有的抽象方法。

54、使用javascript如何发送邮件?

Js没有任何网络功能,因为他是为客户端设计的。

但我们可以用js调用客户端的邮件协议mailto来提示发送邮件,这需要客户端的批准。

55、mysql表名、数据库名和字段名的最大长度?

Database 64

Table 64

Column 64

Index 64

Alias 255

56、mysql中SET函数能接收多少值?

最多64个值

57、除了explain命令还有什么命令可以获取表结构?

Desc(ribe) 表名;

58、在创建表时,有多少个表会创建,都是什么?

.frm文件,用于存储表结构

.MYD文件,用于存储数据

.MYI文件,用于存储索引

59、.frm、.myd、.myi扩展名的文件包含什么,有什么作用?

Mysql默认表类型是MyISAM,每个MyISAM表在硬盘上存储都包含这三种文件。

同上一题

60、mysql中如何获取一张表的数据条数?

SELECT COUNT(*) FROM table_name;

61、php中如何从结果集中获取数据条数?

$result = mysql_qurery($sql, $db_link);

$num = mysql_num_rows($result);

62、mysql中如何获取当前时间?

日期:SELECT CURDATE();

CURRENT_DATE()  = CURDATE()

时间:SELECT CURTIME();

CURRENT_TIME() = CURTIME()

63、php支持什么类型的继承?

Php支持单继承,使用extends关键词继承类。

64、Primary key和unique key有什么区别?

Primary key:一张表只能有一个字段为主键,主键上每条数据的值唯一,值不能为NULL。

Unique key:一张表中可以存在多个字段为unique key,用于保证字段中数据的唯一性,值可以为NULL。

65、什么是垃圾回收?默认时间?刷新时间?

垃圾回收在php中是自动化的,

66、mysql和php有什么优劣势?

两者都是开源免费的,php比asp和jsp运行都快。

67、在sql中group by和order by有什么区别?

Order by 是在同一字段上对每行的值进行比较。

Group by是在一个或多个字段上对数据进行分组,将相同值的行合并,可以配合COUNT、SUM、AVG使用。

68、char和varchar类型有什么区别?

Char类型占用字节数固定,如char(15),存储’name’会占用2字节,有13个字节会浪费。

Varchar类型占用字节数跟存储数据有关,如varchar(15),存储’name’会占用2字节,不会多占用13个字节。

69、php中md5的用法?

Md5加密会得到32位的字串,不可逆。

70、如何将文本数据导入数据库?

命令:LOAD DATA INFILE file_name;要保证文件中的数据结构正确。

71、mysql如何获取两个日期的时间差?

SELECT DATEDIFF(‘2013-01-20’, ‘2013-09-30’);

72、php如何获取两个日期的时间差?

$date1 = date(‘Y-m-d’);

$date2 = ‘2013-10-30’;

$days = (strtotime($date1) – strtotime($date2)) / (60*60*24);

73、php如何自动加载类?

使用spl_autoload_register();

74、php中有几种继承,如何实现?

Php类只支持单继承,但接口可以实现多继承。

75、php如何获知用户读取了邮件?

??Disposition-Notification-To

76、session默认生存时间和路径?

Php中Session默认生存时间为1440秒或24分钟。

默认路径为/tmp

77、如何判断用户退出?何时空闲?

在加载页面时,通过检查session变量是否存在可以判断用户登录状态。默认情况下session在浏览器关闭时过期,可以在php.ini中修改过期时间,如要改成关闭浏览器后5分钟,则session.cookie_lifetime = 300,重启apache。

78、如何跟踪用户登录?

如果用户登录获取用户ip、userid等配置,存储到数据库中标记为在线,如果用户登出或session过期则标记为离线,这样计算标记为在线的数据条数就可以知道在线人数。

79、php中有什么库可以操作pdf?

PDFlib,php4中提供函数,php5中提供面向对象接口。

FPDF是一个php类,可以实现pdf操作。

80、php有什么图片操作类库?

GD库,还有其他库可用,看需要处理什么类型的图片

81、什么是设计模式?单例模式?

设计模式是一般的可复用的解决方案,解决软件设计中经常出现的问题。

单例模式,确保一个类只有一个实例,并提供一个全局访问点。

82、什么是魔术方法?魔术常量?

魔术方法是所有类的实例可以使用的方法。

魔术方法已”__”开头。目前有以下魔术方法:

__construct() __destruct() __set() __get() __call() __toString() __sleep()

__wakeup() __isset() __unset() __autoload() __clone()

魔术常量是php中的预定义常量。包括:

__LINE__,文件中的当前行号

__FILE__,文件的完整路径和文件名。

__DIR__,文件所在的目录。

__FUNCTION__,函数名称

__CLASS__,类名称。

__TRAIT__,Trait名称

__METHOD__,类的方法名

__NAMESPACE__,当前命名空间名称。

83、什么是魔术引号?

魔术引号(magic quote)是一个自动将php脚本的数据进行转义的过程。最好在编码时不要转义而在运行时根据需要而转义。

84、什么是跨站脚本?SQL注入?

跨站脚本(XSS)是一种计算机安全漏洞,是代码注入的一种,通常出现在web应用程序上。它允许恶意用户将代码注入到网页上,其他用户观看网页时就会收到影响。这种攻击通常包含了html以及客户端脚本语言。

SQL注入是发生于应用程序数据库层的安全漏洞。是在输入的字符中注入SQL指令,在设计不良的程序中忽略了检查,那么这些注入的指令会被数据库误认为是正常的SQL指令而运行,因此遭到破坏。

85、什么是url重写?

url重写可以将动态url转为静态url。

静态url的好处:

1)静态url在搜索引擎上能得到更好的排名

2)搜索引擎认为动态url页面比静态url页面慢很多

3)静态url对用户更友好

我们可以利用url重写将变量/cookies写到url上,从而处理session

86、php主要的安全漏洞是什么?如何预防?

1)在仔细检查用户输入前,不要include、require甚至打开一个用户输入的文件。

2)注意不要轻易在用户输入值上使用eval()函数,避免执行到危险命令。

3)不要轻易使用register_globals = ON,它的设计目的是使php更简单,但也会带来更多安全漏洞。

4)永远不要执行未转义的查询。

5)为保护区域,使用session或每次验证的登录

6)如果不想文件被看见,把文件加上.php后缀

87、php是否支持微软的SQL server?

支持,使用mssql或odbc模块可以访问SQL server

88、什么是MVC?为什么使用它?

MVC是软件工程中的一种设计模式。把软件系统分为三个部分:

模型:算法或数据库管理

视图:界面设计人员进行图形界面设计。

控制器:负责转发请求,对请求进行处理

89、什么是框架?工作原理?有什么优点?

在一般情况下,

90、什么是CURL?

CURL是client URL library的简称。

Curl是一种传输文件的命令行工具,支持多种协议,如FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET,DICT, LDAP, LDAPS and FILE。

91、什么是PDO?

Pdo扩展定义了一个轻量级的、一致的接口用于在php中访问数据库。支持多种数据库服务器。

Php有很多优点,如干净、简单、可移植的api,但也有缺点,如它不允许使用一些数据库新功能,如mysql的多语句支持。

92、什么是php的mysqli扩展?

Mysqli扩展增加了mysql4.1.3以后的新特性,php5开始支持。

Mysqli扩展的新特性:

面向对象接口

支持预处理

支持多个语句

支持事务

增强的调试功能

嵌入式服务器支持

Linux=L

Apache=A

Mysql=M

Php=P

HTML=H

Javascript =J


投诉
喜欢 (1884)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: