php笔试题及答案
- 格式:docx
- 大小:35.07 KB
- 文档页数:6
2024年招聘PHP开发工程师笔试题及解答(某世界500强集团)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、在PHP中,哪个函数用于获取当前时间戳(以秒为单位)?A. time()B. date()C. strtotime()D. getdate()2、在PHP中,关于数组的说法哪个是正确的?A. PHP中的数组只能是索引数组。
B. PHP中的关联数组不能通过索引来访问。
C. PHP中的数组可以同时包含整数索引和字符串索引。
D. PHP数组在声明时必须指定索引或键名。
3、在PHP中,以下哪个函数用于检查一个变量是否为空?A. is_empty()B. is_null()C. isset()D. empty()4、以下哪个PHP函数可以用于获取客户端发送的HTTP Referer头部的值?A.$_SERVER[‘HTTP_REFERER’]B.$_GET[‘referer’]C.$_POST[‘referer’]D.$_COOKIE[‘referer’]5、以下哪个不是PHP的内置错误处理机制?A. try-catchB. throwC. finallyD. error_reporting6、以下关于PHP面向对象编程(OOP)的说法正确的是:A. PHP中每个类都有一个构造函数,其名称默认为__constructB. PHP中,静态方法只能通过类名来访问,不能通过对象访问C. PHP中,子类可以访问父类中未声明为private的成员变量和方法D. PHP中,魔术方法__toString()用于处理对象的字符串表示7、以下哪个不是PHP的内置错误处理函数?A. trigger_error()B. debug_backtrace()C. exception()D. ini_set()8、在PHP中,以下哪个操作符用于检查变量是否未定义?A. isset()B. empty()C. unset()D. defined()9、以下哪个选项不是PHP中的一个内置函数?A. echoB. includeC. require 10、在PHP中,以下哪个关键字用于声明一个全局变量?A. globalB. staticC. constD. var二、多项选择题(本大题有10小题,每小题4分,共40分)1、以下哪些技术或框架是PHP开发中常用的?()A、LaravelB、SymfonyC、CodeIgniterD、jQueryE、React.js2、以下关于PHP的哪些说法是正确的?()A、PHP是一种用于Web开发的通用编程语言B、PHP代码可以嵌入到HTML中C、PHP不支持面向对象编程D、PHP拥有丰富的第三方库和工具E、PHP只能运行在Windows操作系统上3、以下哪些技术是PHP开发中常用的框架?()A. LaravelB. SymfonyC. CodeIgniterD. Django4、以下哪些是PHP中用于文件操作的函数?()A. file_get_contentsB. fopenC. fwriteD. fclose5、以下关于PHP中的面向对象编程(OOP)的说法正确的是:A. PHP的类和对象必须使用关键字class和object来定义B. 在PHP中,每个类都继承自Object类C. PHP支持接口(interface),允许定义多个类共享的方法和属性D. 在PHP中,可以通过__construct方法来创建类的实例6、以下关于PHP中会话(session)管理的说法错误的是:A. 会话是用户与服务器之间的一种持久连接B. 会话存储在服务器的内存中,因此每次请求都会读取和写入会话数据C. 会话可以通过session_start()函数来启动D. 会话ID存储在用户的cookie中,如果没有设置cookie,则无法使用会话7、以下哪些技术是PHP开发中常用的数据库连接技术?()A. PDO(PHP Data Objects)B. MySQLi(MySQL Improved)C. SQLiteD. MongoDB8、以下哪些是PHP中常用的缓存技术?()A. MemcachedB. RedisC. APC(Alternative PHP Cache)D. Filesystem9、以下哪些技术是PHP开发中常用的框架?()A. LaravelB. SymfonyC. CodeIgniterD. Django 10、以下哪些是PHP中处理数据库连接和查询时需要注意的安全问题?()A. SQL注入B. XSS攻击C. CSRF攻击D. XPATH注入1、PHP是一种解释型、服务器端脚本语言,主要用于Web开发。
2025年招聘PHP开发工程师笔试题及解答(某大型央企)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个版本是PHP中使用的默认的脚本引擎?A、ApacheB、CGIC、ISAPID、FastCGI2、在PHP中,以下哪个函数用于检查变量是否为空?A、is_empty()B、empty()C、is_null()D、is_set()3、某大型央企招聘PHP开发工程师笔试题及解答(某大型央企)试卷一、单项选择题3、以下哪个函数可以用来检查一个变量是否是一个数组?A. is_array()B. in_array()C. array_key_exists()D. isset()4、在PHP中,以下哪个选项表示在数组中添加一个新元素,并将数组的键值递增?A.array[]=value;B. array_push(array,value);C.array[key] =$value;D.array=array a dd(array,key,value);5、在PHP中,哪个函数用于将数组元素的值与给定的值进行比较,并返回第一个相等的元素的键名?A. array_search()B. array_keys()C. key()D. current()6、在PHP中,以下哪个语句可以正确地声明一个包含两个元素的数组,第一个元素是字符串”Hello”,第二个元素是数字100?A. $array = array("Hello", 100);B. $array = ["Hello", 100];C. $array = array(0 => "Hello", 1 => 100);D. 以上都是7、在PHP中,下列哪个函数用于获取文件的大小?A. filesize()B. fileperms()C. fileowner()D. filegroup()8、关于PHP中的session,下面说法正确的是哪一项?A. session_start() 必须放在任何输出之前。
php笔试题及答案PHP是一种广泛应用于网站开发的脚本语言,常用于处理动态网页和服务器端逻辑。
为了帮助PHP开发者提升自己的技能,以下是一些常见的PHP笔试题以及它们的答案。
一、PHP基础知识1. 解释PHP中的“echo”和“print”的区别。
echo和print都是用于输出内容的PHP关键字,它们之间有以下区别:- echo可以一次输出多个参数,速度稍快;而print只能输出一个参数;- echo没有返回值,只用于输出;而print返回值为1;- echo可以省略括号;而print必须使用括号。
2. 解释一下PHP中的超全局变量。
PHP中的超全局变量是预定义的全局变量,可以在脚本的任何地方访问。
常见的超全局变量有:- $_GET:用于收集通过URL传递的参数;- $_POST:用于收集通过HTTP POST方法传递的参数;- $_SERVER:包含服务器相关的信息和请求头;- $_SESSION:用于存储和访问用户会话;- $_COOKIE:用于存储和访问用户的Cookie。
3. 如何判断一个字符串是否为空?可以使用empty()函数来判断一个字符串是否为空。
例如:if (empty($str)) { // 字符串为空 }二、PHP数组1. 解释一下PHP中的关联数组和索引数组。
- 索引数组是以数字作为数组的键名的数组。
键名从0开始,依次递增。
例如:$arr = array("apple", "banana", "orange");- 关联数组是以字符串作为数组的键名的数组。
键名可以自定义。
例如:$arr = array("name" => "John", "age" => 30);2. 给出一个例子,使用foreach循环遍历一个数组。
$arr = array("apple", "banana", "orange");foreach ($arr as $value) {echo $value;}三、PHP函数1. 编写一个PHP函数,判断一个数是否为素数。
php试题及答案五篇范文第一篇:php试题及答案php试题及答案问题1.考虑如下脚本。
标记处应该添加什么代码才能让脚本输出字符串php?$alpha = 'abcdefghijklmnopqrstuvwxyz';$letters = array(15, 7, 15);foreach($letters as $val){/* 这里应该加入什么 */ } ?> A.echo chr($val);B.echo asc($val);C.echo substr($alpha, $val, 2);D.echo $alpha{$val};E.echo $alpha{$val+1} 2.以下哪一项不能把字符串$s1 和$s2 组成一个字符串?A.$s1 + $s2 B.”{$s1}{$s2}” C.$s1.$s2 D.implode(”, array($s1,$s2))E.以上都可以3.变量 $email 的值是字符串****************,把字符串转化成 ?A.substr($email, strpos($email, “@”));下哪项能以B.strstr($email, “@”);C.strchr($email, “@”);D.substr($email, strpos($email, “@”)+1);E.strrpos($email, “@”);4.给定一个用逗号分隔一组值的字符串,以下哪个函数能在仅调用一次的情况下就把每个独立的值放入一个新创建的数组? A.strstr()B.不可能只调用一次就完成C.extract()D.explode()E.strtok()5.要比较两个字符串,以下那种方法最万能?A.用strpos 函数B.用==操作符C.用 strcasecmp()D.用 strcmp()6.以下哪个 PCRE 正则表达式能匹配字符串php|architect?A..* B.…|……… C.d{3}|d{8} D.[az]{3}|[az]{9} E.[a-z][a-z][a-z]|w{9} 7.以下哪些函数能用来验证字符串的完整性?(三选)A.md5()B.sha1()C.str_rot13()D.crypt()E.crc32()8.哪个PHP 函数与以下脚本在UNIX 系统下执行的效果近似?function my_funct($filename){ $f = file_get_contents($filename);return explode(“n”, $f);} ?> A.fopen()B.fread()C.flock()D.split_string()E.file()9.基于指定的式样(pattern)把一个字符串分隔开并放入数组,以下哪些函数能做到?(双选)A.preg_split()B.ereg()C.str_split()D.explode()E.chop() 10.以下脚本输出什么?echo 'Testing '.1 + 2.'45';?> A.T esting 1245 B.Testing 345 C.Testing 1+245 D.245 E.什么都没有11.以下脚本输出什么? $s = '12345';$s[$s[1]] = '2';echo $s;?> A.12345 B.12245 C.22345 D.11345 E.Array 12.方框中的正则表达式能与以下哪些选项匹配?(双选)/.**123d/ A.******123 B.*****_1234 C.******1234D._*1234 E._*123 13.以下哪个比较将返回true?(双选)A.’1top’ == ’1′ B.’top’ == 0 C.’top’ === 0 D.’a’ == a E.123 == ’123′14.如果用+操作符把一个字符串和一个整型数字相加,结果将怎样? A.解释器输出一个类型错误B.字符串将被转换成数字,再与整型数字相加C.字符串将被丢弃,只保留整型数字D.字符串和整型数字将连接成一个新字符串E.整形数字将被丢弃,而保留字符串个 PHP 脚本使用______。
问题1.选择合适的答案填入空白处PHP 是一种______脚本语言,基于______引擎。
PHP 最常被用来开发动态的______内容,此外,它同样还可被用来生成______(以及其他)文档。
A.动态,PHP,数据库,HTMLB.嵌入式,Zend,HTML,XMLC.基于Perl 的,PHP,Web,静态D.嵌入式,Zend,Docbook 文档,MySQLE.基于Zend 的,PHP,图像,HTML2.以下哪种标签不是PHP 起始/结束符?A.<% %>B.C.D.E.3.以下代码哪个不符合PHP 语法?A.$_10B.${―MyVar‖}C.&$somethingD.$10_somethingsE.$aVaR4.运行以下代码将显示什么?define(myvalue, "10");$myarray[10] = "Dog";$myarray[] = "Human";$myarray['myvalue'] = "Cat";$myarray["Dog"] = "Cat";print "The value is: ";print $myarray[myvalue]."\n";?>2A.The Value is: DogB.The Value is: CatC.The Value is: HumanD.The Value is: 10E.Dog5.print()和echo()有什么区别?A.print()能作为表达式的一部分,echo()不能B.echo()能作为表达式的一部分,print()不能C.echo()能在CLI(命令行)版本的PHP 中使用,print()不能E.没有区别:两个函数都打印文本!6.以下脚本输出什么?$a = 10;$b = 20;$c = 4;$d = 8;$e = 1.0;$f = $c + $d * 2; 20$g = $f % 20; 0$h = $b - $a + $c + 2;16$i = $h << $c;$j = $i * $e;print $j;?>A.128B.42C.242.0D.256E.3427.如何给变量$a,$b 和$c 赋值才能使以下脚本显示字符串―Hello, World!‖? $string = "Hello, World!";$a = ?;false3$b = ?;$c = ?;if($a) {if($b && !$c) {echo "Goodbye Cruel World!";} else if(!$b && !$c) {echo "Nothing here";}}else {if(!$b) {if(!$a && (!$b && $c)) {echo "Hello, World!";} else {echo "Goodbye World!";}} else {}}?>A.False, True, FalseB.True, True, FalseC.False, True, TrueD.False, False, TrueE.True, True, True8.以下脚本输出什么?$array = '0123456789ABCDEFG';$s = '';for ($i = 1; $i < 50; $i++) {$s .= $array[rand(0,strlen ($array) - 1)]; => $s = $array[rand(0,16)] }echo $s;?>A.50 个随机字符组成的字符串B.49 个相同字符组成的字符串,因为没有初始化随机数生成器C.49 个随机字符组成的字符串D.什么都没有,因为$array 不是数组4E.49 个字母‗G‘组成的字符串9.哪种语句结构用来表现以下条件判断最合适?if($a == 'a') {somefunction();} else if ($a == 'b') {anotherfunction();} else if ($a == 'c') {dosomething();} else {donothing();}?>A.没有default 的switch 语句B.一个递归函数C.while 语句D.无法用别的形式表现该逻辑E.有default 的switch 语句10.要修改每个元素的值,如何遍历$myarray 数组最合适?$myarray = array ("My String","Another String","Hi, Mom!");A.用for 循环B.用foreach 循环C.用while 循环D.用do…while 循环E.办不到!11.考虑如下代码片段:define("STOP_AT", 1024);$result = array();/* 在此处填入代码*/{5$result[] = $idx;}print_r($result);?>标记处填入什么代码才能产生如下数组输出?Array{[0] => 1[1] => 2[2] => 4[3] => 8[4] => 16[5] => 32[6] => 64[7] => 128[8] => 256[9] => 512}A.foreach($result as $key => $val)B.while($idx *= 2)C.for($idx = 1; $idx < STOP_AT; $idx *= 2)D.for($idx *= 2; STOP_AT >= $idx; $idx = 0)E.while($idx < STOP_AT) do $idx *= 212.为用户定义函数is_leap()选择一个合适的函数声明。
php考试试题及答案PHP考试试题及答案一、选择题(每题2分,共20分)1. PHP是一种:A. 操作系统B. 编程语言C. 数据库管理系统D. 网页浏览器答案:B2. 下列哪个是PHP的内置超全局数组?A. $_SESSIONB. $_COOKIEC. $GLOBALSD. 以上都是答案:D3. 在PHP中,哪个函数用于获取当前脚本的文件名?A. __FILE__B. __LINE__C. __FUNCTION__D. __CLASS__答案:A4. 下列哪个不是PHP的控制结构?A. ifB. forC. whileD. switch答案:D5. PHP中,以下哪个函数用于将字符串转换为小写?A. strtoupper()B. strtolower()C. strtoupperstr()D. tolower()答案:B6. 在PHP中,哪个函数用于连接到MySQL数据库?A. connect()B. mysqli_connect()C. mysql_connect()D. database_connect()答案:B7. 下列哪个不是PHP的变量作用域?A. localB. globalC. staticD. public答案:D8. 在PHP中,哪个函数用于输出HTML内容?A. echoB. printC. printfD. write答案:A9. 下列哪个是PHP的错误处理函数?A. error_log()B. trigger_error()C. set_error_handler()D. 以上都是答案:D10. PHP中,哪个函数用于将数组元素与键名一一对应关联起来?A. array_push()B. array_merge()C. array_combine()D. array_intersect()答案:C二、填空题(每空2分,共20分)1. PHP的全称是 __________。
2024年招聘PHP开发工程师笔试题与参考答案(某大型集团公司)(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个PHP版本是支持命名空间的?A、PHP 5.0B、PHP 5.2C、PHP 5.3D、PHP 5.42、在PHP中,以下哪个函数用于检测变量是否为空?A、empty()B、isset()C、is_null()D、count()3、在PHP中,下列哪个函数可以用来连接两个字符串?•A) join()•B) append()•C) strcat()•D) concat()4、关于PHP中的session,下面哪一个说法是错误的?•A) session_start() 必须在任何输出之前被调用。
•B) session 可以跨多个页面请求保持用户数据。
•C) session 数据存储在客户端。
•D) session ID 通常通过 cookie 发送到浏览器。
5、以下哪个函数是PHP中用于检查变量是否为布尔类型的函数?A. is_int()B. is_bool()C. is_float()D. is_numeric()6、以下哪个关键字用于声明一个PHP中的全局变量?A. globalB. staticC. constD. final7、下列哪个函数可以用来获取文件的大小?A、file_exists()B、filemtime()C、filesize()D、fileowner()8、关于session_start()函数,下面哪个说法是正确的?A、可以在发送任何HTML头信息之前启动sessionB、可以在发送任何HTML头信息之后启动sessionC、session只能在表单提交后才能启动D、session可以在任何时候启动,与HTTP头信息无关9、以下哪个函数用于检测一个变量是否为NULL?A. is_null()B. empty()C. isset()D. is_array() 10、以下哪个PHP变量类型是动态类型?A. 整数B. 字符串C. 数组D. NULL二、多项选择题(本大题有10小题,每小题4分,共40分)1、在PHP中,以下哪些方法可以用来防止SQL注入攻击?()A. 使用预处理语句B. 使用mysql_real_escape_string()函数C. 手动转义特殊字符D. 对输入进行严格的类型检查和长度限制2、关于PHP会话管理,以下哪些陈述是正确的?()A. session_start()函数必须在任何HTML输出之前调用。
php考试题及答案# PHP考试题及答案一、选择题(每题2分,共20分)1. PHP是一种:A. 网页设计语言B. 服务器端脚本语言C. 客户端脚本语言D. 数据库查询语言答案:B2. 下列哪个是PHP的内置错误处理函数?A. `error_log()`B. `trigger_error()`C. `set_error_handler()`D. 以上都是答案:D3. 在PHP中,哪个函数用于连接到MySQL数据库?A. `mysqli_connect()`B. `mysql_connect()`C. `db_connect()`D. `connect_db()`答案:A4. 下列哪个是PHP的超级全局数组?A. `$_SESSION`B. `$_COOKIE`C. `$GLOBALS`D. `$_REQUEST`答案:C5. PHP中的哪个函数可以用于发送HTTP头部信息?A. `header()`B. `echo`C. `print`D. `print_r`答案:A6. 在PHP中,哪个函数用于获取当前脚本的文件名?A. `basename()`B. `dirname()`C. `pathinfo()`D. `__FILE__`答案:D7. 下列哪个是PHP的数组函数?A. `count()`B. `strlen()`C. `strpos()`D. `trim()`答案:A8. PHP中的哪个函数可以用于输出HTML内容?A. `echo`B. `print_r`C. `var_dump`D. `exit`答案:A9. 在PHP中,哪个操作符用于数组元素的引用赋值?A. `=`B. `&=`C. `==`D. `===`答案:B10. PHP中的哪个函数用于定义类?A. `class()`B. `define()`C. `class_define()`D. `class`答案:D二、简答题(每题10分,共30分)1. 简述PHP的用途和特点。
1、在PHP中,以下哪个函数用于获取数组中元素的个数?A. count_elements()B. sizeof()C. array_length()D. count()(答案)D2、下列关于PHP中的类与对象的说法,错误的是?A. 类是创建对象的模板B. 一个类可以实例化多个对象C. 对象属性必须在类定义时声明,不能在对象创建后动态添加D. 类中的方法可以访问类中的属性(答案)C3、在PHP中,以下哪个关键字用于继承一个类?A. parentB. extendsC. childD. implements(答案)B4、关于PHP中的会话(Session)处理,以下说法正确的是?A. Session信息存储在客户端的Cookie中B. Session ID只能通过GET方法传递C. Session数据默认存储在服务器的临时目录中D. 一个用户在不同浏览器窗口中的Session是共享的(答案)C5、在PHP中,以下哪个函数用于将字符串转换为小写?A. strtolowercase()B. to_lower_case()C. strtolower()D. string_to_lower()(答案)C6、关于PHP中的异常处理,以下哪个说法是正确的?A. 使用try-catch块可以捕获所有类型的错误B. throw关键字用于抛出异常,但不能抛出自定义异常类C. finally块中的代码无论是否发生异常都会执行D. PHP中的异常处理只能用于捕获致命错误(答案)C7、在PHP中,以下哪个函数用于检查一个变量是否设置并且非NULL?A. isset()B. !empty()C. !is_null()D. defined()(答案)A8、关于PHP中的命名空间(Namespace),以下说法错误的是?A. 命名空间可以解决类名冲突的问题B. 使用namespace关键字可以定义一个命名空间C. 在同一个命名空间中,不能有两个同名的类D. 命名空间只能用于类,不能用于函数或常量(答案)D。
T1一、填空题1.PHP是用什么语言编写的?:脚本语言2. LAMP的全称是?:LINUX 、APACHE、MYSQL、PHP3. PHP的三种注释方式?:#、//、/**/4. PHP使用什么符号定义变量?:$二、简答题1. 请列出PHP的8种数据类型。
?:整型、浮点型、字符串、数组、逻辑、对象、NULL、资源型:资源RESOURCE是一种特殊变量,保存了到外部资源的一个引用。
资源是通过专门的函数来建立和使用的。
2. 写出如下程序的输出结果?<?$TEST = ‘AAAAAA’;$ABC = & $TEST;UNSET($TEST);ECHO $ABC;?>:AAAAAA3.4.$I=2,编程实现判断$I是否为整型,是则输出$I,不是则输出“非整型变量”?<?$L=2IF(IS_INT($L)){ECHO $L;}ELSE{ECHO “非整型变量”;}IS_ARRA Y IS_BOOL I S_CALLABLE IS_DOUBLE IS_FLOA T IS_ALONGIS_NUMBERIC IS_OBJECT IS_RESOURCE IS_STRINGT2PHP基础部分1. 以下PHP代码的输出结果?$I=10;$N = $I++;ECHO $N, $I++, ++$I:10,11,132. INCLUDE与REQUIRE的区别?:REQUIRE 的使用方法如REQUIRE("MYREQUIREFILE.PHP"); 。
这个函数通常放在PHP 程序的最前面,PHP 程序在执行前,就会先读入REQUIRE 所指定引入的文件,使它变成PHP 程序网页的一部份。
常用的函数,亦可以这个方法将它引入网页中。
INCLUDE 使用方法如INCLUDE("MYINCLUDEFILE.PHP"); 。
这个函数一般是放在流程控制的处理部分中。
PHP 程序网页在读到INCLUDE 的文件时,才将它读进来。
这种方式,可以把程序执行时的流程简单化。
他们两个的用途是完全一样的,不一定非得哪个放在最前面哪个放在中间。
他们最根本的区别在于错误处理的方式不一样。
REQUIRE一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误INCLUDE一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。
3. 以下代码,是判断字符串中是否存在#符号, 错误之处在于?IF ( STRPOS($STR, “#”)) { … }: 如果#在字符串的首位那就是返回0,PHP会将0自动转换成FALSE进行判断,因此错误,正确写法是:IF ( STRPOS($STR, “#”) !== FALSE) { … }4. 程序代码使用UTF-编码,以下代码输出结果是什么?STRLEN函数是计算字符串的字节数还是字符数?$STR = “您好HELLO”;ECHO STRLEN($STR);:UTF-8:对英文使用8位(1个字节),对中文使用24位(3个字节)来编码,对于英文较多的论坛使用UTF-8比较节省空间GBK:使用双字节编码,不论中英文字符,为了区分中文,将其最高位定义为1STRLEN: 返回给定的字符串STRING的长度,计算的是字节数5. 什么是时间戳? 时间戳能代表的最小年份和最大年份是多少?:时间戳是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数;时间戳能代表的最小年份是1970,最大年份是2038年INT TIME ( VOID )返回自从 UNIX 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
6. PHP.INI配置文件中MAGIC_QUOTES_GPC, MAGIC_QUOTES_RUNTIME的作用是什么?应该开启还是关闭?:PHP MAGIC_QUO TES_GPC=ON的情况:我们可以不对输入和输出数据库的字符串数据作ADDSLASHES()和STRIPSLASHES()的操作,数据也会正常显示。
你对输入的数据作了ADDSLASHES()处理,那么在输出的时候就必须使用STRIPSLASHES()去掉多余的反斜杠。
PHPMAGIC_QUOTES_GPC=OFF的情况:使用ADDSLASHES()对输入数据进行处理,但并不需要使用STRIPSLASHES()格式化输出,因为ADDSLASHES()并未将反斜杠一起写入数据库,只是帮助MYSQL完成了SQL语句的执行。
MAGIC_QUOTES_RUNTIME 转义字符:当你的数据中有一些 \ ”‘这样的字符要写入到数据库里面,又想不被过滤掉的时候,它就很有用,会在这些字符前加上\7. 现有一个文本体积大约2G, 计算机内存只有1G, 需要使用PHP对数据进行分析,如何读取如此体积的文件?分行读取,FOPEN、FREAD当然还可以使用FSEEKFOPEN() 将FILENAME指定的名字资源绑定到一个流上。
STRING FREAD ( RESOURCE $HANDLE , INT $LENGTH ):FREAD() 从文件指针HANDLE 读取最多LENGTH 个字节。
HANDLE:文件系统指针,是典型地由 FOPEN() 创建的 RESOURCE(资源)。
8. PHP的序列化各反序列化,有何用途?序列SERIALIZE是为了产生一个可存储的值,便于存储除RESOURCE类型的所有数据,反序列UNSERIALIZE即将序列的数据还原为原来的值9. PHP的魔术方式包含哪些(越多越好)?在何情况下被自动调用?以下为总结的在使用类时可用的魔术方法,魔术方法会在某种待定情况下被自动调用,但前提是该方法被定义。
有些方法不一定要定义在类中,还可以写在程序中作为一个函数。
__CONSTRUCT() 构造函数,创建对象时自动调用__DESTRUCT() 析构函数,不需要创建__CLONE() 克隆函数,调用CLONE方法时自动调用__SET() 当程序试图写入一个不存在或不可见的成员变量时自动调用。
该函数在类中定义时必须有两个参数:变量称和变量值。
__GET() 当程序调用一个未定义或不可见的成员变量时自动调用__GET()来读取变量值。
定义时必有有一个参数:变量名__CALL() 当程度试图调用不存在或不可见的成员方法时,自动调用__CALL()来存储方法名及其参数。
该方法包含两个参数:方法名和方法参数。
其中方法参数以数组形式存在。
__SLEEP() 使用SERIALIZE()实现序列化对象时,先执行该方法,清除对象并返回一个该对象中所有变量的数组。
__WAKEUP() 使用UNSERIALIZE()还原一个被序列化的对象时,先执行该方法,恢复在序列化中可能丢失的数据库连接及相关工作__TOSTRING() 当使用ECHO或PRINT输出对象时,将对象转化为字符串__AUT OLOAD() 调用未被实例化的类时,自动调用,在指定路径下查找和该类名称相同的文件。
10. ARRA Y ACCESS接口的作用是什么?让对象使用起来像一个PHP数组,而不用使用对象操作符->直接使用数组符号[]就可以了11. PHP类的静态成员变量与非静态成员变量有何区别?静态成员变量:可以用类名直接访问,也可以用类的实例化来访问,静态成员变量是所有对象共用的,只有一份,不会为每一个对象都分配一个不同的值非静态成员变量:不可以直接使用类名访问,需用实例化来访问,为对象独有的12. 如何记录PHP程序错误至系统日志(如WINDOWS的事件查看器,LINUX的SYSLOG)?编辑PHP.INI配置文件,修改或添加LOG_ERRORS = ONERROR_LOG = SYSLOG13. SQL注入最有效的防御方式是什么?参数化查询,参数格式是以“?” 字符加上参数名称而成。
例如:UPDATE MYTABLE SET C1 = ?C1, C2 = ?C2, C3 = ?C3 WHERE C4 = ?C4因为:1、参数过滤2.执行计划重用MYSQL数据库部分(MYSQL版本为 5.0+)1. 假设MYSQL数据表使用UTF-8编码, 数字类型均使用指出以下各个数据类型的范围和长度类型字节数值范围UNSIGNED TINYINT(2)UNSIGNED SMALLINT(3)UNSIGNED MEDIUMINT(4)UNSIGNED INT(5)UNSIGNED BIGINT(6)2. 假设MYSQL数据表使用UTF-8编码, 填写以下表格类型最大字节数最长字符数CHAR(100)V ARCHAR(200)3. CHAR(100)与V ARCHAR(100)有何区别?CHAR(N)是定长格式,格式为CHAR(N)的字段固定占用N个字符宽度,如果实际存放的数据长度超过N将被截取多出部分,如果长度小于N就用空字符填充。
V ARCHAR(N)是变长格式,这种格式的字段根据实际数据长度分配空间,不浪费对于的空间,但是搜索数据的速度会麻烦一点。
VARCHAR类型的实际长度是它的值的实际长度+1。
为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。
一般地说,只要一个表有一个字段定义为V ARCHAR(N)类型,那么其余用CHAR(N)定义的字段实际上也是V ARCHAR(N)类型。
4. 如何查看某个SQL的执行计划,以便分析其性能问题?SELECT * FROM SYS.SYSCACHEOBJECTS5. MYISAM与INNODB存储引擎有何差别?类似CMS, BBS应用,使用哪一种引擎更好?HTTP协议1.HTTP 200, 404, 304状态码般是何含义?200:访问成功(表示一切正常,返回的是正常请求结果)302:临时重定向(指出被请求的文档已被临时移动到别处,此文档的新的URL在LOCA TION响应头中给出)304:未修改(表示客户机缓存的版本是最新的,客户机应该继续使用它。
)404:访问的文件不存在(服务器上不存在客户机所请求的资源)500:内部服务器错误(服务器端的CGI、ASP、JSP等程序发生错误)2. HTTP GZIP压缩传输, 是怎么回事?3. 一些网站(如BAIDU, ),使用手机和电脑访问相同域名时,呈现的页面并不相同, 如何实现?4. COOKIE与SESSION的关系?,禁用浏览器的COOKIE, SESSION能正常工作吗?(1) COOKIES 方式,在E_TRANS_SID=0 AND E_COOKIES = 1的情况下使用。
这种方法是每次浏览器端点每个请求,都把SESSIONID发送到服务器。