千锋php面试题库宝典基础篇_第1页
千锋php面试题库宝典基础篇_第2页
千锋php面试题库宝典基础篇_第3页
千锋php面试题库宝典基础篇_第4页
千锋php面试题库宝典基础篇_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HTMLCSSHTMLDTD的意义和作用(酷讯DTDhtml文档格式正确的有效方法,在解析网页时,浏览器将使用DTD来检查页面的有效性(是否符合规范,元素和使用是否正确)并且<style>a{position:relative;width:500px;border:solid1px#000;}#b,#c{position:absolute;width:250px;height:90px;}#b{top:30px;left:50px;background:#FF0000;z-index:1;}#c{bottom:30px;right:50px;background:#0000FF;}<div <div<tableborder=1width=500style="text-<tdrowspan=2width=50%<tdwidth=50%<tr><tdwidth=50%<trheight=25><td如何产生带有数字列表符号的列表?(<ol>D.a{text-a{text-decoration:noaa{decoration:noXHTMLW3C规范,请问出现了几<div<li><imgsrc="0967_ohmyrabbit.jpg"<li>访华专题

<ul<li>:早日解决边界问题是战略目标<li>称奥运将为举办赛事提供灵感<li>访华参观奥运场馆建设有一处,divulidnewsmoreXHTMLHTML(1).XHTMLDocType,HTML(2).XHTML所有必须闭合,HTML比较随(3).XHTML严格区分大小写,所有的元素和属性的名字都必须使用小(4).XHTML(5).XHTML请问,div和span,p三者间的区别一个语义化,表示一个段落。所以div和span一般是用来布局从显示的角度来讲,span是内联的,用在一小块的内联HTML中,前后不断行,div元素是块级的,等同于其前后有断行,p元素是块级的,前后断行,而且还要再隔一行,CSSclassid的区别id:每个页ID是唯一的不能重复。class:可以设置多个class为同一个值。meta元素<meta contect="">//向搜索引擎说明你的网页的<metaname="descriptioncontect=<metaname="author"contect="你的">//告诉搜索引擎你的站点的制作的作<metahttp-equiv="Content-Type"contect="text/html";charset=utf-8<metahttp-equiv="refresh"contect="n;urln<metahttp-<metahttp-equiv="expires"contect="Mon,12May200100:20:00GMT">//可以用于设定网页的到期时间,一旦过期则必须到服务器上重新调用。需要注意的是必须使用GMT时<metahttp-equiv="pragma"contect="no-cache"><metahttp-equiv="set-"contect="Mon,12May200100:20:00GMT">//设定,如果网页过期,存盘的将被删除。需要注意的也是必须使用GMT时间格式XHTMLIE的宽的区别WC的方式解析执行代码,因为不同浏览器解析执行的方式不一样,所以我们称之为怪异模式。浏览器解析时到底使用标准模式还是怪异模式,与你网页中的DTD直接相关,DTD定义了标准文档的类型(标准模式解析)文档类型,会使浏览器使用相应的方式加载网页并显示,忽略DTD,将使网页进入怪异模式(quirksmode)。在XHTML模式下,一个元素的宽度,仅仅指的是在css中设置的width,而在怪异模式下,元素的宽度包括width和padding。<frameset <framesrc="frame_b.htm"<framesrc="frame_c.htm"请写出以下html的含义:inputformscriptstyletableb<input/>用于搜集用户信息。根据不同的type属性值,输入字段拥有很多种形式。<form>用于为用户输入创建HTML表单。表单能够包含input元素,比如文本字<script>用于定义客户端,比如JavaScript。script元素既可以包含语句,也可以通过src属性指向外部文件。<style>用于为HTML文档定义样式信息<table>定义HTML表格。简单的HTML表格由table元素以及一个或多个tr、td<img用css、html编写一个两列布局的网页,右侧固定宽度200px,左侧自适应(小米)方案1:HTMLCSS这种方案最简单,但不支持IE7IE7方案2:HTML结构CSS这种方案,兼容性好,但是会产生额外的JavaScript弹出框函数:alert(),prompt(),confirm()获得输入焦点函数JS的转向函数是?JS文件转向使用window.location.href=""引入外部js使用<scriptsrc=""/>解释下面语句的意思: .form["formName"].submit(百获取name为formName的表单并将该表单数据提交到服务器。但这行代码是不能运行的,有两处错误,一是通过表单名称来获取表单得到时候,应该写成.forms[‘formName’],提交表单使用submit方法,需要加上括号,下面给出简有下面语句:<inputid="txt"type="text"value="baidu"/>编写代码,当鼠标划过文本框,自动选中文本框中的内容()JavaScript向服务器发出请求且不离开当前(XMLHttpRequest出运行结果(酷讯)vararr=newArray(newnewArray("abc","def",for(i=0;i<arr.length;i++){}怀疑这个代码写错了,第二个newarray后面的逗号是多余的,如果此处没问题,则代码是正确的,输出的结果是1,2,3,41,2,3,4注:arr是一个二维数组,该数组有两个元素,第一个元素是数组[1,2,3,4],第二个元素也是一个数组为["abc","def""xyz"],for循环语句执行了两次,但都是输出第一个元素,JavaScript(varobj=(varobj=[varobj={varobj=(nullinstanceofnull===null==NaN==foo对象有att属性,那么获取att属性的值,以下哪些做法是可()如何添加html元素的,有几种方法,举直接作为元素的属性,如<imgonclick="alert( o');" 使用DOM0级,简单,兼容性好,如img.onclick=使用DOM2级,功能更强大,在非IE等标准浏览其中,使用addEventListener,在IE浏览器中则使用attachEvent来实现。JavaScriptarr[0]newarray()假设a.html和b.html在同一个文件夹下面,用JavaScript实现当打开a.html五秒钟后,自动跳转到b.html。请使用JavaScript写出三种产生一个image的方法(提示:从方法、对象、HTML角度考虑)varimg=newvarimg=img.innerHTML="<imgsrc='xxx.jpg'前进history.forward();history.go(1);后退:history.back();或者history.go(-1);3DOM结果<div><a }其中,button是按钮的id,page.htmlPHP语言、标量类型--NULL、、Error错误可以进行异常处、标量类型有两种模式:强制(默认)和严格模式。现在可以使用下列类型参数(无论用强制模式还是严格模式(string),(int),(float),(bool)。它PHP5、返回值类型strlen(mb_strlen的作用分别是什么(新浪网技术部strlen和mb_strlen都是用于获取字符串长度的,其中strlen只针对单字节编码字符,也就是说它计算的是字符串的总字节数,如果是多字节编码,如gbk和utf8,使用strlenmb_strlen获取其字符个数,使用mb_strlen要注意两点,一是要开启mbstring扩展,二是要指定字符集。php内置函数utf8文一个字符,并找到第符“北” explodeD. //当前运行所在的文档 //Host //IP //到当前页面的前一页面的URL地 //当前运行所在服务器主机的名 //MIME类型,如果浏览器提供此信息的话,如“image/gif” //文件被上传后在服务端的临时文件 includerequire都能把另外一个文件包含到当前文件中,他们有什么区别?Include和include_once又有什么区别?(新浪网技术部)二者区别只有一个,那就是对包含文件的需求程度,include就是包含,如果被包含的文require意思是需要,如果被包含文件不存在或者无法打开的时候,则会提示错误,这两种结构除了在如何处理失败之外完全一样。once的意思是一次,那么include_oncerequire_once1:Whatisthedifferencebetweeninclude&include_once?include&require?2includerequire别是;为了避免多次包含同一文件,可以用语句来代替它们。在如何处理失败时, include()产生一个警告而 require()则导致一个致命错3:Whatfunctionscanyouusetoaddlibrarycodetothecurrentlyrunningscript?include、用最少的代码写一个求3值最大值的函数. getACTIONURLURLpost是通过HTTPpost机制,将表单内各个字段与其HTMLHEADERACTION属性所指的URL地址。用户看不到这个过对于getRequest.QueryString获取变量的值,对于Request.Formget传送的数据量较小。postIIS480KB,IIS5100KB。get,posthttp:head、put、delete、options、copy、patch、link.8、有三个php文件位于同一下,内容如下所示,使用浏览器访问c.php,请问是否存在问题。如果存在问题,请修正方法并写PHP工程师笔试题)<?phpfunctionfa(){echo"inFunctionA\n";<?phpinclude'a.php';<?phpfunctionfb(){fa();echo"inFunctionB\n";}?><?phpinclude'a.php';<?phpinclude'b.php';<?phpfa();fb();答案:存在问题,a.phpfa()include_once避免重复echoprint()实际上不是一个函数(它是一个语言结构,因此你可以不必使用圆括号来括起print_recho本身支持的一种语法,而相关题目:Whatisthedifferencebetween"print()"and"echo(answer:printisafunction,echoisalanguagePHP2006-5-1022:21:212009-3-1~2009-4-4请说明php中传值与传的区别。什么时候传值什么时候传引PHP也提供了另外式给变量赋值:赋值。这意味着新的变量简单的(换言之,“成为其别名“指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。使用赋值,简单地将一个&符号加到将要赋值的变量前(源变量。对象默认是传对于较大的数据,传比较好,这样可以节省内存的开销1:Whatwouldthefollowingcodeprinttothebrowser输出2:Whatisthedifferencebetweenareferenceandaregularvariable?Howdoyoupassbyreference&whywouldyouwantto?(Yahoo)reference传送的是变量的地址而非它的值,所以在函数中改变一个变量的值时,整个应一个regularvariable传送给函数的是它的值,当函数改变这个变量的值时,只有这个函 转换成1,234,567,890每3位用逗号隔开的形式(1相关题目2:假设现在有一个字符串 如何使用PHP对它进行操作使字符串以moc.udiab.输出?(亿邮)PHPIPIP$_SERVER["REMOTE_ADDR"]获取当前执行路径使用$_SERVER["SCRIPT_FILENAME"]或FILE Whatisthedifferencebetweenfoo()&@foo()?foo()@foo()在执行这个函式时,会隐藏所有上述的错误讯息。很多应用程序都使用@mysqli_connect()和@mysqli_query来隐藏mysql的错误信息,下面哪个选项没有将john添加到users数组中?($users[]=array_add($users,array_push($users,"john");D.$users||="john"isset检测一个变量是否设置empty检测是否为空注意二者的区别,如果变量是非空empty()FALSE""、0、"0"、NULL、FALSE、array()在PHP中,当前的名称(不包括路径和查询字符串)记录在 中;而到当前页面的的前一页面URL记录 当前名称:$_SERVER["PHP_SELF"]或者$_SERVER["SCRIPT_NAME"];当前页面的前一页面的sort()、assort()、和ksort()有什么分别?它们分别在什么情况下sort()0n-1主要是当数组索引键的值无关紧要时用来把数组排序。assort(),PHP没有assort()函式,所以可能是asort()的笔误。在PHP中error_reporting这个函数有什么作用?打开或者关闭error_reporting(E_ALL&~E_NOTICE);204712481632641282565121024其中,1E_WARNING,4E_PARSE,8E_NOTICE16 对 对 对PILE_WARNING,256对应E_USER_ERROR,512对应1024E_USER_NOTICE。error_reporting(2047)定义常量:define()检测常量是否定义:defined()define("TEST","happynewyear!");if(defined("TEST")){echo执行程序段<?phpecho8%(-2)%为取模运算,输出$a$b$aecho8)%3)."<br/>";//输出-2(8%(-3))."<br/>";//数组函数arsort的作用是 ;语句error_reporting(2047)的作 arsort:对数组进行逆向排序并保持索引关系error_reporting(2047)的作用reportAllerrorsandwarnings,见21题中相关题目。一个函数的参数不能是对变量的,除非在php.ini中把 为on.allow_call_time_pass_reference:是否启用在函数调用时强制参数被按照传递,默认在PHP中,heredoc是一种特殊的字符串,它的结束标志必须 顶格写,并且不能包$str=<<<SHOWmynameisJiangQihui!;输出countarray,任何其它类SPLCountablecount()。该接口只有一个方法count(),此方法返回count()函数的返回值。varCountable1,有一个例外,如果var是NULL则结果是0。相关题目:WhatwillbetheoutputofthefollowingPHPcode:(腾讯echocount(strlen("?>1写5个不同的自己的函数,来获取一个全路径的文件的扩展名,允许封装php(新浪)PHP(HypertextPreprocessor,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途语言,它可嵌入到HTML中,尤其适合web开发。PHP能做任何事。PHP主要是用于服务端的程序,因此可以用PHP来完成任何其它的CGI程序能够完成的工作,例如收集表单数据,生成页,或者发送/接sPHPPHP主要用于以下三个领域命令行。可以编写一段PHP,并且不需要任何服务器或者浏览器来运行它。通过这种方式,仅仅只需要PHP解析器来执行。Nameafewwaystooutput(print)ablockofHTMLcodeinPHPecho、print、printf例的echo"Mystring$variable";你也可以使用这种方法:echo<<<ENDThistextiswrittentothescreenasoutputandthis$variableisparsedtoo.Ifyouwantedyoucanhave<span>HTMLtagsinhereaswell.</span>TheEND;remarksmustbeonalineofitsown,andcan'tcontainanyextrawhitespace.END;35.$arrarray('james','tom','symfony请打印出第一个元素的值,并请将数组的值用','号分隔并合并成字串输出。打印第一个元素:echo$arr[0];以’,’合并成字符串:echo$a'abcdef';请取出$aecho$a{0}echo相关题目:$string="abcdefg",那么$string{4}的值是?()值eWhatdoes===do?What'sanexampleofsomethingthatwillgivetruefor'==',butnot'==='?(Yahoo)if(strpos('abc','a'false)if(strpos('abc','a'Whichofthefollowingsnippetsprintsarepresentationof42withtwodecimalces?(腾讯)printf("%.2d\n", Given$text='Content-Type:text/xml';Whichofthefollowingprints'text/xml'?(腾讯)printsubstr($text,strchr($text,printsubstr($text,strchr($text,':')+printsubstr($text,strpos($text,':')+printsubstr($text,strpos($text,':')+2);E.printsubstr($text,0,strchr($text,':'));Whatisthevalueof$a?(腾讯TrueB.Whatisthevalueof$resultinthefollowingPHPcode?(腾讯answer:Whatisthebestall-purposewayofcomparingtwostrings?(腾UsingthestrposUsingthe==Usingstrcasecmp()D.Usingstrcmp()o1将字符09转换成十进制数字(intval函数,echointval("09"),或者使用int请写一个函数,实现以下功能:字符串"open_door"转换成"OpenDoor"、"make_by_id"MakeById"的顺序是:array('d','c','b','a'))?(选择2个答案)$array=array('a','b','c',sort()D.$valmax('string',array(2,5,7),42);$valarray(2,5,7)max用定义常量MYPI=3.14 如果双引号里面插入变量的时候,请在后面跟空格或特殊字符,否则会将变量后面的字符视为一整个变量。如果不想要空格或特殊字符,请用大括号将变量包起来。SwitchSwitchif..elseif..else代码块,case只能处理整数,或者能像整数一样运算的类型,比如char,使用时case后用'',注意break不能少,default是为了处理一些之前没有包含到的情况,这样更为安全。用PHP编写代码在页面输出当前的时间,格式为“2007-18date_default_timezone_set('PRC');echodate("Y-m-dGBK、GB2312、BIG5、GB2312支持的汉字较少,GBK是相比GB2312汉字更为丰富,包括全部韩汉字,GB18030相比GBK增加了一些少数名族汉字汉字库更为多样,但是常人很难用到,一般简体中文使用GBK而繁体中文使用BIG5。:g的次数 echosubstr_count($text,'g');以下语句可能存在错误,如果存在错误请什么错误(每个语print_r$val=333;//error,print_r是一个函数,需加上括号,如果是print则可以print_r($val333);//$a$b4) notice,$a$foo[bar]'enemy';//noticebarfunctionx($a"1" 50在PHP中,作用域是不的,函数之外的是全局变量,函数内部定义的则是局部变量,二者是两个不同的变量,除非在函数内使用global显式使用全局变量或直接用$_GLOBALS来5164.$arrarray('james','tom','symfony请将’jack’添加到$arr数组的开头,并把jack打印出来。array_unshift($arr,’jack’);65.$arrarray(3,7,2,1,’d’,’abc’);请将$arr按照从大到小的顺序排arsort($arr);66.$mail=“ ”;请将此邮箱的域( echostrstr($mail,'163');echoechosubstr($mail,strpos($mail,'@')+1);=explode("@",$mail);echoCunix/*注释内容 C风格的多行注php函数中使用具有全局属性的变量,说出两种方global$a若$aa='aa';print('aaisaa\''."<br/>")aais70.如何把$a‘123’123说说break和continue可以用在哪些语句里,并且列出二者的区breakcontinueswitch它们的区别主要是体现在循环语句中,break表示跳出整个循环,不再执行,循环将终止,而continue则表示跳出本次循环,继续下一次的循环,不会终止循环。$arr[]=$value;array_push($arr,$value);array--一个数count--计算数组中的单元数目或对象中的属性个数listexplode--将数组转成一个新字符串array_merge合并一个或多个数组is_array--检查是否是数组print_rsortarray_keys返回数组中所有的键名array_values--返回数组中所有的值key--从关联数组中取得键名trim()去除字符串首尾处的空白字符(或者其他字符strlen()substr(str_re --替换字符串函 --对指定字符串中的部分字符串进行替 --检索字符串函数explode()--分割字符串函数implode()--将数组合并成字符串str_repeat()--addslashes();--转义字符串htmlspecialchars()--html实体转义(abcmixedarray_rand(array$input[,int$num_req]从数组中随机取出一个或多个单元,它接受input作为输入数组和一个可选的参数num_req1如果你只取出一个,array_rand()返回一个随机单元的键名,否则就返回一个包含随机键所以使用array_rand函数,返回结果要么是键名,有么是数组,在这个例子中,数组是以下代码的执行后是,$result(奇矩互动A.B.C.D.E.(1is_nullNULLnullTRUEFALSE。在下列情况下一个变量被认为是NULL:翻转字符串中的单词,字符串仅包含大小写字母和空格,单词间使用空格分隔。如:输入TsisPHP",输出PisThis"(非必要请不要使用PHP自带函数)(小米)$_ )id=>0-请问你如何使用PHP判断id=>500是否在这个数组内?(亿邮)in_arrayPHP(亿邮array_merge()运行以上代码后$a$b$c分别是?($afalse,$b$c=Fatalerror:Calltoundefinedmethodge_user()in/website/index.phpnonelinege_user()Fatal:error:Class ’notfoundin/website/index.phponline类没有找到,检查文件中有没有类,或者有没有包含类文88//$arr是数据,$keys$order是排序规则,1是升序,0是降序functionarray_sort($arr$keys,$order=0)if(!is_array($arr)){return}$keysvalue=array();foreach($arras$key=>$val){$keysvalue[$key]=}if($order==0){}else{}foreach($keysvalueas$key=>$vals)$keysort[$key]=}$new_array=903PHP1Foreach2、For(3、Eachlistwhile91、如何提高php1staticstatic42、$row[’id’]的速度是$row[id]73、echoprintecho代替字符串连接,比如4、在执行forforeach6、尽量避免使用get,set,autoload。8、include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少。9、如果你想知道开始执行(译注:即服务器端收到客户端请求)的时刻,使$_SERVER[‘REQUEST_TIME’]time()。11、str_rece函数比preg_rece函数快,但strtr函数的效率是str_rece函数的四13、使用选择分支语句(switchcase)if,elseif14、用@错误消息的做法非常低效,极其低效15apachemod_deflate181922191022、仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局部变量)。PHP大概会检查看是否存在全局变量。23、方法调用看来与类中定义的方法的数量无关,因为我在测试方法之前和之后都添102425781526、Apache解析一个PHP的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面,少用。27、除非可以缓存,否则每次调用时都会重新编译一次。引入一套PHP缓存机制通25%100%的性能,以免除编译开销。28、尽量做缓存,可使用memcached。memcached是一款高性能的内存对象缓存系统,Web应用程序,减轻数据库负载。对运算码(OPcode)的缓存很有用,29、当操作字符串并需要检验其长度是否满足某种要求时,你想当然地会使用strlen()函数。此函数执行起来相当快,因为它不做任何计算,只返回在zval结构(C的内置数据结构,用于PHP变量)中的已知字符串长度。但是,由于strlen()是函数,多PHP不区分函数名大小写)、哈希查找,会跟随被调用的函数一起执行。在某些情况下,你可以使用isset()技巧加速执行你的代码。调用isset()恰巧比strlen()快,因为与后者不同的是,isset()作为一种语言结构,意味着它的执行不需要函数查找和字母小写化。并不适用于其他语言,所以请不要修改你的C或Java代码并指望它们能立即变快,没用的。++$i3条指令(opcodes),$i++4条指令。后置递增实ZendPHP35、并不是事必面向对象(),面向对象往往开销很大,每个方法和对象调用都会消耗很多内存。37、方法细分得过多,仔细想想你真正打算重用的是哪些代码39PHP40CXdebug调试器包含了检验程序,评估检验总体上可以显示出代码的瓶颈。42、mod_zipApache80%。43、在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量file_get_contents,因为他的效率高得多!file_get_contents在打开一个URLPHP版本问题44PHP的文件操作效率也不低的45SelectSQLInsert、Update操作46PHP内部函数(PHP里面不存在的函数,浪费了本47、循环内部不要变量,尤其是大变量:对象(这好像不只是PHP里面要注意的问48、数组尽量不要循环嵌套赋值49PHP内部字符串操作函数的情况下,不要用正则表达式;50、foreach效率更高,尽量用foreach代替while和for循环;51、用单引号替代双引号字符串52“i+=1i=i+1c/c++的习惯,效率还高”;53、对global变量,应该用完就unset()掉。93、写一个函数,尽可能高效的,从一个标准lurl里取出文件的扩展名例如:h .cn/abc/de/fg.php?id=1需要取出php或.phpfunction$arr=$file=$ext=explode(“.”,$file);return$ext[1];}functiongetExt($url)$url=$pos1=$pos2=returnsubstr($url,$pos1+1,$pos2–$pos1–}elsereturn}}functioncheck($echopreg_match(‘/^[\w]+@[\w]+[\.]([\w]+)$/’,$)?’格式正确‘:’格}95LURL的正则表达式96、有一个网页地址, 比如开发资源网主页: /index.html,如何得到它的内容? 97、@all单文件4G128M,请问如何找到这个文件中任abcSplfileObjectKMP//1//2循环文件,每次100M,然后调用KMP算法查找和'ABC'相等的字符串的位置,pos//3完毕后关闭文//4posabc//$Tstring//$Pstring//nextnextpos//$startfunctionkmp($Tstring,$Pstring,&$next,{$nstrlen($Tstring);$m=for($i=0,$q=0;$i<$n;{while($q>0&&$Pstring[$q]!=$q=$next[$q-if($Pstring[$q]=={}if($q=={$pos[]=$start $i-$m+}}}nextfunctionmakeNext($Pstring,{$mstrlen($Pstring);$next[0]=for($q=1,$k=0;$q<$m;{while($k>0&&$Pstring[$q]!=$k=$next[$k-if($Pstring[$q]=={}$next[$q]=}}$nextarray(0);//next$posnext$fp=$filePos=0;//$len=1024*1024*100;//100Mwhile(1){$contentfread($fp,$len);//kmp($content,'abc',$next,$pos,$filePos*fseek($fp,$filePos*$len);if(!$fp){}}fclose($fp);//99输出的结果为 PHP写出php的public、protected、private三种控制模式的区public:公有,任何地方都可以protected:继承,只能在本类或子类中,在其它地方不允许private:私有,只能在本类中,在其他地方不允许相关题目:请写出PHP7权限控制修饰符private 请用PHP代码编写类实现在每次对数据库连接的中都只能获得唯一的一个数据库输出结果PHP5中魔术方法函数有哪几个,请举例说明各自的用法(腾讯 serialize unserializetoStringset_statevar_export时被调用,用set_statevar_exportconstructdestructcall对象调用某个方法,若存在该方法,则直接调用,若不存在,则调用callcallStaticget一个对象的私有属性时,若属性存在,则直接返回,若不存在,则调用getset设置一个对象的私有属性名时,若属性存在,则直接赋值,若不存在,则调用setissetunsetcloneautoload 相关题目:请写出php的构造函数和析构函数构造函数:construct析构函数:destructmd5$testObject=new$encryption=$testObject->Get_test("Howwouldyoudeclareaclassnamed“myclass”withnomethodsorclass相关题目:如何一个名为“myclass”的没有方法和属性的类HowdoyouaccessandsetpropertiesofaclassfromwithintheThecodebelow because (腾讯willwork,classdefinitionscanbesplitupintomultiplePHPwillnotwork,classdefinitionsmustbeinasinglePHPwillnotwork,classdefinitionsmustbeinasinglefilebutcanbeinmultiplePHPwillwork,classdefinitionscanbesplitupintomultiplefilesandmultiplePHP答案:类的属性可以序列化后保存到session中,从而以后可以恢复整个 serialize()来的。抽象方法的格式为 接口是通过interface关键字来的,接口中的成员常量和方法都是public的,方法可以不写关键字public,extendsimplements字const,例如:constPI=3. 无论是类内还是类外,常量的和变量是不一样的,常量不需要实例化对象常量的格式都是类名加作用域操作符号(双冒号)来调用,即:类名执行autoload()函数。这个函数会根据实例化的类的名称来查找这个类文件的路径,当判断这个类文件路径下确实存在这个类文件后就执行include或者require来载入该类,然后程序哪种OOP设置模式能让类在整个里只实例化一次?(奇矩互借助继承,我们可以创建其他类的派生类。在PHP中,子类最多可123a答案:Caechoclassasomethingechoclassbechoclassbsomethingechoclassaechoclassaechoclassbsomethingba数覆盖了父类的构造函数,要想子类对象实例化时也执行父类的构造函数,需要在子类构造函数中使用parnt::contrut()来显示调用父类构造函数。请定义一个名为MyClass的类,这个类只有一个静态方法just 写出你知道的几种设计模式,并用php代码实现其中一种()单例模式,工厂模式,观察者模式,门面模式,反射,适配器模式,策略设计模式,依赖注入等等。使程序机构更加清晰。主要特征是:封装、继承、多态。五大基本原则:单一职责原则;开放封闭原则;替换原则;依赖原则;接口分离原则。$max=$arr=['a'=>'aa','b'=>'bb','c'=>'cc'];echojosn_encode($arr);答file_put_contents()函数用于把字符串写入文件,成功返回写入到文件内数据的字节数,失败则返回FALSE。intfile_put_contents(stringfilename,stringdata[,intflags[,resourcecontext]])模板引擎可以让()程序实现界面与数据分离,业务代码与逻我们见惯的模板安装卸载等概念,基本上都和模板引擎有着千,还可Ajax的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给Ajax器新数据时再由Ajax擎代为向服务器提交请求。如何实现不同地区同一个跳转到当前区域MySQL这两个函数都作用于mysqli_query($query)操作的结果,mysqli_num_rows()集中行的数目。mysqli_affected_rows()取得前一次MySQL操作所影响的记录行数。mysqli_num_rows()仅对SELECT语句有效,要取得被INSERT,UPDATE或者DELETE查询所影响到的行的数目,用mysqli_affected_rows()。root账户,为不同的类型的动作或者组建使用不同的账户。当sql运行出错时,数据库返回的错误信息全部显示给用户,以防止服务器(索引是一种特殊的文件(InnoDB对数据表里所有记录的指针。普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的速度。UNIQUE一条记录,使用关键字PRIMARYKEY来创建。INDEX(columnA,columnBmysql,whereorlikemysql>SELECT`uid`FROMpeopleWHERE ANDANDALTERTABLEpeopleADDINDEXlnamelnamelname='Liu11,产fname='Zhiqun'2,2,找到age=263,即最终结lnamelnamefnameage列的索引,但是,不论在哪个列上创建索引搜索效率仍旧相似。ALTERTABLEpeopleADDINDEXlname_fname_ageB-Treelname_fname_agemysql码,,留言内容包括:留言ID,标题,内容,时间,状态(数据库结构。无需写建表语句,用类似下面的表格,描述清楚即可,注意,要在索引栏中注明是否需要创建索引,以及要创建的索引的类型intint用户intinttinyint01SELECT,COUNT(*)ASFROMuserASuINNERJOINmessageASmONu.user_id=m.user_idGROUPBYHAVINGtotal>10ORDERBYtotalDESC导出一mysqldump-u用户名-p库名表名>文件(导出多mysqldump-u用户名-p库名表名1表名2表名3>文件(导出所有表mysqldump-u用户名-p库名>文件(导出一个库mysqldump-u用户名-p-B库名>文件(两city表和province表。分别为城市与省份1121314253123sqlid,城市名,所属省份。如:id(城市id)citynameprivence(SELECTc.idASid,c.cityASFROMcitycLEFTJOINprovincepONgroupbyid,省份名,包含多少个城市。SELECTp.id,vince,count(c.id)ASFROMprovincepLEFTJOINcitycONp.id=vinceidGROUPBYp.id;MySQLvarcharcharchar,varcharchar(10,1010varchar(1010插入多少个字符就存多少个。varchar怎么知道所字符串的长度呢?实际上,对于varchar(255)或两个字节(255)区别之二,的容量不同对char来说,最多能存放的字符个varchar6553265532varchar何的数据,然后还需要两个字节来存放字符串的长度。所以有效长度就是655351-=Latin165532GBK32766个字符UTF821844个字符注意,charvarchar后面的长度表示的两相比较,charcreatetablet1(cintc2char(30),c3varchar(Ncharset=utf8;N的最大值又是多少?(6553512430*3要一味的追求数据库范式,这个时候有可能会降低的效率(反数据库范式设计。反范第一范式(1NF第三范式最简单的办法是使用字符串(varchar)ipint,PHP:long2ip()ip2long()MySQLinet_ntop(inet_pton123456CREATETABLEgrade(idINTUNSIGNEDNOTNULLAUTO_INCREMENTPRIMARYKEY,nameVARCHAR(10)NOTNOTNULLINSERTINTOgrade(name,subject,score)VALUES('','语文',55);INSERTINTOgrade(name,subject,score)VALUES('','政治',45);FROMgradeGROUPBYname10.为了记录比赛的结果,设计表如下主队的客队的其中,matchhostTeamIDguestTeamIDteamteamID2006-6-1到2006-7-12:02006-6-PRIMARYKEY,teamNameVARCHAR(30)NOTNULLINSERTINTOteam(teamName)VALUES('拜仁');INSERTINTOteam(teamName)VALUES('不莱梅');INSERTINTOteam(teamName)VALUES('巴塞罗那');INSERTINTOteam(teamName)VALUES('切尔西');INSERTINTOteam(teamName)VALUES('曼联');INSERTINTOteam(teamName)VALUES('AC米兰');INSERTINTOteam(teamName)VALUES('国际米兰');#matchCREATETABLEmat(matchIDINTUNSIGNEDNOTNULLAUTO_INCREMENTPRIMARYKEy,hostTeamIDINTUNSIGNEDNOTNULL,guestTeamIDUNSIGNEDNOTNULL,matchResultVARCHAR(20)NOTNULL,matchTimeDATENOTNULLINSERTINTOmat(hostTeamID,guestTeamID,matchResult,matchTime)VALUES(5,6,'0:2','2006-7-#SELECTt1.teamName,matchResult,t2.teamName,matchTimeFROMmatLEFTJOINteamASt1ONhostTeamID=t1.teamIDLEFTJOINteamASt2ONguestTeamID=WHEREmatchTimeBETWEEN'2006-6-1'AND'2006-7-12SQL利用下表:SELECTmembers.usernameFROMmembersORDERBYpostsDESCLIMIT避免在索引列上使用计算、notinlimit保证单表数据不超过200W,适时分割表。针对查询较慢的语句,可以使用exin来分选择最有效的表名顺序,from字句中写在最后的表是基础表,将被最先处理,在SQL中LEFTJOIN的含义是,如果tbl_user记录了学生的(name)和学号(ID),tbl_score记录了学生(有的学生考试以后被了,没有其记录)的学号(ID)和考则可以用SQL语句 leftjoin表示左外连接,以左表为准,左表中的记录都会出现在查询结果中,如果对应的记录在右表中没有匹配的记录,则右表的字段值以NULL填充。#创建表CREATETABLEtbl_user(idINTNOTNULL,nameVARCHAR(50)NOTNULL,PRIMARYKEY(id)#创建表CREATETABLEtbl_score(idINTNOTNULL,scoreDEC(6,2)NOTNULL,subjectVARCHAR(20)NOTNULLINSERTINTOtbl_user(id,name)VALUES(1,'beimu');INSERTINTOtbl_user(id,name)VALUES(2,'aihui');INSERTINTOtbl_scoreid,score,subject)VALUES(1,90,语文');INSERTINTOtbl_scoreid,score,subject)VALUES(1,80,数学');INSERTINTOtbl_scoreid,score,subject)VALUES(2,86,数学');INSERTINTOtbl_scoreid,score,subject)VALUES(2,96,语文SELECTa.id,SUM(b.score)ASsumscoreFROMtbl_useraLEFTJOINtbl_scorebONa.id=b.idGROUPBY使用php写一段简单查询,查出所有为“”的内容并打表 content 大专毕业 2006- 本科毕业 2006- 中专毕业 2006-$result=mysql_query("select*fromuserwherename=''"); $row[''].$row['content'].$row['date'];echo}写出SQL语句的格式:插入,更新,删除(表名 content 大专毕业 本科毕 2006-10-15中专毕 高中毕业2007-05-06)请用SQL语句新增至表请用sql语句把的时间更新成为当前系统时间(c).请写出删除名为的全部记录INSERTINTOuser(name,,content,date)VALUES('小王',' UPDATEuserSETdate=date_format(now(),'%Y-%m-%d')WHEREname=''DELETEFROMuserWHEREname=''MySQLID字段)必需将其设为()字段整型,并设置为所有操作的影响都将取消。ACID四大特性,原子性、性、一致性、持久性。 mysqli_fetch_array()?(Yahoo)mysqli_fetch_row()回。每个结果的列在一个数组的单元中,偏移量从0开始mysqli_fetch_array()mysqli_fetch_row的扩展版本。除了将数据以数字索引方式mysqli_fetch_array()中可选的第二个参数result_typeMYSQL_ASSOC,MYSQL_NUMMYSQL_BOTHMYSQL_BOTH如果用了MYSQL_BOTH,将得到一个同时包含关联和数字索引的数组。用MYSQLI_ASSOC只得到关联索引(mysqli_fetch_assoc()那样MYSQL_NUM只得到数字索引(如同mysqli_fetch_row()那样。请写出php连mysql连接中,获取下一个自增长id值的方法,max(id)1fromtablelast_insert_id()+1从表login中选出name字段包含admin的前10条结果所有信息的sql语句(酷讯)SELECT*FROMloginWHEREnameLIKE‘%admin%’LIMIT10;表中有ABCSQLABABBCBCSELECTCASEWHENA>BTHENAELSEBEND,CASEWHENB>CTHENBELSECENDFROM写出三种以上MySQL数据库引擎的名称(提示:不区分大小BDB(BerkeleyDBMemory(HeapArchive、CSV、Blackhole、MaxDB等等十几个引擎。3SQLRR取得一次添加记录(假设id为主键,并且是自增类型)所产idmysqli_insert_id();如果上一查询没有产 AUTO_INCREMENT的值,mysqli_insert_id()0sql(字符串变量)$sql 在平常mysql优化方面,最基本的也是最重要的优化是((奇先说什么是交叉连接,交叉连接又叫积,它是指不使用任何条件,直接将一个表接可以互换,MySQL两条查询语句,一条是select*fromtable1whereid>10andid<100,一条是select*fromtable2whereid>200andid<500,请尝试只写一条SQL(鑫众人云)uniontable1table2SELECT*FROMtable1WHEREid>10ANDid<100UNIONALLSELECT*FROMtable2WHEREid>200ANDid<MySQL,SQLServer,Oracle,Sybase,informix,DB2CREATETABLEuser(idINTUNSIGNEDNOTNULLPRIMARYKEYAUTO_INCREMENT,usernameVARCHAR(30)NOTNULLDEFAULT''COMMENT'用户名', VARCHAR(50)NOTNULLDEFAULT''COMMENT'邮箱',passwordCHAR(32)NOTNULLDEFAULT''COMMENT'')engine=MyISAMcharset=utf8comment='用户表CREATETABLErelation(rel_idINTUNSIGNEDNOTNULLPRIMARYKEYINTUNSIGNEDNOTNULLCOMMENT被关注人的id',relation_typeNOTNULLDEFAULTSCOMMENT关系,sd表示为好友)engine=MyISAMcharset=utf8comment='用户关系表假设现在有一个数据库服务器,服务器地址为10,用户名为root为password请使用PHP编写一个面向过程化的连接该数据库的代码(亿邮)$connmysqli_connect('10','root','password')ordie('数据库连接失败InnoDB引擎,主要面向OLTP(OnlineTransactionProcessing,事务处理)方面的应用,是第一个完整支持ACID事务的引擎(BDB第一个支持事务的引支持类似于Oracle风格的一致性非锁定读(即:默认情况下操作不会产生锁);InnoDBInnoDBMySQL4.1始,可以将每个InnoDB引擎的表单独存放到一个独立的ibd文件中;InnoDBMVCC(多版本并发控制:读不会阻塞写,写也不会阻塞读)来获得高并发性,并且实现了SQL标准的4种级别(默认为REPEATABLE级别);InnoDB还提供了插入缓冲(insertbuffer)、二次写(doublewrite)、自适应哈希(adaptivehash index)、预读(readahead)等高性能和高可用的功能;InnoDB采用了(clustered)的方式来表中的数据,每张标的都按主键的顺序存放(如果没有显式的在建表时指定主键,InnoDB6innodbmonitorMyISAM引擎是MySQL提供的 OLAP(Onlineytical MyISAM引擎表由MYD和MYI组成,MYD用来存放数据文件,MYI用来存放索引文件。MySQLMySQL5.0,MyISAM256T现在有下面一个查询语句select*fromtabnamewhereid=2and可以使用exinselect*fromtabnamewhereid=2andpassword='abc’来分析其执行情况相关题目:谈一下对exin工具的理解,以及其中的一些参数的意exin是一个mysql的分析语句的一个小工具SQLSQL语句。uniondependentunionuniondependentExtratypetypedistinct:mysqlnotexists:mysql优化了leftjoinleftjoinrangecheckedforeachrecord:usingfilesort:查询就需要优化了。mysql需要进行额外的步骤,来对返回的内容进行排usingindex:列数据仅仅从索引中进行。而没有真正的行,所返回的数据。你当前查whereused:限制哪些行或者其他的表的数据返回给用户。systemsystemconst连接类型特殊情况。eq_ref:MySQL在查询时,从前面的表中,对每一条记录联合。它使用索引为主键或者ref:range:ALLinnodbcountmysqli_query(‘setnamesutf8’utf8iconvutf840、mysql中varchar大文本?date和datetimetimestamp中有哪些sql正在执行?()节来存放字符串的长度。所以有效长度就是65535-1-2=65532。由字符集来确定,字符集分单字节和多字节,如果是单字节,如latin1,则最多可以65532GBK32766,UTF821844个字符。textdate1000-01-01~9999-12-datetime1000-01-0100:00:00~9999-12-3123:59:59timestamp是unix时间戳的日期时间表示方式,其范围较小为1970-01-0100:00:00~2038-01-1903:14:07,timestampsqlshowprocesslist41、现在有一个mysql数据库表visits记录用户情况,表结构如下:visits(idintunsigneduser_idintunsignedcomment‘本次页面数visit_timetimestampcomment‘本次开始时间’,primary用户每过一次(从进入到离开),会增加一条记录。记录用户的ID(user_id),以及访1,208,2,//208这个用户2个页3,208,1,//208用户了1个页0貌似有些问题,user_id应为用户ID,而不是页面数,增加一个字段pages表示页面数。查询页面数最多的10个用户的查询语句如下SELECTuser_id,sum(pages)astotalFROMvisitsGROUPBYORDERBYtotalDESCLIMIT输出累计页面数分别等于1,2,3,4,5,6,7,8,9,10的唯一用户的数量的查询语句如下SELECTtotal,count(user_id)FROM(SELECTuser_id,sum(pages)AStotalFROMvisitsGROUPBYuser_id)ASWHEREtotalINGROUPBYtotal从应用分层的原则,大量使用过程导致业务逻辑分散在DB和应用服务器层,不利于和更新。总体来说,程序可以用,但要慎重,最好只用来,不用于业务逻辑43、对于关系型数据库而言,索引是相当重要的概念,请回答有关索引的几个问题:快速数据表中的特定信息,提高检索速、索引对数据库系统的影响是什么影响:创建索引和索引需要耗费时间,这个时间随着数据量的增加而增加;索对表进行增、删、改、的时候索引也要动态,这样就降低了数据的速度。44、web应用中,数据库的频率远高于写入频率,如何优使用memcache缓存技术,将动态数据缓存到文件,动态页面时直接调用缓存文件,如果的量很大,可以把数据库读写服务器分开,使用多态服务器去处理数据库1、磁盘检 3、CPU周 优化方法是:扩充内4NOTNULL,NULLsql必要的时候用不同的引擎,比如Innodb可以减少死锁,HEAP可以提高一个数量级48、设定的用户数量在千万级,但是活跃用户的数量只有1%,我们可以根据用户的活跃程度,把活跃的用户提取出来放到另外一里面,每次活跃XSS是跨站,首先是利用跨站以一个模式去执行者构造的,然后利用不安全的Activex控件执行的行为。使用SQLsqlPOSTGETsqlmagic_quotes_gpcmagic_quotes_runtime过滤掉sql语句中的一些:update、insert、delete、select、*提高数据库表和字段名技巧,对一些重要的字段根据程序的特点命名,取不易被猜try……catchtry如果异常被触发,就会抛出一个异常。Catch代码块捕获异常,并创建一个包含异常信息的1、命令注入(CommandInjection)2、eval注入(EvalInjection)3、客户端(Script4、跨(CrossSiteScripting,XSS)5、SQL注入(SQLinjection)6、跨请求(CrossSiteRequestForgeries,CSRF)7、Session(SessionHijacking)8、Session固定(SessionFixation)9、HTTP响应拆分(HTTPResponseSplitting)10、文件上传(FileUploadAttack) 穿越(DirectoryTraversal)12、文件包含(RemoteInclusion)13、动态函数注入(DynamicVariable14、URL(URL15、表单提交(SpoofedForm16、HTTP请求(SpoofedHTTP53、你常用到的mysqlShowdatabasesShowtablesInsertinto表名()values()UpdatesetwhereDeletefrom表名where...Select*fromwhereorderbyDesc/asclimit...Groupby...Having进入lmysql管理命令行令Mysql-uroot-p回车showdatabases;这个命令的作用?mysqlshowcreatedatabasemysql;这个命令的作用?显示创建数据库的sql语句showcreatetableuser;这个命令的作用?显示创建表的sql语句descuser;这个命令的作用?查询user表的结构exinselect* fromuser;这个命令的作用?获取select相关信息showprocesslist;这个命令的作用?SHOWVARIABLES;这个命令的作用?SHOWVARIABLESlike’%conn%显示系统变量名包含conn的值LEFTJOINSQLSELECTA.id,A.classFROMALEFTJOINBON55、请列出5PHP操作MySQL1、56、优化Mysql一.优化索引、SQL二.三.我们可以加上memcached缓存,将

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论