首页 PHP编程基础与实例教程练习题参考答案

PHP编程基础与实例教程练习题参考答案

举报
开通vip

PHP编程基础与实例教程练习题参考答案PHP编程基础与实例教程练习题参考答案由于时间仓促,答案中难免存在错误,不妥之处恳请读者批评指正!第1章答案:1.答案见教材1.2.3,1.2.4,1.2.5,1.2.62.答案见教材1.2.4,1.2.53.PHP,JSP,.NET,ASP等4.答案如下:打印明天的时间使用下面的程序:date()函数中:d: 几日,两位数字,若不足则补零;从"01"至"31"D:  星期几,3个英文字母,如:"Fri"F:  月份,英文全名,如:"January"h:  12小时制的小时,从"01"至"12"H:  24小时制的...

PHP编程基础与实例教程练习题参考答案
PHP编程基础与实例教程练习 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 参考答案由于时间仓促,答案中难免存在错误,不妥之处恳请读者批评指正!第1章答案:1.答案见教材1.2.3,1.2.4,1.2.5,1.2.62.答案见教材1.2.4,1.2.53.PHP,JSP,.NET,ASP等4.答案如下:打印明天的时间使用下面的程序:date()函数中:d: 几日,两位数字,若不足则补零;从"01"至"31"D:  星期几,3个英文字母,如:"Fri"F:  月份,英文全名,如:"January"h:  12小时制的小时,从"01"至"12"H:  24小时制的小时,从"00"至"23"m: 月份,两位数字,从"01"至"12"M:  月份,3个英文字母;如:"Jan"s:  秒;从"00"至"59"w:  数字型的星期几,从"0(星期天)"至"6(星期六)"Y:  年,四位数字y:  年,两位数字z:  一年中的第几天;从"1"至"366"time()函数返回当前时间的Unix时间戳,即:自从Unix纪元(格林威治时间1970年1月1日00:00:00)到当前时间的秒数。5.Apache服务器的配置文件名是httpd.conf文件,默认放在C:\wamp\bin\apache\Apache\conf目录下。MySQL服务器的配置文件名是my.ini,默认放在C:\wamp\bin\mysql\mysql目录下,PHP预处理器配置文件名是php.ini,默认放在C:\wamp\bin\apache\Apache\bin目录下。6.答案见教材1.3.5第2章答案:1.答案见教材2.1.12.答案见教材2.1.23.答案见教材2.2.2布尔型主要用于逻辑判断,整型和浮点型主要用于算术运算,字符串主要用于文字性描述,数组实际上是用于容纳若干变量的容器。当使用面向对象编程思想时,需要使用对象描述事物(属性及方法)。4.echo与print共同点:它们都不是真正的函数,是一种语法结构,因为语句没有返回值,函数可以有返回值(即便没有用)(也有说print是函数,echo不是)。echo和print后面都可不用加(),如:echo'ok';print'ok';运行速度echo稍快一些,因为echo并不返回值,print返回一个值int(1)。echo与print区别:一般用echo,除非三元运算时。$a=5;($a==5)?print'5':print0;echo后不要跟()。print只能有一个参数,所以不能不能用",",而echo可以。echo--输出一个或者多个字符串print_r是递归打印,主要用于打印复杂类型变量的值(如数组,对象)5.答案见教材2.36.答案见教材图2.37.get_test("123");echo$password;//输出字符串“123”两次md5加密结果:d9b1d7db4cd6e70935368a1efb10e377?>第3章答案:选择题:1:C2:B3:A4:D(说明:PHP变量以一个美元符号为开头,后面跟上任意数量的数字、字母和下划线。${“MyVar”}是一个合法的变量名,它使用的是较松散的命名约定。&$something是对$something的引用。然而,变量名不能以数字为开头,$10_somethings是非法的,因此答案是D。)5:D(说明:这又是一个考验debug能力的题。注意到了吗,在脚本的末尾,echo语句中的?$output变量拼错了!脚本不会输出任何东西,答案是D),6:D(说明:%运算符表示取模,它返回两个操作数相除的余数。<<是左移运算符,相当于乘以2的N次方。最后的答案乘以了一个浮点数,改变了它的数据类型。但是,由于小数点后是零,因此输出的结果不包含小数部分。答案是256)7:B(说明:全等运算符比较两个操作数的数据类型和值,两者中有一个不同,都会返回False。因此答案是B)8:AC(说明:A选项中,pow函数计算2的平方,答案是4。C选项中,左移运算符将$a的值左移两位,相当于乘以4)9:D10:B填空题:逻辑异或(xor)运算符02程序阅读题相等相等不相等truetruetruetruetruefalsetruefalseaaaaaa41hotdogokiszero4问答题:1.isset($str)用于测试变量是否设置(或者存在),empty($str)用于测试变量是否为空。检测变量是否为空使用is_null()和empty()函数。is_null()和empty()函数的区别请参考下面的程序:";var_dump(is_null($a));//输出:bool(false)?>2.PHP垃圾回收机制是基于引用计数机制的垃圾回收,当一个变量的引用计数变为0时,PHP将在内存中销毁这个变量,此时启动垃圾回收机制。当一个变量被初始化或者赋值给另一个变量时引用计数会加1,当变量或者被赋值的变量被销毁或者被侦测到无用时引用计数会减一,当垃圾收集的进程运行时会释放掉引用计数为0的那些变量会被从内存中释放(垃圾回收期间程序会被中断)。当脚本执行完成时所有资源都会被释放。3.按值传递:函数范围内对值的任何改变在函数外部都会被忽略按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改区别:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。按引用传递则不需要复制值,对于性能提高很有好处。传值只是把某一个变量的值传给了另一个变量,而引用则说明两者指向了同一个地方。4.5.$var2?$var1:$var2;$max=$max>$var3?$max:$var3;echo$max;?>第4章答案:选择题:1.D(说明:根据条件式的逻辑,要想得到Hello,World!字符串,必须要在第一个if结构中满足else的条件。因此$a必须为False,然后$b也必须为False。最内层的条件语句的实现要求先前的两个变量($a和$b)是False,而$c必须是True)2.C3.A4.E编程题:第5章答案:选择题:1.D2.B3.B4.A(说明:注意,$myarray的键值并没有打上引号。所以,正在访问的键不是myvalue字符串,而是常量myvalue的值。最终访问的是$myarray[10],值是Dog,答案是A。)5.A(说明:5.通常情况下,foreach语句是遍历数组的首选。但是,由于foreach语句是在数组的副本上进行操作,而我们需要给数组中每个元素重新赋值,所以在这里foreach就不适用了。尽管也可以用while循环和do…while循环,但由于数组是顺序索引的,最合适的语句还是for语句。因此答案是A。)6.C7.E8.B(说明:foreach操作的是$array的副本,因此对原来的值没有影响)9.B(说明:只有asort函数能在保留原有索引关系的前提下进行排序。答案是B)10.A11.B,D(说明:array_flip()只能把数组中每个元素的键和值进行交换。rsort()和array_reverse()则能把题目中的数组逆向排序为需要的形式(’d’,’c’,’b’,’a’)。答案是B和D。)12.B13.D14.A15.A16.A问答题:1.中文意思是:三个函数之间有什么差别?你分别在什么情况下会使用上面三个函数?答案参见教材5.4.72.";echoimplode(',',$arr);//方法2?>第6章答案:选择题:AB,DC问答题:1.答:get是发送请求HTTP 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息。区别如下:a、Get方法通过URL请求来传递用户的数据,将表单内各字段名称与其内容,以成对的字符串连接,置于action属性所指程序的url后,如,数据都会直接显示在url上,就像用户点击一个链接一样;Post方法通过HTTPpost机制,将表单内各字段名称与其内容放置在HTML表头(header)内一起传送给服务器端交由action属性能所指的程序处理,该程序会通过 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 输入(stdin)方式,将表单的数据读出并加以处理b、Get方式需要使用$_GET来取得变量的值;而Post方式通过$_POST来访问提交的内容c、Get方式传输的数据量非常小,一般限制在2KB左右,但是执行效率却比Post方法好;而Post方式传递的数据量相对较大,它是等待服务器来读取数据,不过也有字节限制,这是为了避免对服务器用大量数据进行恶意攻击。可在php.in中对post_max_size进行设置。建议:除非你肯定你提交的数据可以一次性提交,否则请尽量用Post方法d、Get方式提交数据,会带来安全问题,比如一个登陆页面,通过Get方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问客户这台机器,就可以从历史记录获得该用户的帐号和密码,所以表单提交建议使用Post方法;Post方法提交的表单页面常见的问题是,该页面如果刷新的时候,会弹出一个对话框。2.答案参见教材6.5.23.答案参见教材6.5.44.以上传文件只允许为”jpg”图片为例,只需要得到文件名的扩展名必须是”jpg”或者”JPG”,才可进行上传。获得文件名扩展名的方法如下:$extend=strtolower(end(explode(".",$myPictureName)));说明:这里用到了字符串操作函数explode,数组指针函数end,和字符串操作函数strtolower然后再使用if判断语句if($extend==“jpg”),条件成立时,再进行上传。5.POST传输数据容量由php.in中post_max_size的值设置。GET传输数据容量由浏览器决定。6.";echo$serverIP;?>7.程序说明:此题关键在于文件上传框不确定,可以使用DOM+JavaScript,产生不确定个数的于文件上传框。步骤如下:1.创建目录:uploads,所有上传文件置于该目录下。2.创建upload.html文件,写入如下代码:

3.创建upload.php文件,写入如下代码:");}$count=count($_FILES['myFile']['name']);for($i=0;$i<$count;$i++){$myFile=$_FILES['myFile'];$error=$myFile["error"][$i];switch($error){case0:$fileName=$myFile['name'][$i];echo"您上传的文件有:".$fileName."
";$fileTemp=$myFile['tmp_name'][$i];$destination="uploads/".$fileName;move_uploaded_file($fileTemp,$destination);break;case1:echo"上传的某些文件超过了php.ini中upload_max_filesize选项限制的值!
";break;case2:echo"上传的某些文件超过了FORM表单MAX_FILE_SIZE选项指定的值!
";break;case3:echo"某些文件只有部分被上传!
";break;case4:echo"没有选择上传文件!
";break;}}?>第7章答案:选择题:1.A2.E3.C4.A5.B6.E(说明:在较新版本的PHP中,require(或requier_once())和include()(或include_once())只有一个区别——如果包含的文件不存在,前者将产生一个致命错误,同时终止脚本的执行;而后者只会产生一个警告。因此答案E正确)7.C(说明:当参数被声明为通过引用传递时,你不能给它赋默认值,此时解释器期望获得一个能在函数内部进行修改的变量。)8.A(说明:一段脚本并不会在执行到文件末尾时终止,所以当前文件才能被其他脚本包含。至于PHP和Apache崩溃,这两个说法就太恶搞了)9.程序阅读题:1.5012.5523.12问答题:1.$var2?$var1:$var2;$max=$max>$var3?$max:$var3;return$max;}?>2.答案请参考第6章最后一道习题。3.按值传递:函数范围内对值的任何改变在函数外部都会被忽略按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。按引用传递则不需要复制值,对于性能提高很有好处。4.通过修改php.ini配置文件的选项allow_call_time_pass_reference(默认值为Off)决定是否开启函数调用时强制参数按照引用传递。5.可用冒泡法进行排序。冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后,此时第一趟结束,在最后的数必是所有数中的最大数。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最大数。如此下去,直至最终完成排序。=$i;$j--){if($str[$j+1]<$str[$j]){  $tmp=$str[$j+1];$str[$j+1]=$str[$j];$str[$j]=$tmp;}}}return$str;}$str=array(3,6,1,5,9,0,4,6,11);print_r(BubbleSort($str));?>6.说明:这里使用了字符串处理函数ucwords()和explode()函数。7.说明:这里使用了字符串处理函数explode()函数。0){ $returnPath=array_merge($returnPath,array_fill(1,$len-$n,'..')); } $returnPath=array_merge($returnPath,array_slice($arrA,$n)); returnimplode('/',$returnPath); }$a='/a/b/c/d/e.php';$b='/a/b/12/34/c.php';echogetRelativePath($a,$b);?>第8章答案:1.E2.B3.C4.C5.E6.C7.B,C(说明:在标准SQL中,如果出现GROUPBY,结果集中所有的字段都必须是聚集值,或者是GROUPBY结构本身的一部分。某些DBMS——比如MySQL——允许你打破这种 规则 编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf ,但它不按标准的方式执行,并且在其他数据库系统上无效。)8.C(说明:本题描述了一种在使用join时常犯的概念性错误。很多人可能觉得这个查询将返回两个表中非共有记录。但实际上数据库却认为是“读出所有ID非共有的记录”。DBMS将读取读取左边表中所有的记录加上右边表中ID非共有的记录。因此,该查询将读取TABLE1中的每条记录乘以TABLE2中的每条记录再减去两表中相同的记录条数。)填空题:1.事务2.where3.insert4.auto_increment5.左连接表A和表B意味着取表A的全部记录按指定的连接条件与表B中满足连接条件的记录进行连接,若表B中没有满足连接条件的记录,则表A中相应字段填入NULL。问答题:1.答案参见图8-21(说明,父子关系是相对的)2.答案参见8.1.23.满足唯一性约束的字段可以为NULL。4.MEMORY,MyISAM,InnoDB5.答案参见8.3.36.Varchar是变长,节省存储空间,char是固定长度。查找效率要char型快,因为varchar是非定长,必须先查找长度,然后进行数据的提取,比char定长类型多了一个步骤,所以效率低一些。7.忽略8.说明:这里使用了MySQL的now()函数和DATE_FORMAT()函数。INSERTINTOUser('Name','Tel','Content','Date')VALUES('小王','132********','高中','2007-05-06')UPDATEUserSETDate=DATE_FORMAT(NOW(),'%Y-%m-%d')WHEREName='张三'DELETEFROMUserWHEREName='李四'9.SELECTusername,count(*)asnumFROM`members`groupbyusernameorderbycount(*)desclimit10数据库 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 题:该题只需设计ER图,ER图如下:第9章答案:选择题:1.B,D(说明:用户输入未经过滤就直接送往了数据库,这非常危险。如果URL包含ID=0+OR+1这样的参数时,实际的查询为DELETEFROMMYTABLEWHEREID=0OR1,数据库将删除表中所有的记录。)2.A3.C4.A(说明:mysql_fetch_field函数从结果集中取得列信息并作为对象返回)5.C填空题:过滤特殊字符。addslashes问答题:1.答案参见9.1.62.在index.php文件中写入如下代码:";GenerateMenu($row["submenu"],$str."--");}mysql_free_result($result);}$link=mysql_connect("localhost","root","");mysql_select_db("phpinterview");GenerateMenu();mysql_close($link);?>3.数据库的这个分类表可以设计大概如下,类举例如下:categoryID categoryName  categoryParentID1     电脑数码     02     娱乐休闲     03       电脑常识     14       电影电视     25       主机       3categoryParentID为0表示为第一级分类,categoryParentID为1表示为id=1的子分类,也就是说电脑常识是电脑数码的子目录,其它也类似。。。query($sql);while($rows=$DB->fetch_array($result)){$category_array[$rows[categoryParentID]][$rows[categoryID]]=array('id'=>$rows[categoryID],'parent'=>$rows[categoryParentID],'name'=>$rows[categoryName]);}if(!isset($category_array[$category_id])){return"";}foreach($category_array[$category_id]AS$key=>$category){if($category['id']==$default_category){echo"0){echo">".str_repeat("",$level)."".$category['name']."\n";}else{echo">".$category['name']."\n";}Get_Category($key,$level+1,$default_category);}unset($category_array[$category_id]);}functionCategory_array($category_id=0,$level=0){global$DB;$sql="SELECT*FROMcategoryORDERBYcategoryIDDESC";$result=$DB->query($sql);while($rows=$DB->fetch_array($result)){$category_array[$rows['categoryParentID']][$rows['categoryID']]=$rows;}foreach($category_arrayAS$key=>$val){if($key==$category_id){foreach($valAS$k=>$v){$options[$k]=array('id'=>$v['categoryID'],'name'=>$v['categoryName'],'level'=>$level,'ParentID'=>$v['categoryParentID']);$children=Category_array($k,$level+1);if(count($children)>0){$options=$options+$children;}}}}unset($category_array[$category_id]);return$options;}classcate{functionGet_Category($category_id=0,$level=0,$default_category=0){echo$category_id;$arr=array('0'=>array('1'=>array('id'=>1,'parent'=>0,'name'=>'1111'),'2'=>array('id'=>2,'parent'=>0,'name'=>'2222'),'4'=>array('id'=>4,'parent'=>0,'name'=>'4444')),'1'=>array('3'=>array('id'=>3,'parent'=>1,'name'=>'333333'),'5'=>array('id'=>5,'parent'=>1,'name'=>'555555')),'3'=>array('6'=>array('id'=>6,'parent'=>3,'name'=>'66666'),'7'=>array('id'=>7,'parent'=>3,'name'=>'77777')),'4'=>array('8'=>array('id'=>8,'parent'=>4,'name'=>'8888'),'9'=>array('id'=>9,'parent'=>4,'name'=>'9999')));if(!isset($arr[$category_id])){return"";}foreach($arr[$category_id]AS$key=>$cate){if($cate['id']==$default_category){$txt="0){$txt1=">".str_repeat("-",$level)."".$cate['name']."\n";}else{$txt1=">".$cate['name']."\n";}$val=$txt.$txt1;echo$val;self::Get_Category($key,$level+1,$default_category);}}functiongetFlush($category_id=0,$level=0,$default_category=0){ob_start();self::Get_Category($category_id,$level,$default_category);$out=ob_get_contents();ob_end_clean();return$out;}}$id=$_GET['id'];echo"";?>然后在浏览器地址栏中输入:http://localhost/index.php?id=1第10章答案:任务1答案:createtablemessage(idINT  NOTNULLAUTO_INCREMENTPRIMARYKEY,titlevarchar(100),contentvarchar(225),category_idint,hitsint  )任务2答案:selecta.id, a.title, a.hits,if(ifnull(b.id,false),count(*),0)asreplayfrommessagealeftjoincommentbona.id=b.idgroupbya.idorderbyreplaydesc任务3答案:functioncategoryList(){$result=mysql_query("selectcategory_id,categroy_namefromcategory")ordie("Invalidquery:".mysql_error());print(""n");while($rowArray=mysql_fetch_array($result)){print("".$rowArray['categroy_name'].""n");}print("");}第11章答案:选择题:CBB(说明:浏览器不允许来自某个域名的HTTP事务更改另一个域名下的cookie,否则这将造成严重的的安全问题。)DBB,D(说明:B和D是最有可能出问题并应该深入调查的地方。由于浏览器访问其他网站都正常,所以不可能是浏览器程序出了问题。杀毒软件通常不会选择性的只阻止安全的cookie(不过有可能会阻止所有的cookie)。你首先应当检查浏览器是否被设置为阻止所有cookie,这是最有可能导致该问题的原因。同时,错误的时区设置也可能是根源——给cookie设置有效期时用得是GMT时间。可能会出现cookie在写入时就立刻过期,从而无法被脚本接收的情况。)B(说明:session.gc_maxlifetime设置的是用户最后一次请求到session被回收之间的时间间隔。尽管数据文件并没有被真正删除,不过一旦session被回收,你将无法对此session进行访问。巧合的是,session.gc_maxlifetime的默认设置正好是1440秒,但这个数字是可以被系统管理员调整的。所以答案应该是B。)问答题:1.header函数和setcookie函数2.状态401代表未被授权,如果返回“找不到文件”的提示,则可用header("Location:www.xxx.php");3.答案创建教材11.4.2,11.3.2,11.4.1.4.Cookie的内容如下:Set-Cookie:PHPSESSID=btek48cklarn1m73eg2qkcsu12;path=PATH;domain=DOMAIN_NAME;禁用Cookie后,Session还可以使用,请参考11.4.6中实验3中的示例程序。5.设置Session的生存时间包括设置服务器端Session的生存时间和浏览器端的生存时间。方法1:php.ini配置文件中有一组如下Session的配置选项,实现Session的设置。其中session.gc_maxlifetime=1440:设置Session文件在服务器端的储存时间,如果超过这个时间,那么Session文件会自动删除。默认为1 440s(24min),表示1 440s无操作就会自动销毁该Session文件。session.cookie_lifetime=0:表示浏览器一旦关闭SessionID立即失效(推荐使用)。方法2:使用下面的程序设置$savePath="./session_save_dir/";$lifeTime=小时*秒;session_save_path($savePath);session_set_cookie_params($lifeTime);session_start();方法3:使用函数setcookie()或session_set_cookie_params($lifeTime)设置6.解决HTTP无状态本质,可以从以下几个方面入手。(1)利用form表单的隐藏域hidden,在表单数据提交时传递参数,这种方法需要和form表单一起使用。(2)利用超链接通过URL查询字符串传递参数。(3)使用header()函数重定向功能或JavaScript重定向功能,通过URL查询字符串传递参数。(4)使用Cookie将浏览器用户的个人资料存放在浏览器端主机中,其他PHP程序通过读取浏览器端主机中的Cookie信息实现页面间的参数传递。(5)使用Session将浏览器用户的个人资料存放于WEB服务器中,其他PHP程序通过读取服务器端主机中的Session信息实现页面间的参数传递。7.通过了解SESSION的工作原理,可以发现,在默认情况下,各个服务器会各自分别对同一个客户端产生SESSIONID,如对于同一个用户浏览器,A服务器产生的SESSIONID是30de1e9de3192ba6ce2992d27a1b6a0a,而B服务器生成的则是c72665af28a8b14c0fe11afe3b59b51b。另外,PHP的SESSION数据都是分别保存在本服务器的文件系统中。确定了问题所在之后,就可以着手进行解决了。想要共享SESSION数据,那就必须实现两个目标:一个是各个服务器对同一个客户端产生的SESSIONID必须相同,并且可通过同一个COOKIE进行传递,也就是说各个服务器必须可以读取同一个名为PHPSESSID的COOKIE;另一个是SESSION数据的存储方式/位置必须保证各个服务器都能够访问到。简单地说就是多服务器共享客户端的SESSIONID,同时还必须共享服务器端的SESSION数据。第一个目标的实现其实很简单,只需要对COOKIE的域(domain)进行特殊地设置(将域名设置为父子关系)即可,默认情况下,COOKIE的域是当前服务器的域名/IP地址,而域不同的话,各个服务器所设置的COOKIE是不能相互访问的。cookie可以跨越子域名。比如我们在xiaofeicn.com下面注册个个cookie,那么可以在bbs.xiaofeicn.com上读取到该cookie。第二个目标的实现方法是所有的WEB服务器的SESSION存放在一个文件服务器(或者数据库服务器)上。例如:采用一台Mysql服务器做共享服务器,把所有的session的数据保存到Mysql服务器上,所有Web服务器都来这台Mysql服务器来获取Session数据。第12章答案:选择题:C(说明:从PHP4.2.0开始,除非已经给定了一个伪随机整数列,否则不再需要用rand()函数初始化随机数生成器。此外,即使随机数生成器没有被事先播种,脚本仍然会生成49个伪随机字符。尽管$array变量是字符串,但可以用访问数组的方式进行访问——使用数字索引访问某个位置上的字符。最后,for循环将从1开始执行到50,也就是执行了49次。)BAB,D(说明:本题考验你对HTML编码的认识以及代码查错能力。变量$s在被函数htmlentities()处理过后,结果返回给了变量?$ss,而$s自己并没有被改变。因此答案是B和D。)B(说明:虽然你可以用implode函数把数组转化成字符串,然后存在数组里,但却无法保证日后一定能用serialize()把这个字符串还原成数组。浏览器对单个cookie有容量限制,因此在cookie里存储数组不是个好主意。但事情也并非永远是这样,你仍然可以存储一些比较小的数组。)BDADDDBB,D,E(注意D选项a为常量,当然该常量并没有定义,此时该常量的值为常量名)A,DCB,D(说明:pack函数能对二进制数据进行复杂的格式化,包括将字符串中的字符转化成十六进制表示。bin2hex函数也有同样的转化功能。注意,printf()能将整数转化成十六进制数,但无法转化字符串。)B填空题:nl2brstr_pad函数(说明:它可以把字符串填充到指定长度)mb_convert_encoding($str,'GBK','UTF-8')或者 iconv('UTF-8','GBK',$str)explode,implode对空格的转义不同strip_tages(注释:第二个空有歧义,该书第二版删除第二个空)substr($a,0,1)和$a{0}跟起始标志的一样,且结束标志前也要一个换行,后面加上分号。问答题:方法1参见教材第7章问答题方法2:$value){$arrStr[$key]=strtoupper(substr($value,0,1)).substr($value,1);}returnimplode('',$arrStr);}$s="open_door";echochangeStyle($s);?>方法3:=0;$i--){$new_string.=mb_substr($str,$i,1,'gbk');}return$new_string;}$str="你好,世界!";echoreverse($str);?>3.使用mb_substr()或mb_strcut()函数可以解决从中文字符串中取子串时可能产生的乱码问题。4.方法1:方法2:5.方法1.get_ext1($file_name),get_ext2($file_name)functionget_ext1($file_name){returnstrrchr($file_name,'.');}方法2.functionget_ext2($file_name){returnsubstr($file_name,strrpos($file_name,'.'));}方法3.functionget_ext3($file_name){returnarray_pop(explode('.',$file_name));}方法4.functionget_ext4($file_name){$p=pathinfo($file_name);return$p['extension'];}方法5.functionget_ext5($file_name){returnstrrev(substr(strrev($file_name),0,strpos(strrev($file_name),'.')));}第13章答案:1.#menuullia:link,#menuullia:visited{color:#FF0000;font-size:14pt}2.history.go(1)3.在FCKeditor中自定义表情图片的步骤是什么?答案参见教材13.2.3中的9,10,11在FCKeditor中自定义字体大小的方法是什么?答案参见教材13.2.3中的3在FORM表单中如何使用在线编辑器FCKeditor?答案参见教材13.2.44.答案参见教材13.4.45.答案参见教材13.4.56.JavaScript表单弹出对话框的函数是alert函数,获得输入焦点的函数是focus函数7.JavaScript的重定向函数是什么?答案参见教材11.1.2怎样引入一个外部JS文件?方法是:
本文档为【PHP编程基础与实例教程练习题参考答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载

你可能还喜欢

最新资料
资料动态
专题动态
is_633808
暂无简介~
格式:doc
大小:102KB
软件:Word
页数:0
分类:
上传时间:2021-04-19
浏览量:385