php面试宝典
3者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释履行程序代码的能力。但JSP代码被编译成 Servlet 并由 Java 虚拟机解释履行,这类编译操作仅在对 JSP 页面的第1次要求时产生。在 ASP 、PHP、JSP 环境下, HTML 代码主要负责描写信息的显示样式,而程序代码则用来描写处理逻辑。普通的 HTML 页面只依赖于 Web 服务器,而 ASP 、PHP、JSP 页面需要附加的语言引擎分析和履行程序代码。程序代码的履行结果被重新嵌入到HTML 代码中,然后1起发送给阅读器。 ASP 、PHP、 JSP3者都是面向 Web 服务器的技术,客户端阅读器不需要任何附加的软件支持。 22、谈谈对mvc的认识(1分) 答:由模型(model),视图(view),控制器(controller)完成的利用程序由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图; 23、写动身贴数最多的10个人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分) 答:SELECT * FROM `members` ORDER BY posts DESC limit 0,10; 24、 请说明php中传值与传援用的区分。甚么时候传值甚么时候传援用?(2分) 以题的情势 出 答:按值传递:函数范围内对值的任何改变在函数外部都会被疏忽 按援用传递:函数范围内对值的任何改变在函数外部也能反应出这些修改 优缺点:按值传递时,php必须复制值。特别是对大型的字符串和对象来讲,这将会是1个代价很大的操作。 按援用传递则不需要复制值,对性能提高很有好处。 25、 在PHP中error_reporting这个函数有甚么作用? (1分) 答:设置毛病级别与毛病信息回报 26、请写1个函数验证电子邮件的格式是不是正确 (2分) 答:function checkEmail($email) { $pregEmail = "/([a-z0⑼]*[-_.]?[a-z0⑼]+)*@([a-z0⑼]*[-_]?[a-z0⑼]+)+[.][a-z]{2,3}([.][a-z]{2})?/i"; return preg_match($pregEmail,$email); } 27、 简述如何得到当前履行脚本路径,包括所得到参数。(2分) 答:$script_name = basename(__file__); print_r($script_name); 28、JS表单弹出对话框函数是?取得输入焦点函数是? (2分) 答:弹出对话框: alert(),prompt(),confirm() 取得输入焦点 focus() 29、JS的转向函数是?怎样引入1个外部JS文件?(2分) 答:window.location.href,<script type="text/javascript" src="js/js_function.js"></script> 30、foo()和@foo()之间有甚么区分?(1分) 答:@foo()控制毛病输出 31、如何声明1个名为”myclass”的没有方法和属性的类? (1分) 答:class myclass{ } 32、如何实例化1个名为”myclass”的对象?(1分) 答:new myclass() 33、你如何访问和设置1个类的属性? (2分) 答:$object = new myclass(); $newstr = $object->test; $object->test = "info"; sxhj_lzd@163 34、mysql_fetch_row() 和mysql_fetch_array之间有甚么区分? (1分) 答:mysql_fetch_row是从结果集取出1行数组,作为枚举 mysql_fetch_array是从结果集取出1行数组作为关联数组,或数字数组,二者兼得 35、GD库是做甚么用的? (1分) 答:gd库提供了1系列用来处理图片的API,使用GD库可以处理图片,或生成图片。 在网站上GD库通经常使用来生成缩略图或用来对图片加水印或对网站数据生成报表。 36、指出1些在PHP输入1段HTML代码的办法。(1分) 答:echo "<a href='index.php'>aaa</a>"; 37、下面哪一个函数可以打开1个文件,以对文件进行读和写操作?(1分) (a) fget() (b) file_open() (c) fopen() (d) open_file() [ c ] 38、下面哪一个选项未将 john 添加到users 数组中? (1分) (a) $users[] = ‘john’; (b) array_add($users,’john’); (c) array_push($users,‘john’); (d) $users ||= ‘john’; [ a,c ] 39、下面的程序会输入是不是?(1分) $num = 10; function multiply(){ $num = $num * 10; } multiply(); echo $num; ?> 输出:10 40、使用php写1段简单查询,查出所有姓名为“张3”的内容并打印出来 (2分) 表名User Name Tel Content Date 张3 13333663366 大专毕业 2006⑴0⑴1 张3 13612312331 本科毕业 2006⑴0⑴5 张4 021⑸5665566 中专毕业 2006⑴0⑴5 请根据上面的题目完成代码: $mysql_db=mysql_connect("local","root","pass"); @mysql_select_db("DB",$mysql_db); $result = mysql_query("SELECT * FROM `user` WHERE name='张3'"); while($rs = mysql_fetch_array($result)){ echo $rs["tel"].$rs["content"].$rs["date"]; } 41、如何使用下面的类,并解释下面甚么意思?(3) class test{ function Get_test($num){ $num=md5(md5($num)."En"); return $num; } } 答:$testnum = "123"; $object = new test(); $encrypt = $object->Get_test($testnum); echo $encrypt; 类test里面包括Get_test方法,实例化类调用方法多字符串加密 42、写出 SQL语句的格式 : 插入,更新,删除 (4分) 表名User Name Tel Content Date 张3 13333663366 大专毕业 2006⑴0⑴1 张3 13612312331 本科毕业 2006⑴0⑴5 张4 021⑸5665566 中专毕业 2006⑴0⑴5 (a) 有1新记录(小王 13254748547 高中毕业 2007-05-06)请用SQL语句新增至表中 mysql_query("INSERT INTO `user` (name,tel,content,date) VALUES ('小王','13254748547','高中毕业','2007-05-06')") (b) 请用sql语句把张3的时间更新成为当前系统时间 $nowDate = date("Ymd"); mysql_query("UPDATE `user` SET date='".$nowDate."' WHERE name='张山'"); (c) 请写出删除名为张4的全部记录 mysql_query("DELETE FROM `user` WHERE name='张4'"); 43、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有甚么区分(2分) 答:int是数字类型,char固定长度字符串,varchar实际长度字符串,datetime日期时间型,text文本字符串 char的场地固定为创建表设置的长度,varchar为可变长度的字符 44、写出以下程序的输出结果 (1分) $b=201; $c=40; $a=$b>$c?4:5; echo $a; ?> 答:4 45、检测1个变量是不是有设置的函数是不是?是不是为空的函数是?(2分) 答:isset($str),empty($str); 46、获得查询结果集总数的函数是?(1分) 答:mysql_num_rows($result); 47、$arr = array('james','tom','symfony'); 请打印出第1个元素的值 (1分) 答:echo $array[0]; 48、请将41题的数组的值用','号分隔并合并成字串输出(1分) 答:for($i=0;$i<count($array);$i++){ echo $array[$i].",";} 49、$a = 'abcdef'; 请取出$a的值并打印出第1个字母(1分) 答:echo $a{0} 或 echo substr($a,1) 50、PHP可以和sql server/oracle等数据库连接吗?(1分) 答:固然可以 51、请写出PHP5权限控制修饰符(3分) 答:public(公共),private(私用),protected(继承) 52、请写出php5的构造函数和析构函数(2分) 答:__construct,__destruct 53、完成以下: 54、 (1)创建新闻发布系统,表名为message有以下字段 (3分) id 文章id title 文章标题 content 文章内容 category_id 文章分类id hits 点击量 答:CREATE TABLE 'message'( 'id' int(10) NOT NULL auto_increment, 'title' varchar(200) default NULL, 'content' text, 'category_id' int(10) NOT NULL, 'hits' int(20), PRIMARY KEY('id'); )ENGINE=InnoDB DEFAULT CHARSET=utf8; (2)一样上述新闻发布系统:表comment记录用户回复内容,字段以下 (4分) comment_id 回复id id 文章id,关联message表中的id comment_content 回复内容 现通过查询数据库需要得到以下格式的文章标题列表,并依照回复数量排序,回复最高的排在最前面 文章id 文章标题点击量回复数量 用1个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0 答:SELECT message.id id,message.title title,IF(message.`hits` IS NULL,message.`hits`) hits, IF(comment.`id` is NULL,count(*)) number FROM message LEFT JOIN comment ON message.id=comment.id GROUP BY message.`id`; (3)上述内容管理系统,表category保存分类信息,字段以下 (3分) category_id int(4) not null auto_increment; categroy_name varchar(40) not null; 用户输入文章时,通过选择下拉菜单选定文章分类 写出如何实现这个下拉菜单 答:function categoryList() { $result=mysql_query("select category_id,categroy_name from category") or die("Invalid query: " . mysql_error()); print("<select name='category' value=''>n"); while($rowArray=mysql_fetch_array($result)) { print("<option value='".$rowArray['category_id']."'>".$rowArray['categroy_name']."</option>n"); } print("</select>"); }
54、 写1个函数,尽量高效的,从1个标准 url 里取出文件的扩大名 例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php 答案1: function getExt($url){ $arr = parse_url($url);
$file = basename($arr['path']); $ext = explode(".",$file); return $ext[1]; } 答案2: function getExt($url) { $url = basename($url); $pos1 = strpos($url,"."); $pos2 = strpos($url,"?"); if(strstr($url,"?")){ return substr($url,$pos1 + 1,$pos2 - $pos1 - 1); } else { return substr($url,$pos1); } }
55、 在 HTML 语言中,页面头部的 meta 标记可以用来输出文件的编码格式,以下是1个标准的 meta 语句 请使用 PHP 语言写1个函数,把1个标准 HTML 页面中的类似 meta 标记中的 charset 部份值改成 big5 请注意: 1. 需要处理完全的 html 页面,即不光此 meta 语句 2. 疏忽大小写 3. ' 和 " 在此处是可以互换的 4. 'Content-Type' 两侧的引号是可以疏忽的,但 'text/html; charset=gbk' 两侧的不行 5. 注意处理过剩空格 56、写1个函数,算出两个文件的相对路径 如 $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php'; 计算出 $b 相对 $a 的相对路径应当是 ../../c/d将()添上 答:function getRelativePath($a,$b) { $returnPath = array(dirname($b)); $arrA = explode('/',$a); $arrB = explode('/',$returnPath[0]); for ($n = 1,$len = count($arrB); $n < $len; $n++) { if ($arrA[$n] != $arrB[$n]) { break; } } if ($len - $n > 0) { $returnPath = array_merge($returnPath,array_fill(1,$len - $n,'..')); }
$returnPath = array_merge($returnPath,array_slice($arrA,$n)); return implode('/',$returnPath); } echo getRelativePath($a,$b);
57、如何实现PHP、JSP交互? 题目有点含糊不清,SOAP,XML_RPC,Socket function,CURL都可以实现这些,如果是考PHP和Java的整合,PHP内置了这类机制(如果考PHP和.NET的整合,也能够这么回答),例如$foo = new Java('java.lang.System'); 58、使用哪些工具进行版本控制? (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |