Php面试宝典100题汇总

合集下载

PHP精典面试题(附答案)

PHP精典面试题(附答案)

PHP精典⾯试题(附答案)1.输出Mozilla/4.0(compatible;MISIE5.01;Window NT 5.0)是,可能输出的语句是? A:$_SERVER['HTTP_USER_AGENT_TYPE']; B: $_SERVER['HTTP_USER_AGENT']; C: $_SERVER['USER_ACENT']; D: $_SERVER['AGENT'];2.下⾯功能php⽆法实现的是? A: 服务端脚本运⾏; B: 命令⾏脚本运⾏; C: 客户端图形界⾯(GUI)程序; D: 浏览器执⾏DOM操作3.下⾯说法不正确的是? A: PHP有四种标量类型:布尔型,整型,浮点型,字符串; B: 浮点型与双精度是同⼀种类型 C: 复合类型包括:数组,对象,资源; D: 伪类型:混合型,数字型,回调;4.执⾏代码后<?phpecho function_exists('print');>输出的结果是? A: 空 B: true C: false D: FALSE5.下⾯不是PHP语法的组成部分的函数是? A: array B: eval C: each D: list6.执⾏下⾯代码的结果是什么?<?php$bool = true;echo gettype($bool);echo is_string($bool);> A: boolean B: boolean0 C: booleanFalse D: booleanfalse7.写出下⾯程序代码执⾏结果$a = 12;$b = 012;$c = 0x12;echo$a,"\n",$b,"\n",$c;> A: 22 B: 10 C: 6 D: 128下⾯代码的执⾏结果是?<?phpecho 1+2+"3+5+6";> A: 0 B: 3 C: 6 D: "33+4+5"9.下⾯代码加⼊下⾯那个函数后返回true? return ? == 'A'; A: ord(65) B: chr(65) C: 65+" D: "65+10.下⾯代码输出正确的是?<?php$a = array(1=>5,5=>8,22,2=>'8',81);echo$a[7];echo$a[6];echo$a[3];> A: 空 22 81 B: 空 81 22 C: 81 22 空 D: 空空空11.下⾯代码的输出结果是?<?php$a[bar] = 'hello';echo$a[bar];echo$a['bar'];> A: hello B: 空空 C: 报错 D: hello hello12.写出下⾯代码的结果:<?phpecho 1>>0;echo 2>>1;echo 3<<2;> A: 012 B: 106 C: 1112 D: 12313.下⾯代码执⾏结果?<?phpfor($i=1;$i<10;$i++){print$i;}> A: 0123456789 B: 01234567890 C: ⽆输出 D: 死循环14.下⾯对于echo,print 的描述正确的是? A: echo,print都可以打印多个参数 B: print 可以打印多个参数,echo不可以 C: echo可以打印多个参数,print不可以 D: echo,print 都不可以打印多个参数15.对于以下的代码<?php$fruits = array('strawberry'=>'red','banana'=>'yellow'); > 能够正确得到结果'yellow' 的代码是? A: echo "A banana is {$fruits['banana']}"; B: echo "A banana is $fruits['banana']"; C: echo "A banana is {$fruits[banana]}"; D: echo "A banana is $fruits[banana]"; 16.下⾯代码执⾏结果是?<?phpfunction change(){static$i = 0;$i++;return$i;}print change();print change();>正确答案:1,217.$foo = 'test';$bar = <<<EOT$foo barEOT;echo$bar;>上⾯语句输出的结果是? A: $foo bar; B: 'EOT' $foo bar EOT C: test bar D: 'EOT' test bar EOT18.$a = 3;$b = 4;if($a || $b = 5){echo 'tudou';} $b的值是? A: 4; B: 5 C: 3; D: false;19.下⾯那个表达式不能将两个字符串$s1和$s2串联成⼀个单独的字符串? A: $s1+$s2 B: "{$s1}{$s2}" C: $s1.$s2 D: implode(",array($s1,$s2)) E: 以上⽅法都能实现20.下⾯的脚本运⾏以后,$array数组所包含的值是什么?<?php$array = array('1','1');foreach($array as$k => $v){$v = 2;}> A: array('2','2') B: array('1','1') C: array(2,2) D: array(Null,Null)21.cron后台常驻程序(daemon)⽤于? A: 负责⽂件在⽹络中共享 B: 管理打印⼦系统Manages theprinting subsystem C: 跟踪管理系统信息和错误 D: 管理系统⽇常任务的调度(scheduing)22.怎么了解您在当前的⽬录下还有多⼤空间? A: Use df23.有⼀个备份程序mybackup,需要在周⼀⾄周五下午⼀点和晚上⼋点各运⾏次,下⾯那⼀条crontab的项可以完成⼯作? A: 0 13,20 * * 1,5 mybackup B: 0 13,20 * * 1,2,3,4,5 mybackup C: *13,20 * * 1,2,3,4,5, mybackup D: 0 13,20 1,5 * * mybackup24.下⾯那条命令可以吧f1.txt复制为f2.txt ? A: cp f1.txt f2.txt B: cat f1.txt|f2.txt C: cat f1.txt||f2.txt D: copy f1.txt|f2.txt25.使⽤命令可以查看linux的启动信息? A: mesg -d B: dmesg C: cat /etc/mesg D: cat /var/mesg26.在vi 中退出不保存的命令是? A: :qt B: :r C: :wq D: :q!27.下⾯那个选项没有将john添加到users数组中? A: $users[] = 'john'; B: array_add($users,'john'); C: array_push($users,'john'); D: $users ||= 'john';[a,c]28.下列不属于Javascript语法关键字/保留字的是? A: var B: $ C: functiom D: while29.下列不属于JavaScript DOM事件的是? A: onclick B: onkeydown C: onbodyload D: onmouseover30.下列PHP函数中不能直接在页⾯上输出字符串的函数是?31.在PHP中,'+'操作符的功能不包括 A: 字符串连接 B: 数组数据合并 C: 变量数据相加32.⽤php获取当前时间并打印,打印格式为2006-5-10 22:21:21echo date('Y-n-m H:i:s');33,字符串转数组,数组转字符串,字符串截取,字符串替换,字符串查找的函数分别是什么? 字符串转数组函数: str_split() explode() 数组转字符串 join() implode() 字符串截取 substr() mb_substr() 字符串替换 str_replace() preg_replace() 字符串查找 preg_match() preg_match_all() strops() strrops()34.解释⼀下php类中pretect,public,private,interface,abstract,final,static的含义 pretect:受保护的 public:公有的 private:私有的 interface:接⼝ abstract:抽象类或者抽象⽅法 final:最终版本的类或者⽅法 static:静态属性或者⽅法35.如何把字符串'08/26/2004'替换成'2004-08-26'?$date = '08/26/2004';echo preg_replace('/(\d+)\/(\d+)\/(\d+)/',$3-$1-$2,$date);36.从表login中选出name字段包含admin的前10条结果所有信息的sql语句select * from login where name '%admin%' limit 10;37.解释左连接,右连接,内连接,索引: 左连接: left join on 左连接是以左边的表为主表,先输出左边表的所有数据,右边匹配输出,不匹配的为null 右连接:right join on 右连接是以右边的表为主表,先输出右边表的所有数据,左边匹配输出,不匹配的为null 内连接:inner join on 内连接必须同时符合条件的内容才会输出,相等于普通的多表查询38.写⼀个函数。

php面试题目带答案(3篇)

php面试题目带答案(3篇)

第1篇一、基础题1. 问题:请解释PHP中`$_SERVER`的作用。

答案:`$_SERVER`是一个全局数组,它包含了头信息、路径和脚本位置等信息。

通过这个数组,我们可以获取到诸如服务器的名称、执行脚本的路径、HTTP请求头等信息。

2. 问题:简述PHP中的魔术引用(`&`)的作用。

答案:魔术引用在PHP中用于引用传递。

当使用`&$variable`时,实际上传递的是变量的引用,而不是值。

这在函数内部修改变量时非常有用,因为它允许函数内部直接修改外部传入的变量。

3. 问题:请解释PHP中的`include`和`require`的区别。

答案:`include`和`require`都是用于包含其他PHP文件的工具,但它们在错误处理上有区别。

`require`如果找不到文件,会抛出一个致命错误并终止脚本执行;而`include`则会输出一条警告信息,但不会终止脚本执行。

4. 问题:如何使用PHP获取当前的时间戳?答案:可以使用`time()`函数获取当前的时间戳,该函数返回自1970年1月1日00:00:00 UTC以来的秒数。

5. 问题:简述PHP中的数据类型。

答案:PHP有八种数据类型,包括整型(int)、浮点型(float)、字符串(string)、布尔型(bool)、对象(object)、资源(resource)、数组(array)和NULL。

二、进阶题1. 问题:请解释PHP中的`session`和`cookie`的区别。

答案:- `session`存储在服务器端,通过会话ID来识别不同的用户,安全性较高。

- `cookie`存储在客户端,通常用于存储用户偏好设置或其他小量数据,安全性相对较低。

2. 问题:如何使用PHP进行文件上传?答案:- 首先,需要设置`php.ini`文件中的`file_uploads`和`upload_max_filesize`参数。

- 在HTML表单中,使用`enctype="multipart/form-data"`属性。

php面试题目100题(3篇)

php面试题目100题(3篇)

第1篇PHP基础1. 什么是PHP?- PHP是一种开源的、服务器端脚本语言,用于创建动态网页和应用程序。

2. PHP的主要特点有哪些?- 易于学习、跨平台、丰富的库支持、良好的社区支持等。

3. PHP和HTML有什么区别?- PHP是一种服务器端脚本语言,而HTML是用于创建网页的标准标记语言。

4. 如何安装PHP?- 在操作系统上下载PHP安装包,配置Web服务器(如Apache),设置PHP扩展,并配置文件权限。

5. PHP中的变量如何声明?- 使用$符号后跟变量名,如$variable。

6. PHP中的数据类型有哪些?- 整数、浮点数、字符串、布尔值、数组、对象、资源、NULL。

7. 如何处理PHP中的错误?- 使用error_reporting()函数、try-catch语句、set_error_handler()函数等。

8. 什么是魔术引用?- 当传递一个变量到函数时,使用&符号来传递变量的引用,而不是变量的值。

9. 如何实现PHP中的数据加密?- 使用PHP内置的加密函数,如md5(), sha1(), password_hash()等。

10. 什么是PHP中的面向对象编程(OOP)?- OOP是一种编程范式,它允许将数据(属性)和行为(方法)封装在一起。

PHP变量和常量11. 什么是PHP中的变量?- 变量用于存储信息到内存中,可以是任何类型的数据。

12. 如何定义PHP中的常量?- 使用define()函数或const关键字。

13. PHP中的变量作用域有哪些?- 局部作用域(函数内)、全局作用域(函数外)、静态作用域、动态作用域。

14. 如何使用超全局变量?- $GLOBALS数组包含了所有全局变量。

15. 如何区分变量和常量?- 变量在运行时可以改变值,而常量一旦定义就不能更改。

PHP控制结构16. 什么是条件语句?- if, elseif, else等用于根据条件执行代码块。

php经常用的面试题(3篇)

php经常用的面试题(3篇)

第1篇第一部分:基础概念1. 什么是PHP?- 解析:PHP(Hypertext Preprocessor)是一种开源的通用服务器端脚本语言,特别适用于网页开发。

PHP可以嵌入HTML中,与HTML、CSS、JavaScript等前端技术相结合,实现动态网页的构建。

2. PHP与HTML的区别是什么?- 解析:HTML是一种标记语言,用于创建网页的结构和内容。

PHP是一种脚本语言,用于处理服务器端的数据,动态生成HTML页面。

HTML静态,PHP动态。

3. 什么是PHP的变量?- 解析:PHP的变量以美元符号($)开头,用于存储数据。

变量命名规则为首字母小写,单词之间使用下划线分隔。

4. PHP的数据类型有哪些?- 解析:PHP有八种内置数据类型:整数(int)、浮点数(float)、字符串(string)、布尔值(bool)、数组(array)、对象(object)、资源(resource)和NULL。

5. 如何声明一个数组?- 解析:可以使用以下方式声明一个数组:```php$array = array("apple", "banana", "orange");或者$array = ["apple", "banana", "orange"];```6. 什么是函数?- 解析:函数是一段可以被重复调用的代码块,用于执行特定的任务。

PHP中的函数可以接受参数,并返回值。

- 解析:使用以下语法定义一个函数:```phpfunction functionName($param1, $param2) {// 函数体}```第二部分:控制结构1. 什么是条件语句?- 解析:条件语句用于根据条件判断执行不同的代码块。

PHP中常用的条件语句有if、else if、else。

2. 如何使用循环结构?- 解析:PHP中常用的循环结构有for、while、do...while。

php面试题100(3篇)

php面试题100(3篇)

第1篇PHP基础知识1. 什么是PHP?2. PHP的主要特点是什么?3. PHP与HTML的区别是什么?4. PHP是客户端脚本语言还是服务器端脚本语言?5. PHP可以运行在哪些操作系统上?PHP环境搭建6. 如何安装PHP环境?7. 如何配置PHP的扩展模块?8. 如何设置PHP的配置文件(php.ini)?9. 如何使用XAMPP、WAMP或MAMP等集成开发环境(IDE)?10. 如何调试PHP代码?PHP基本语法11. PHP脚本如何开始和结束?12. 如何声明变量?13. PHP的数据类型有哪些?14. 如何使用常量?15. 如何使用注释?控制结构16. 什么是条件语句?17. 如何使用if、else、switch语句?18. 什么是循环语句?19. 如何使用for、while、do-while循环?20. 什么是break和continue语句?函数21. 什么是函数?22. 如何定义和使用自定义函数?23. 什么是内置函数?24. 如何传递参数到函数?25. 什么是返回值?数组26. 什么是数组?27. 如何声明和初始化数组?28. 如何遍历数组?29. 数组的常用操作有哪些?30. 什么是关联数组?对象31. 什么是面向对象编程(OOP)?32. 如何定义类和对象?33. 什么是构造函数和析构函数?34. 如何使用封装、继承和多态?35. 如何定义和调用方法?数据库操作36. PHP中常用的数据库类型有哪些?37. 如何连接MySQL数据库?38. 如何执行SQL查询?39. 如何处理数据库结果集?40. 如何使用预处理语句?文件操作41. 如何读取和写入文件?42. 如何打开、关闭文件?43. 如何使用文件指针?44. 如何处理文件上传?45. 如何使用目录操作函数?表单处理46. 如何创建HTML表单?47. 如何获取表单数据?48. 如何验证表单数据?49. 如何使用POST和GET方法?50. 如何处理文件上传表单?安全性51. 什么是SQL注入?52. 如何防止SQL注入?53. 什么是XSS攻击?54. 如何防止XSS攻击?55. 什么是CSRF攻击?56. 如何防止CSRF攻击?错误处理57. PHP中如何处理错误?58. 什么是错误报告级别?59. 如何使用try-catch语句?60. 如何自定义错误处理函数?PHP版本和扩展61. PHP有几个主要版本?62. PHP7相比PHP5有哪些改进?63. 如何安装PHP扩展?64. 常用的PHP扩展有哪些?65. 如何使用pecl安装扩展?其他66. 什么是命名空间?67. 如何使用类和对象?68. 什么是序列化和反序列化?69. 如何使用session?70. 什么是cookies?71. 如何使用cURL?72. 什么是SOAP和RESTful API?73. 如何使用JSON和XML?74. 什么是CLI(命令行界面)脚本?75. 如何使用Apache模块?76. 如何使用PHP-GTK?77. 如何使用PHP-CLI?78. 如何使用PHP-FPM?79. 什么是PHP安全模式?80. 什么是PHP优化器(OPcache)?高级主题81. 如何实现会话管理?82. 如何实现缓存?83. 如何实现日志记录?84. 如何实现缓存和日志记录?85. 如何实现用户认证和授权?86. 如何实现RESTful API?87. 如何实现RESTful API的安全性?88. 如何实现缓存和日志记录?89. 如何实现分布式系统?90. 如何实现负载均衡?91. 如何实现消息队列?92. 如何实现微服务架构?93. 如何实现区块链技术?94. 如何实现人工智能和机器学习?95. 如何实现区块链技术?96. 如何实现大数据处理?97. 如何实现云计算?98. 如何实现边缘计算?99. 如何实现物联网(IoT)?100. 如何实现区块链技术?以上是100道PHP面试题的概览,每道题都需要根据实际情况进行深入研究和扩展。

php面试题及答案100道(3篇)

php面试题及答案100道(3篇)

第1篇PHP基础知识1. 什么是PHP?- PHP是一种开源的、服务器端的脚本语言,主要用于网页开发。

2. PHP有哪些优点?- 灵活性高、易于学习、开源免费、广泛的社区支持。

3. PHP的运行环境有哪些?- Apache、Nginx、IIS等服务器软件。

4. PHP的版本有哪些?- PHP 5.x、PHP 7.x、PHP 8.x。

5. 如何检查PHP版本?- 使用`phpinfo()`函数或者在PHP文件中添加`echo phpversion();`。

6. 什么是PHP的超全局变量?- `$GLOBALS`、`$_SERVER`、`$_GET`、`$_POST`、`$_FILES`等。

7. 如何设置PHP的默认编码?- 在PHP配置文件(php.ini)中设置`default_charset`。

8. 什么是PHP的数据类型?- 整数、浮点数、字符串、布尔值、数组、对象、资源、NULL。

9. 如何定义一个PHP变量?- 使用$符号后跟变量名。

10. 什么是变量作用域?- 全局作用域、局部作用域、静态作用域。

基本语法11. 如何注释PHP代码?- 单行注释:`//`- 多行注释:`/ /`12. 如何比较两个字符串?- 使用`==`或`===`。

13. 如何遍历数组?- 使用`foreach`循环。

14. 如何定义一个函数?- 使用`function`关键字。

15. 如何调用一个函数?- 使用函数名后跟括号。

16. 如何传递参数给函数?- 在函数定义时列出参数,调用时传递值。

17. 如何定义一个类?- 使用`class`关键字。

18. 如何创建一个对象?- 使用`new`关键字。

19. 如何访问对象属性和方法?- 使用`$object->property`和`$object->method();`。

20. 什么是魔术方法?- PHP中的特殊方法,如`__construct()`、`__destruct()`、`__get()`等。

php面试题库100题(3篇)

php面试题库100题(3篇)

第1篇一、基础知识1. PHP是什么?请简要描述其特点和用途。

2. 什么是PHP的超全局变量?请列举几个常见的超全局变量。

3. 如何区分GET和POST方法?它们各自有什么优缺点?4. 简述PHP中的面向对象编程(OOP)的基本概念,如封装、继承、多态。

5. 请解释PHP中的魔术引用(Magic Quotes)和为什么它已被弃用。

6. 什么是命名空间?它在PHP中的作用是什么?7. 简述PHP中的数据类型,如整数、浮点数、字符串、布尔值等。

8. 如何定义一个函数?请给出一个示例。

9. 什么是数组?如何在PHP中创建和操作数组?10. 请解释PHP中的关联数组与索引数组之间的区别。

二、语法与构造11. 如何声明一个常量?请给出一个示例。

12. 如何使用条件语句(如if、else、switch)进行逻辑判断?13. 如何使用循环语句(如for、while、do-while)执行重复操作?14. 如何使用函数参数传递值和引用?请举例说明。

15. 请解释PHP中的类型转换,如从字符串到整数,从整数到布尔值等。

16. 什么是类型提示?在PHP 7及以后版本中它有什么作用?17. 如何处理PHP中的错误和异常?请使用try-catch语句举例。

18. 如何使用字符串函数,如strlen、trim、strpos?19. 请解释PHP中的魔术常量,如__LINE__、__FILE__等。

20. 如何使用数组函数,如array_merge、array_slice、array_reverse?三、面向对象编程21. 如何定义一个类?请给出一个示例。

22. 如何创建类的实例?请举例说明。

23. 请解释构造函数和析构函数在类中的作用。

24. 如何实现类的继承?请举例说明。

25. 什么是接口和抽象类?它们在PHP中的作用是什么?26. 如何使用封装和访问修饰符(如public、protected、private)来控制类的访问权限?27. 请解释PHP中的魔术方法,如__get、__set、__construct等。

php面试题试题及答案(3篇)

php面试题试题及答案(3篇)

第1篇一、基础语法与变量1. 问题:PHP中的变量命名规则是什么?答案:PHP中的变量命名规则如下:- 变量名必须以字母或下划线开头。

- 变量名可以包含字母、数字和下划线。

- 变量名是区分大小写的。

- 变量名不能包含空格或点。

2. 问题:如何声明一个PHP变量?答案:在PHP中,可以使用以下方式声明一个变量:```php$variable = "Hello, World!";```或者简写为:```php$variable = "Hello, World!";```3. 问题:PHP中的变量类型有哪些?答案:PHP中的变量类型包括:- 整数(Integer)- 浮点数(Float)- 字符串(String)- 布尔值(Boolean)- 数组(Array)- 对象(Object)- 资源(Resource)- NULL4. 问题:如何检查一个变量的类型?答案:可以使用`gettype()`函数来检查一个变量的类型:```php$var = 10;echo gettype($var); // 输出:integer```二、数据类型转换1. 问题:如何在PHP中进行数据类型转换?答案:在PHP中,可以使用以下方式进行数据类型转换:- 使用类型转换运算符(例如:(int) $var, (float) $var, (string) $var)- 使用`settype()`函数- 使用类型强制转换运算符(例如:$var = (int) $var;)2. 问题:如何将字符串转换为整数?答案:可以使用类型转换运算符或`settype()`函数:```php$string = "123";$int = (int) $string; // 或者 $int = settype($string, "integer"); ```3. 问题:如何将整数转换为字符串?答案:可以使用类型转换运算符:```php$int = 123;$string = (string) $int;```三、条件语句与循环1. 问题:PHP中的条件语句有哪些?答案:PHP中的条件语句包括:- `if`语句- `if...else`语句- `switch`语句2. 问题:如何使用`if`语句?答案:```phpif (条件) {// 条件为真时执行的代码} else {// 条件为假时执行的代码}```3. 问题:如何使用`switch`语句?答案:```phpswitch ($expression) {case 值1:// 当表达式与值1匹配时执行的代码 break;case 值2:// 当表达式与值2匹配时执行的代码 break;default:// 默认情况下执行的代码}```4. 问题:PHP中的循环有哪些?答案:PHP中的循环包括:- `for`循环- `while`循环- `do...while`循环- `foreach`循环5. 问题:如何使用`for`循环?答案:```phpfor (初始化表达式; 条件表达式; 更新表达式) { // 循环体}```四、函数与面向对象编程1. 问题:如何在PHP中定义一个函数?答案:```phpfunction 函数名(参数列表) {// 函数体}```2. 问题:如何调用一个函数?答案:```php函数名(参数列表);```3. 问题:PHP中的函数有哪些返回值?答案:PHP中的函数可以返回以下类型的值:- 字符串(String)- 整数(Integer)- 浮点数(Float)- 布尔值(Boolean)- 数组(Array)- 对象(Object)- 资源(Resource)- NULL4. 问题:如何在PHP中定义一个类?答案:```phpclass 类名 {// 类属性和方法}```5. 问题:如何在PHP中使用构造函数和析构函数?答案:构造函数用于在创建对象时初始化对象,析构函数用于在对象销毁时执行清理工作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

P h p面试宝典100题汇总-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KIIPhp面试100题汇总1,Http 和Https的区别第一:http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协议第二:http和https使用的是完全不同的连接方式,端口也不一样,前者80 或者443第三:http连接很简单,是无状态的。

https协议是由ssl+http协议构建的可进行加密传输,身份认证的网络协议。

2.什么方法来加快页面的加载速度1,用到服务器资源时在打开,不用时,立即关闭服务器资源。

2,数据库添加索引3,页面可生成静态4,图片等大文件单独放在一个服务器5,能不查询数据库的尽量不去数据取数据,可以放在缓存中。

3.表单中 get与post提交方法的区别?答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.,print,print_r 的区别:echo 是php语句,无返回值。

print,print_r是函数,有返回值。

print()只能打印出简单类型变量的值(如int,string)print_r()可以打印出复杂类型变量的值(如数组,对象)echo 输出一个或者多个字符串与cookie区别session与cookie相同:跨页面、不跨用户session与cookie不相同:1、session可以存储任意类型的数据,但cookie只能存储字符串2、cookie产生在服务器端、存储在客户端session产生在服务器端、存储在服务器端6.魔术常量答案:__LINE__文件中的当前行号。

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

__FUNCTION__函数名称__CLASS__类的名称__METHOD__类的方法名7.数据库中的事务是什么?答:事务(transaction)是作为一个单元的一组有序的数据库操作。

如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。

如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。

如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。

优化MYSQL数据库的方法。

1、选择合适的字段的数据类型1)能用数字不用字符串2)char、varchar、text 能用varchar不用char3)给字段加not null 避免在表中出现NULL关键字(default 值)2、选择合适的字段充当主键1)建议每张表必须有主键2)用数字类型的字段充当主键3、拆分表1)拆分字段,将文章的标题与内容分开2)拆分记录,将今年的记录与往年的记录分开4、给字段合理添加索引a.格式:(普通索引)->创建:CREATE INDEX <索引名> ON tablename (索引字段)修改:ALTER TABLE tablename ADD INDEX [索引名] (索引字段)创表指定索引:CREATE TABLE tablename([...],INDEX[索引名](索引字段))(唯一索引)->创建:CREATE UNIQUE <索引名> ON tablename (索引字段)修改:ALTER TABLE tablename ADD UNIQUE [索引名] (索引字段)创表指定索引:CREATE TABLE tablename([...],UNIQUE[索引名](索引字段))(主键)->它是唯一索引,一般在创建表是建立,格式为:CREATA TABLE tablename ([...],PRIMARY KEY[索引字段])5、事务处理:a.保证数据完整性,例如添加和修改同时,两者成立则都执行,一者失败都失败mysql_query("BEGIN");mysql_query("INSERT INTO customerinfo (name) VALUES ('$name1')";mysql_query("SELECT * FROM `orderinfo` where customerid=".$id");mysql_query("COMMIT");6、锁定表,优化事务处理:a.我们用一个 SELECT 语句取出初始数据,通过一些计算,用 UPDATE 语句将新值更新到表中。

包含有 WRITE 关键字的 LOCK TABLE 语句可以保证在 UNLOCK TABLES 命令被执行之前,不会有其它的访问来对 inventory 进行插入、更新或者删除的操作mysql_query("LOCK TABLE customerinfo READ, orderinfo WRITE");mysql_query("SELECT customerid FROM `customerinfo` where id=".$id);mysql_query("UPDATE `orderinfo` SET ordertitle='$title' wherecustomerid=".$id);mysql_query("UNLOCK TABLES");7、使用外键,优化锁定表a.把customerinfo里的customerid映射到orderinfo里的customerid,任何一条没有合法的customerid的记录不会写到orderinfo里CREATE TABLE customerinfo(customerid INT NOT NULL,PRIMARY KEY(customerid))TYPE = INNODB;CREATE TABLE orderinfo(orderid INT NOT NULL,customerid INT NOT NULL,PRIMARY KEY(customerid,orderid),FOREIGN KEY (customerid) REFERENCES customerinfo(customerid) ON DELETE CASCADE)TYPE = INNODB;注意:'ON DELETE CASCADE',该参数保证当customerinfo表中的一条记录删除的话同时也会删除order表中的该用户的所有记录,注意使用外键要定义事务安全类型为INNODB;8、优化查询语句a用内连接代替子查询代替子查询,用sphinx代替like模糊查询b最好在相同字段进行比较操作,在建立好的索引字段上尽量减少函数操作例子1:SELECT * FROM order WHERE YEAR(orderDate)<2008;(慢)SELECT * FROM order WHERE orderDate<"2008-01-01";(快)例子2:SELECT * FROM order WHERE addtime/7<24;(慢)SELECT * FROM order WHERE addtime<24*7;(快)例子3:SELECT * FROM order WHERE title like "%good%";SELECT * FROM order WHERE title>="good" and name<"good";9、缓存,静态化10、选择合适存储引擎用Innodb增删改,用myisam查询11、主从数据库12、负载均衡13、最好拿数字类型的字段充当where条件14、最好拿相同类型的字段进行比对(避免发生数据类型的转换)15、不要在具有索引的字段上添加数据库函数(索引失效)请简述项目中优化sql语句执行效率的方法,从哪些方面,sql语句性能如何分析?答:(1)选择最有效率的表名顺序(2)WHERE子句中的连接顺序(3)SELECT子句中避免使用‘*’(4)用Where子句替换HAVING子句(5)通过内部函数提高SQL效率(6)避免在索引列上使用计算。

(7)提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉。

9.对于大流量网站,采用什么方法解决访问量问题?1,确认服务器的硬件是否足够支持当前的流量2,优化数据库的访问3,禁止外部的盗链4,控制大文件的下载5,使用不同主机分流主要流量6,使用流量分析统计软件10.一个函数,能够遍历一个文件夹下的所有文件和子文件夹(20分)function dir_recurse($dir) {$i = 1;if($handle = opendir($dir)) {while(false !== ($file = readdir($handle))) {if($file != "."&& $file != ".." ) {if(is_dir($dir."/".$file) == true) {$fullpath = $dir."/".$file;dir_recurse($fullpath);echo "$fullpath\n";$i++;}else {$fullpath = $dir."/".$file;echo "$fullpath\n";$i++;}}}closedir($handle);}}写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。

function my_scandir($dir){$files = array();if ( $handle = opendir($dir) ) {while ( ($file = readdir($handle)) !== false ) {if ( $file != ".."&& $file != "." ) {if ( is_dir($dir . "/" . $file) ) {$files[$file] = scandir($dir . "/" . $file);}else {$files[] = $file;}}}closedir($handle);return $files;}}11、能够使HTML和PHP分离开使用的模板(1分)答:Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate12、使用哪些工具进行版本控制(1分)答:cvs,svn,vss;13、如何实现字符串翻转(3分)英文:strrev($a)中文或其他文字:中文:GB2312,代码是使用GB2312编码<?phpfunction reverse($str){$ret = "";len=mb s trwidth( len=mbstrwidth(len = mb_strwidth(str,"GB2312");for(i=0; i=0;i=0; i< len; len;len; i++){arr[]=mb s ubstr( arr[]=mbsubstr(arr[] = mb_substr(str, $i, 1, "GB2312");}return implode("", array_reverse($arr));}print_r(reverse("你好"));的意思(送1分)PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页取得当前时间的函数是,格式化日期的函数是(2分)答:now(),date()16.用PHP写出显示客户端IP与服务器IP的代码1分)答:打印客户端IP:echo $_SERVER[‘REMOTE_ADDR’]; 或者:getenv('REMOTE_ADDR');打印服务器IP:echo gethostbyname("")17、语句include和require的区别是什么为避免多次包含同一文件,可用()语句代替它们答:require->require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行requireinclude->include有返回值,而require没有(可能因为如此require的速度比include快)注意:包含文件不存在或者语法错误的时候require是致命的,include不是请求返回状态码400 请求无效401 未授权403 请求被禁止404 请求资源不存在405 请求资源被禁止406 无法接受407 要求代理身份验证500 Internal Server Error 服务端源代码错误600 源站没有返回响应头部,只返回实现内容19,linux授权码:600 属主有读写权限644 属主有读写权限,属性组有读权限700 属主有读写执行权限755 属主有读写执行权限,属性组有读,执行权限711 属主有读写执行权限,属性组有执行权限666 所有用户都有文件的读写权限777 所有用户都有文件的读写执行权限20.有一个网页地址, 比如PHP开发资源网主页: 如何得到它的内容($1分)答:方法1(对于PHP5及更高版本):$readcontents = fopen("", "rb");$contents = stream_get_contents($readcontents);fclose($readcontents);echo $contents;方法2:echo file_get_contents("");21.在PHP中error_reporting这个函数有什么作用(1分)答:设置错误级别与错误信息回报表单弹出对话框函数是获得输入焦点函数是 (2分)答:弹出对话框: alert(),prompt(),confirm()获得输入焦点 focus()()和@foo()之间有什么区别(1分)答:@foo()控制错误输出24、mysql_fetch_row() 和mysql_fetch_array之间有什么区别 (1分)答:mysql_fetch_row是从结果集取出1行数组,作为枚举mysql_fetch_array是从结果集取出一行数组作为关联数组,或数字数组,两者兼得25、GD库是做什么用的 (1分)答:gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。

相关文档
最新文档