最全最详细的PHP面试题(带有答案)
1
Php基础知识及答案
1.表单中get与post提交方法的区别?
答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.
2.session与cookie的区别?
答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放
cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。
两者都可通过时间来设置时间长短
3.数据库中的事务是什么?
答:事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,
事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。
简述题:
1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)****************
答:echo date('Y-m-d H:i:s', strtotime('-1 days'));
2、echo(),print(),print_r()的区别(3分)
答:echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) print()只能打印出简单类型变量的值(如int,string)
print_r()可以打印出复杂类型变量的值(如数组,对象)
echo 输出一个或者多个字符串
3、能够使HTML和PHP分离开使用的模板(1分)
答:Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate
5、使用哪些工具进行版本控制?(1分)
答:cvs,svn,vss;
6、如何实现字符串翻转?(3分)
答:echo strrev($a);
7、优化MYSQL数据库的方法。(4分,多写多得)
答:
1、选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL,例如'省份,性别',最好设置为ENUM
2、使用连接(JOIN)来代替子查询:
3、使用联合(UNION)来代替手动创建的临时表
4、事务处理:
5、锁定表,优化事务处理:
6、使用外键,优化锁定表
7、建立索引:
8、优化查询语句
8、PHP的意思(送1分)
答:PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页
9、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)
答:now(),date()
10、实现中文字串截取无乱码的方法。(3分)****************
Mb_substr
答:function GBsubstr($string, $start, $length) {
if(strlen($string)>$length){
$str=null;
$len=$start+$length;
for($i=$start;$i<$len;$i++){
if(ord(substr($string,$i,1))>0xa0){
$str.=substr($string,$i,2);
$i++;
}else{
$str.=substr($string,$i,1);
}
}
return $str.'...';
}else{
return $string;
}
}
11、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1分)
12、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分)
答:用过,smarty
13、请简单阐述您最得意的开发之作(4分)
答:信息分类
14、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)
答:确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表, 程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量
15、用PHP写出显示客户端IP与服务器IP的代码1分)
答:打印客户端IP:echo $_SERVER[‘REMOTE_ADDR’]; 或者: getenv('REMOTE_ADDR');
打印服务器IP:echo gethostbyname("https://www.360docs.net/doc/ef12069094.html,")
16、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分) 答:require->require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require
include->include有返回值,而require没有(可能因为如此require的速度比include快)
注意:包含文件不存在或者语法错误的时候require是致命的,include不是
17、如何修改SESSION的生存时间(1分).
答:方法1:将php.ini中的session.gc_maxlifetime设置为9999重启apache
方法2:$savePath = "./session_save_dir/";
$lifeTime = 小时* 秒;
session_save_path($savePath);
session_set_cookie_params($lifeTime);
session_start();
方法3:setcookie() and session_set_cookie_params($lifeTime);
18、有一个网页地址, 比如PHP开发资源网主页: https://www.360docs.net/doc/ef12069094.html,/index.html,如何得到它的内容?($1分)
答:方法1(对于PHP5及更高版本):
$readcontents = fopen("https://www.360docs.net/doc/ef12069094.html,/index.html", "rb");
$contents = stream_get_contents($readcontents);
fclose($readcontents);
echo $contents;
方法2:
echo file_get_contents("https://www.360docs.net/doc/ef12069094.html,/index.html");
19、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用header 函数,其语句为(?);(2分)
答:状态401代表未被授权,header("Location:www.xxx.php");
12、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分)
答:heredoc的语法是用"<<<"加上自己定义成对的标签,在标签范围內的文字视为一个字符串例子:
$str = << my name is Jiang Qihui! SHOW; 13、谈谈asp,php,jsp的优缺点(1分) 答:ASP全名Active Server Pages,是一个WEB服务器端的开发环境,利用它可以产生和运 行动态的、交互的、高性能的WEB服务应用程序。ASP采用脚本语言VB Script(Java script )作为自己的开发语言。 PHP是一种跨平台的服务器端的嵌入式脚本语言. 它大量地借用C,Java和Perl语言的语法 , 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态生成页面.它支持目前绝大多数数据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(http://www.php.ne t)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。 JSP 是Sun公司推出的新一代站点开发语言,他完全解决了目前ASP,PHP的一个通病--脚本级执行(据说PHP4 也已经在Zend 的支持下,实现编译运行).Sun 公司借助自己在Jav a 上的不凡造诣,将Java 从Java 应用程序和Java Applet 之外,又有新的硕果,就是Js p--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能强大的站点 程序。 三者都提供在HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP代码被编译成Servlet 并由Java 虚拟机解释执行,这种编译操作仅在对JSP 页面的 第一次请求时发生。在ASP 、PHP、JSP 环境下,HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML 页面只依赖于Web 服务器,而ASP 、PH P、JSP 页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML 代码中,然后一起发送给浏览器。ASP 、PHP、JSP三者都是面向Web 服务器的技术 ,客户端浏览器不需要任何附加的软件支持。 14、谈谈对mvc的认识(1分) 答:由模型(model),视图(view),控制器(controller)完成的应用程序 由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图; 15、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分) 答:SELECT * FROM `members` ORDER BY posts DESC limit 0,10; 16. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分) 答:按值传递:函数范围内对值的任何改变在函数外部都会被忽略 按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改 优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。 按引用传递则不需要复制值,对于性能提高很有好处。 17. 在PHP中error_reporting这个函数有什么作用? (1分) 答:设置错误级别与错误信息回报 18. 请写一个函数验证电子邮件的格式是否正确(2分) 答:function checkEmail($email) { $pregEmail = "/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i"; return preg_match($pregEmail,$email); } 19. 简述如何得到当前执行脚本路径,包括所得到参数。(2分) 答:$script_name = basename(__file__); print_r($script_name); 21、JS表单弹出对话框函数是?获得输入焦点函数是? (2分) 答:弹出对话框: alert(),prompt(),confirm() 获得输入焦点focus() 22、JS的转向函数是?怎么引入一个外部JS文件?(2分) 答:window.location.href, 23、foo()和@foo()之间有什么区别?(1分) 答:@foo()控制错误输出 24、如何声明一个名为”myclass”的没有方法和属性的类? (1分) 答:class myclass{ } 25、如何实例化一个名为”myclass”的对象?(1分) 答:new myclass() 26、你如何访问和设置一个类的属性? (2分) 答:$object = new myclass(); $newstr = $object->test; $object->test = "info"; 27、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分) 答:mysql_fetch_row是从结果集取出1行数组,作为枚举 mysql_fetch_array是从结果集取出一行数组作为关联数组,或数字数组,两者兼得 28、GD库是做什么用的? (1分) 答:gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。 29、指出一些在PHP输入一段HTML代码的办法。(1分) 答:echo "aaa"; 30、下面哪个函数可以打开一个文件,以对文件进行读和写操作?(1分) (a) fget() (b) file_open() (c) fopen() (d) open_file() [ c ] 31、下面哪个选项没有将john 添加到users 数组中? (1分) (a) $users[] = ‘john’; (b) array_add($users,’john’); (c) array_push($users,‘john’); (d) $users ||= ‘john’; [ a , c ] 32、下面的程序会输入是否?(1分) $num = 10; function multiply(){ $num = $num * 10; } multiply(); echo $num; ?> 输出:10 33、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来(2分) 表名User Name Tel Content Date 张三133******** 大专毕业2006-10-11 张三136******** 本科毕业2006-10-15 张四021-******** 中专毕业2006-10-15 请根据上面的题目完成代码: $mysql_db=mysql_connect("local","root","pass"); @mysql_select_db("DB",$mysql_db); $result = mysql_query("SELECT * FROM `user` WHERE name='张三'"); while($rs = mysql_fetch_array($result)){ echo $rs["tel"].$rs["content"].$rs["date"]; } 34、如何使用下面的类,并解释下面什么意思?(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方法,实例化类调用方法多字符串加密 35、写出SQL语句的格式: 插入,更新,删除(4分) 表名User Name Tel Content Date 张三133******** 大专毕业2006-10-11 张三136******** 本科毕业2006-10-15 张四021-******** 中专毕业2006-10-15 (a) 有一新记录(小王132******** 高中毕业2007-05-06)请用SQL语句新增至表中 mysql_query("INSERT INTO `user` (name,tel,content,date) V ALUES ('小王','132********','高中毕业','2007-05-06')") (b) 请用sql语句把张三的时间更新成为当前系统时间 $nowDate = date("Ymd"); mysql_query("UPDATE `user` SET date='".$nowDate."' WHERE name='张山'"); (c) 请写出删除名为张四的全部记录 mysql_query("DELETE FROM `user` WHERE name='张四'"); 36、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别(2分) 答:int是数字类型,char固定长度字符串,varchar实际长度字符串,datetime日期时间型,text文本字符串 char的场地固定为创建表设置的长度,varchar为可变长度的字符 38、写出以下程序的输出结果(1分) $b=201; $c=40; $a=$b>$c?4:5; echo $a; ?> 答:4 39、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分) 答:isset($str),empty($str); 40、取得查询结果集总数的函数是?(1分) 答:mysql_num_rows($result); 41、$arr = array('james', 'tom', 'symfony'); 请打印出第一个元素的值(1分) 答:echo $array[0]; 42、请将41题的数组的值用','号分隔并合并成字串输出(1分) 答:for($i=0;$i 43、$a = 'abcdef'; 请取出$a的值并打印出第一个字母(1分) 答:echo $a{0} 或echo substr($a,0,1) 44、PHP可以和sql server/oracle等数据库连接吗?(1分) 答:当然可以 45、请写出PHP5权限控制修饰符(3分) 答:public(公共),private(私用),protected(继承) 46、请写出php5的构造函数和析构函数(2分) 答:__construct , __destruct 47、完成以下: (一)创建新闻发布系统,表名为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; (二)同样上述新闻发布系统:表comment记录用户回复内容,字段如下(4分) comment_id 回复id id 文章id,关联message表中的id comment_content 回复内容 现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面 文章id 文章标题点击量回复数量 用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0 答:SELECT message.id id,message.title title,IF(message.`hits` IS NULL,0,message.`hits`) hits, IF(comment.`id` is NULL,0,count(*)) number FROM message LEFT JOIN comment ON message.id=comment.id GROUP BY message.`id`; (三)上述内容管理系统,表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(" while($rowArray=mysql_fetch_array($result)) { print("\n"); } print(""); } 编程题: 1. 写一个函数,尽可能高效的,从一个标准url 里取出文件的扩展名 例如: https://www.360docs.net/doc/ef12069094.html,/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); } } 2. 在HTML 语言中,页面头部的meta 标记可以用来输出文件的编码格式,以下是一个标准的meta 语句 请使用PHP 语言写一个函数,把一个标准HTML 页面中的类似meta 标记中的charset 部分值改为big5 请注意: 1. 需要处理完整的html 页面,即不光此meta 语句 2. 忽略大小写 3. ' 和" 在此处是可以互换的 4. 'Content-Type' 两侧的引号是可以忽略的,但'text/html; charset=gbk' 两侧的不行 5. 注意处理多余空格 3. 写一个函数,算出两个文件的相对路径 如$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); 填空题: 1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量__$_SERVER['PHP_SELF']__中;而链接到当前页面的URL记录在预定义变量__$_SERVER['HTTP_REFERER']__ 中 2.执行程序段将输出__0__。 3.在HTTP 1.0中,状态码401 的含义是____;如果返回“找不到文件”的提示,则可用header 函数,其语句为____。 4.数组函数arsort 的作用是__对数组进行逆向排序并保持索引关系__;语句error_reporting(2047)的作用是__报告所有错误和警告__。 5.PEAR中的数据库连接字符串格式是____。 6.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把scrīpt标记及其内容都去掉):preg_replace("//si", "newinfo", $script); 7.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。 LoadModule php5_module "c:/php/php5apache2.dll" , AddType application/x-httpd-php .php, 8.语句include 和require 都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句__require_once||include_once__来代替它们。 9.类的属性可以序列化后保存到session 中,从而以后可以恢复整个类,这要用到的函数是____。 10.一个函数的参数不能是对变量的引用,除非在php.ini中把__allow_call_time_pass_reference boolean__设为on. 11.SQL中LEFT JOIN的含义是__自然左外链接__。如果tbl_user记录了学生的姓名(name)和学号(ID),tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID) 和考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句____。 12.在PHP中,heredoc是一种特殊的字符串,它的结束标志必须____。 编程题: 13.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。 答: 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; } } 14.简述论坛中无限分类的实现原理。 答: /* 数据表结构如下: CREATE TABLE `category` ( `categoryID` smallint(5) unsigned NOT NULL auto_increment, `categoryParentID` smallint(5) unsigned NOT NULL default '0', `categoryName` varchar(50) NOT NULL default '', PRIMARY KEY (`categoryID`) ) ENGINE=MyISAM DEFAULT CHARSET=gbk; INSERT INTO `category` ( `categoryParentID`, `categoryName`) V ALUES (0, '一级类别'), (1, '二级类别'), (1, '二级类别'), (1, '二级类别'), (2, '三级类别'), (2, '333332'), (2, '234234'), (3, 'aqqqqqd'), (4, '哈哈'), (5, '66333666'); */ //指定分类id变量$category_id,然后返回该分类的所有子类 //$default_category为默认的选中的分类 function Get_Category($category_id = 0,$level = 0, $default_category = 0) { global $DB; $sql = "SELECT * FROM category ORDER BY categoryID DESC"; $result = $DB->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 "\n"; } Get_Category($key, $level + 1, $default_category); } unset($category_array[$category_id]); } /* 函数返回的数组格式如下所示: Array ( [1] => Array ( [id] => 1 [name] => 一级类别[level] => 0 [ParentID] => 0 ) [4] => Array ( [id] => 4 [name] => 二级类别[level] => 1 [ParentID] => 1 ) [9] => Array ( [id] => 9 [name] => 哈哈[level] => 2 [ParentID] => 4 ) [3] => Array ( [id] => 3 [name] => 二级类别[level] => 1 [ParentID] => 1 ) [8] => Array ( [id] => 8 [name] => aqqqqqd [level] => 2 [ParentID] => 3 ) [2] => Array ( [id] => 2 [name] => 二级类别[level] => 1 [ParentID] => 1 ) [7] => Array ( [id] => 7 [name] => 234234 [level] => 2 [ParentID] => 2 ) [6] => Array ( [id] => 6 [name] => 333332 [level] => 2 [ParentID] => 2 ) [5] => Array ( [id] => 5 [name] => 三级类别[level] => 2 [ParentID] => 2 ) [10] => Array ( [id] => 10 [name] => 66333666 [level] => 3 [ParentID] => 5 ) ) */ //指定分类id,然后返回数组 function Category_array($category_id = 0,$level=0) { global $DB; $sql = "SELECT * FROM category ORDER BY categoryID DESC"; $result = $DB->query($sql); while ($rows = $DB->fetch_array($result)) { $category_array[$rows['categoryParentID']][$rows['categoryID']] = $rows; } foreach ($category_array AS $key=>$val) { if ($key == $category_id) { foreach ($val AS $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; } ?> class cate { function Get_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 = " }else{ $txt = " } if ($level > 0) { $txt1 = ">" . str_repeat( "-", $level ) . " " . $cate['name'] . " }else{ $txt1 = ">" . $cate['name'] . " } $val = $txt.$txt1; echo $val; self::Get_Category($key, $level + 1, $default_category); } } function getFlush($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 " $c = new cate(); //$c->Get_Category(); $ttt= $c->getFlush($id,'0','3'); echo $ttt; echo ""; ?> 1、求$a,$b,$c三个数中的最大值和最小值(5分) echo max($a,$b,$c); echo min($a,$b,$c); 2、echo()、print()、print_r()的区别(5分) print() 只能打印出简单类型变量的值(如int,string) print_r()可以打印出复杂类型变量的值(如数组,对象) echo 输出一个或者多个字符串 3、防止SQL注入漏洞可以用哪些函数?(5分) addslashes() mysql_escape_string() 正确回答1个即可 4、用PHP写出显示客户端IP与服务器IP的代码(5分) echo $_SERVER[…REMOTE_ADDR?]; echo $_SERVER[…SERVER_ADDR?]; 5、用PHP打印出前一天的时间,格式例如2006-5-10 22:21:21(10分)strftime(“%Y-%m-%d %T”, strtotime(“-1 day”)); date(“Y-m-d H:i:s”, strtotime(“-1 day”)); 正确回答1个即可 6、写一个函数,能够遍历一个文件夹下的所有文件和子文件夹(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); } } 7、创建文件exer1,设置访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,写出操作过程的命令(10分) touch exer1 chmod 644 exer1 增加权限 chmod a+x exer1 chmod g+w exer1 或者 chmod 775 exer1 8、字符串“to upper case”分别用php,shell ,js实现将字符串中的字符全部转换成大写并输出。(5分) Php实现:echo strtoupper(…to upper case?) Shell实现:echo "to upper case" | tr 'a-z' 'A-Z' Js实现: var stmp1 = "to upper case "; alert(stmp1.toLocaleUpperCase());//转换成大写 alert(stmp1.toUpperCase())//转换成大写 9、用root登陆mysql数据库,如果mydb不存在,则在mysql中创建数据库mydb, 给root用户分配所有权限从192.168.1.1 ip来访问mysdb数据库。(root用户密码为空)(10分) CREATE DATABASE IF NOT EXISTS mydb; grant all on mydb.* to root@? 192.168.1.1? identified by '' ; 10 回复最高的排在最前面 “文章id 文章标题点击量回复数量” 请写出sql: SELECT M.`id`, M.`title`, M.`hits`, COUNT(C.`comment_id`) AS CNT FROM `message` AS M LEFT JOIN `comment` AS C ON M.`id` = C.`id` GROUP BY M.`id` ORDER BY CNT DESC; 12、列举一下你知道的开源搜索引擎开发包。(5分) 简单描述网页搜索引擎的工作原理(可以简单画出流程图,并加以流程说明) 更多互联网产品文档请访问 阅微网开放式PM产品社区https://www.360docs.net/doc/ef12069094.html, 阅微网新浪微博https://www.360docs.net/doc/ef12069094.html,/yuewe 阅微网超级500人QQ群 ①阅微综合:【22383617】(已满) ②Axure学习交流群:【118736937】 ③阅微项目交流群:【83584654】 ④移动互联网:【32393417】 ⑤移动互联网:【3973643】 1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的的前一页面URL记录在预定义变量(2)中 //本页地址,SCRIPT_NAME也可以:php/test.php echo$_SERVER['PHP_SELF']." //链接到当前页面的前一页面的URL 地址: echo$_SERVER['HTTP_REFERER']." //其它的见参考手册:语言参考》变量》预定义变量 //前执行脚本的绝对路径名:D:Inetpubwwwrootphp est.php echo$_SERVER["SCRIPT_FILENAME"]." //正在浏览当前页面用户的IP 地址:127.0.0.1 echo$_SERVER["REMOTE_ADDR"]." //查询(query)的字符串(URL 中第一个问号? 之后的内容):id=1&bi=2 echo$_SERVER["QUERY_STRING"]." //当前运行脚本所在的文档根目录:d:inetpubwwwroot echo$_SERVER["DOCUMENT_ROOT"]." ?> 2.执行程序段将输出__。 //参考手册》语言参考》运算符》算术运算符》%为取模运算,输出0 echo 8%(-2)." //取模$a % $b 在$a 为负值时的结果也是负值。输出-2 echo ((-8)%3)." //输出2 echo (8%(-3))." ?> 3.在HTTP 1.0中,状态码401 的含义是____;如果返回“找不到文件”的提示,则可用header 函数,其语句为____。 答:401表示未授权;header("HTTP/1.0 404 Not Found");[见参考手册》函数参考》HTTP函数》header] 4.数组函数arsort 的作用是____;语句error_reporting(2047)的作用是____。 答:arsort:对数组进行逆向排序并保持索引关系error_reporting(2047)的作用是:report All errors and warnings 5.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉): $script="以下内容不显示:"; echo preg_replace("//si", "替换内容", $script); ?> 6.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。 答:LoadModule php5_module "c:/php/php5apache2.dll";AddType application/x-httpd-php .php 见参考手册》目录》II. 安装与配置》6. Windows 系统下的安装》Microsoft Windows 下的Apache 2.0.x 7.语句include 和require 都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句____来代替它们。 答:在如何处理失败时,include()产生一个警告而require()则导致一个致命错误;require_once()/include_once() 8.一个函数的参数不能是对变量的引用,除非在php.ini中把____设为on. 答:allow_call_time_pass_reference boolean:是否启用在函数调用时强制参数被按照引用传递, 见参考手册》附录G 9.SQL 中LEFT JOIN的含义是__,如果tbl_user记录了学生的姓名(name)和学号(ID), tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句____. 答:自然左外连接 create database phpinterview; use phpinterview create table tbl_user ( ID int not null, name varchar(50) not null, primary key (ID) ); create table tbl_score ( ID int not null, score dec(6,2) not null, subject varchar(20) not null ); insert into tbl_user (ID, name) values (1, 'beimu'); insert into tbl_user (ID, name) values (2, 'aihui'); insert into tbl_score (ID, score, subject) values (1, 90, '语文'); insert into tbl_score (ID, score, subject) values (1, 80, '数学'); insert into tbl_score (ID, score, subject) values (2, 86, '数学'); insert into tbl_score (ID, score, subject) values (2, 96, '语文'); select A.id,sum(B.score) as sumscore from tbl_user A left join tbl_score B on A.ID=B.ID group by A.id 10. 在PHP中,heredoc是一种特殊的字符串,它的结束标志必须____ 答:结束标识符所在的行不能包含任何其它字符除";" 11.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。 function my_scandir($dir) { $files=array(); if(is_dir($dir)) { if($handle=opendir($dir)) { while(($file=readdir($handle))!==false) { if($file!="." && $file!="..") { if(is_dir($dir."/".$file)) { $files[$file]=my_scandir($dir."/".$file); } else { $files[]=$dir."/".$file; } } } closedir($handle); return$files; } } } print_r(my_scandir("D:Program FilesInternet ExplorerMUI")); ?> 1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的URL记录在预定义变量(2)中。 答:echo $_SERVER['PHP_SELF']; echo $_SERVER["HTTP_REFERER"]; 2.执行程序段将输出(3)。 答:0 3.在HTTP 1.0中,状态码401 的含义是(4);如果返回“找不到文件”的提示,则可用header 函数,其语句为(5)。 答:(4)未授权(5) header("HTTP/1.0 404 Not Found"); 4.数组函数arsort 的作用是(6);语句error_reporting(2047)的作用是(7)。 答:(6)对数组进行逆向排序并保持索引关系(7)All errors and warnings 5.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把标记及其内容都去掉):(9)。 答:/<[^>].*?>.*?<\/>/si 6.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句(10)动态装载PHP模块,然后再用语句(11)使得Apache把所有扩展名为php的文件都作为PHP脚本处理。 答:(10) LoadModule php5_module "D:/xampp/apache/bin/php5apache2.dll" (11) AddType application/x-httpd-php-source .phps AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml 7.语句include 和require 都能把另外一个文件包含到当前文件中,它们的区别是(12);为了避免多次包含同一文件,可以用语句(13)来代替它们。 答:(12) 发生异常时include产生警告require产生致命错误(13) require_once()/include_once() 8.类的属性可以序列化后保存到session 中,从而以后可以恢复整个类,这要用到的函数是(14)。答:serialize() /unserialize() 9.一个函数的参数不能是对变量的引用,除非在php.ini中把(15)设为on. 答:allow_call_time_pass_reference 10.SQL 中LEFT JOIN的含义是(16)。 如果tbl_user记录了学生的姓名(name)和学号(ID), tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject), 要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句(17)。 答:(16) 自然左外连接 (17) select name , count(score) as sum_score from tbl_user left join tbl_score on tbl_user.ID=tbl_score.ID group by tbl_user.ID 11..在PHP中,heredoc是一种特殊的字符串,它的结束标志必须(18)。 答:结束标识符所在的行不能包含任何其它字符除";" 12.用PHP打印出前一天的时间格式是2006-5-10 22:21:21 答:echo date('Y-m-d H:i:s', strtotime('-1 day')); 13.echo(),print(),print_r()的区别 1、用PHP打印出前一天时间格式是-5-10 22:21:21(2分) $a = date("Y-m-d H:i:s",strtotime("-1 day")); print_r($a); 2、echo(),print(),print_r()区别(3分) echo 和print不是一种函数,是一种语言构造 int print(string $arg),只有一种参数 echo arg1,arg2;可以输出各种参数,返回void echo和print只能打印出string,不能打印出构造 print_r能打印出构造 例如 $arr = array("key"=>"value"); print_r($arr); 3、可以使HTML和PHP分离开使用模板(1分) smarty,phplib 4、使用哪些工具进行版本控制?(1分) svn,git,cvs 5、如何实现字符串翻转?(3分) 英文: strrev($a) 中文或其她文字: 中文:GB2312,代码是使用GB2312编码 PHP面试题附答案 问题:PHP面试题附答案回答: 1.Which of the following will not add john to the users array 1.$users[] = ‘ john '; 2.array_add($users, ' john '); 3.array_push($users, ' john '); 4.$users ||= ‘john '; An swer: 2,4 2.What ' s the differenee between sort(), asort() and ksort(),rsort() Un der what eireumsta nces would you use each of these sort():本函数对数组的值进行排序。当本函数结束时数组单元将被从最低到最高重新安排,array中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。 asort():这个函数将数组的值重新排序,由小至大排列。数组的索引亦跟着值的顺序而变动。当您在程序中需要重新整理数组值的顺序时,就可以使用这个函数。 ksort():对数组按照键名排序,保留键名到数据的关联。本函数 主要用于关联数组。 rsort():本函数对数组进行逆向排序(最高到最低) 执行相反的操作。 3. What would the following code print to the Why $n um 二 10; fun cti on multiply(){ $n um 二 $num * 10; } multiply 。; echo $num; 10 4. What is the differenee between a reference regular variable How do you pass by refere nee why would you want to pass by refere nee like this fun cti ons( $vars); it likes more fast; 5. What fun cti ons can you use to add library code to the curre ntly running script ini cude() or require(); 6. What is the differe nee betwee n foo() @foo() if foo() throw a error, will be alert, but @foo() no; 7. How do you debug a PHP applicati on xdebug or use die() do it; 8. What does === do What ' s an example of something 与 sort() browser and a 比较基础的php面试题及答案 填空题:1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量__$_SERVER[PHP_SELF]__中;而链接到当前页面的URL记录在预定义变量__$_SERVER[HTTP_REFERER]__中2.执行程序段将输出__0__。3.在HTTP 1.0中,状态码401 的含义是____;如果返回“找不到文件”的提示,则可用header 函数,其语句为____。4.数组函数arsort 的作用是__对数组进行逆向排序并保持索引关系__;语句error_reporting(2047)的作用是__报告所有错误和警告__。5.PEAR中的数据库连接字符串格式是____。6.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把scrīpt标记及其内容都去掉):preg_replace(“//si”, “newinfo”, $script);7.以Apache 模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php 的文件都作为PHP脚本处理。LoadModule php5_module “c:/php/php5apache2.dll”, AddType application/x-httpd-php .php,8.语句include 和require 都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句__require_once||include_once__来代替它们。9.类的属性可以序列化后保存到session 中,从而以后可以恢复整个类,这要用到的函数是____。10.一个函数的参数不能是对 P h p面试宝典100题汇总-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII Php面试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)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事 1.以下哪一句不会把John 新增到users 阵列? $users[] = 'john'; 成功把John 新增到阵列users。 array_add($users,’john’); 函式array_add() 无定义。 array_push($users,‘john’); 成功把John 新增到阵列users。 $users ||= 'john'; 语法错误。 2.sort()、assort()、和ksort() 有什么分别?它们分别在什么情况下使用? sort() 根据阵列中元素的值,以英文字母顺序排序,索引键会由0 到n-1 重新编号。主要是当阵列索引键的值无关疼痒时用来把阵列排序。 assort() PHP 没有assort() 函式,所以可能是asort() 的笔误。 asort() 与sort() 一样把阵列的元素按英文字母顺序来排列,不同的是所有索引键都获得保留,特别适合替联想阵列排序。 ksort() 根据阵列中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的联想阵列。 3.以下的代码会产生什么?为什么? $num =10; function multiply(){ $num =$num *10; } multiply(); echo$num; 由于函式multiply() 没有指定$num 为全域变量(例如global $num 或者$_GLOBALS['num']),所以$num 的值是10。 4. reference 跟一个正规的变量有什么分别?如何pass by reference?在什么情况下我们需要这样做? Reference 传送的是变量的地址而非它的值,所以在函式中改变一个变量的值时,整个应用都见到这个变量的新值。 一个正规变量传送给函式的是它的值,当函式改变这个变量的值时,只有这个函式才见到新值,应用的其他部分仍然见到旧值。 $myVariable = "its' value"; Myfunction(&$myVariable); // 以reference 传送参数以reference 传送参数给函式,可以使函式改变了的变量,即使在函式结束后仍然保留新值。 5.些函式可以用来在现正执行的脚本中插入函式库? 对这道题目不同的理解会有不同的答案,我的第一个想法是插入PHP 函式库不外乎include()、include_once()、require()、require_once(),但细心再想,“函式库”也应该包括com 物件和.net 函式库,所以我们的答案也要分别包括com_load 和dotnet_load,下次有人提起“函式库”的时候,别忘记这两个函式。 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 的值是字符串 user@https://www.360docs.net/doc/ef12069094.html, ,以下哪项能把字符串转化成 https://www.360docs.net/doc/ef12069094.html,? 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.以下哪些函数能用来验证字符串的完整性?(三选) 1.以下哪一句不会把John新增到 users 阵列? $users[] = 'john'; 成功把 John 新增到阵列users。 array_add($users,’ john ’ ); 函式 array_add() 无定义。 array_push($users,‘ john ’ ); 成功把 John 新增到阵列users。 $users ||= 'john'; 语法错误。 2.sort()、 assort()、和 ksort() 有什么分别?它们分别在什么情况下使用? sort() 根据阵列中元素的值,以英文字母顺序排序,索引键会由0 到 n-1重新编号。主要是当阵 列索引键的值无关疼痒时用来把阵列排序。 assort() PHP 没有 assort()函式,所以可能是asort() 的笔误。 asort() 与 sort() 一样把阵列的元素按英文字母顺序来排列,不同的是所有索引键都获得保留,特 别适合替联想阵列排序。 ksort() 根据阵列中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的联想阵列。 3.以下的代码会产生什么?为什么? $num =10; function multiply (){ $num =$num * 10; } multiply (); echo $num; 由于函式 multiply() 没有指定 $num 为全域变量(例如 global $num 或者 $_GLOBALS['num'] ),所以 $num 的值是 10。 4. reference 跟一个正规的变量有什么分别?如何pass by reference?在什么情况下我们需 要这样做? Reference 传送的是变量的地址而非它的值,所以在函式中改变一个变量的值时,整个应用 都见到这个变量的新值。 一个正规变量传送给函式的是它的值,当函式改变这个变量的值时,只有这个函式才见到新值, 应用的其他部分仍然见到旧值。 $myVariable = "its' value"; Myfunction(&$myVariable); // 以 reference 传送参数以 reference 传送参数给函式,可以使函式改 变了的变量,即使在函式结束后仍然保留新值。 5.些函式可以用来在现正执行的脚本中插入函式库? 对这道题目不同的理解会有不同的答案,我的第一个想法是插入PHP 函式库不外乎include() 、include_once() 、require() 、require_once() ,但细心再想,“函式库”也应该包括com 物件和.net 函式库,所以我们的答案也要分别包括com_load 和 dotnet_load ,下次有人提 起“函式库”的时候,别忘记这两个函式。 PHP面试题答案重点题目 很多同学在面试之前,都会去网上搜索面试题目,为面试做好充足的准备,但是网上的题目和答案太多,也很混乱,想具体了解和熟悉也比较困难。所以,千锋小编整理了一些当下面试出现率较高的题目给大家。希望对大家有帮助。 1.请说明 HTML 文档中 DTD 的意义和作用(酷讯) DTD,文档类型定义,是一种保证 html 文档格式正确的有效方法,在解析网页时,浏览器将使用 DTD 来检查页面的有效性(是否符合规范,元素和标签使用是否正确)并且采取相应的措施。同时它还会影响浏览器的渲染模式(工作模式)。 2.准确指出以下代码的显示结果(酷讯) 3.指出以下代码的显示结果(酷讯)
";
";
";
";
";
";
";
";
";2021年php面试题和答案
PHP面试题附答案
比较基础的php面试题及答案
Php面试宝典100题汇总
php程序员面试题(b卷_附答案)
php面试题及答案
php程序员面试题(b卷_附答案).docx
PHP面试题答案重点题目
显示效果如图: 4.如何产生带有数字列表符号的列表?() a d b c
PHP笔试题+答案
PHP程序员考题 考试说明: 1、试卷总分为100分。 2、本次考试时间为120分钟。 一、逻辑推理题(9分,每题3分) 1. Jack夫妇请了Tom夫妇和Henrry夫妇来他们家玩扑克。这种扑克游戏有一种规则,夫妇两个不能一组。Jack跟Lily一组,Tom的队友是Henrry的妻子,Linda的丈夫和Sara一组。那么这三对夫妇分别为:(B) A. Jack—Sara,Tom—linda,Henrry—Lily B. Jack—Sara,Tom—Lily,Henrry—linda C. Jack—linda,Tom—Lily,Henrry—Sara D. Jack—Lily,Tom—Sara,Henrry—linda 2. 有17根11.1米长的钢管,要截成1.0米和0.7米的甲、乙两种长度的管子,要求截成的甲、乙两种管子的数量一样多。问:最多能截出甲、乙两种管子各多少根?(C) A. 99 B.105 C. 111 D. 121 3. 一个水库在年降水量不变的情况下,能够维持全市12万人20年得用水量。在该市新迁入3万人之后,该水库只够维持15年得用水量。市政府号召节约用水,希望能将水库的使用寿命提高到30年。那么该市市民平均需要节约多少比例的水才能实现政府制定的目标?(A) A.2/5 B.2/7 C.1/3 D.1/4 二、PHP语言题(36分,每题3分) 1.语句for($k=0;$k=1;$k++);和语句for($k=0;$k==1;$k++);执行的次数分别是(3分): A 无限和0 B 0和无限 C 都是无限 D 都是0 参考答案:A 2.读取post方法传递的表单元素值的方法是(3分): A $_post["名称"] B $_POST["名称"] C $post["名称"] D $POST["名称"] 参考答案:B 3.下面哪个函数可以打开一个文件,以对文件进行读和写操作?(3分) A fget()
php面试题及答案,经典php笔试题与答案
问题 1.选择合适的答案填入空白处 PHP 是一种______脚本语言,基于______引擎。PHP 最常被用来开发动态的 ______内 容,此外,它同样还可被用来生成______(以及其他)文档。 A.动态,PHP,数据库,HTML B.嵌入式,Zend,HTML,XML C.基于 Perl 的,PHP,Web,静态 D.嵌入式,Zend,Docbook 文档,MySQL E.基于 Zend 的,PHP,图像,HTML 1.唯一有意义的答案是 B。PHP 是一种基于 Zend 引擎的脚本语言,它通常被嵌入在 HTML 代码中。它主要被用来开发 HTML 文档,但是也可以用它来开发其他类型的文档,比 如 XML。 2.以下哪种标签不是 PHP 起始/结束符? A.<% %> B.// C. D./* */ E.
2. PHP 编程中,人们不太使用<% %>和两个标签,但它们确实是合法的 PHP 界定符。 标签是非法的,因此正确的答案是 D。记住,根据 php.ini 文件中的配置不同,这 当中的某些标签无法在特定的情况下使用。 3.以下代码哪个不符合 PHP 语法? A.$_10 B.${“MyVar”} C.&$something D.$10_somethings E.$aVaR 3. PHP 变量以一个美元符号为开头,后面跟上任意数量的数字、字母和下划线。${“MyVar”} 是一个合法的变量名,它使用的是较松散的命名约定。&$something 是对$something 的 引用。然而,变量名不能以数字为开头,$10_somethings 是非法的,因此答案是 D。 4.运行以下代码将显示什么? define(myvalue, "10"); $myarray[10] = "Dog"; $myarray[] = "Human"; $myarray['myvalue'] = "Cat"; $myarray["Dog"] = "Cat";
php_笔试大全_面试题_答案_解析
php 笔试大全面试题答案解析 2009-09-23 13:31 选择题 1、如何产生带有数字列表符号的列表?(c) A.
- B.
- 印度总理辛格访华专题
-
- 专访辛格:早日解决边界问题是战略目标
- 辛格称北京奥运将为印度举办赛事提供灵感
- 印度总理辛格访华参观北京奥运场馆建设
- C.
- D.
- 2、以下哪条javascript语句会产生运行错误:(A) A. var obj = (); B. var obj = []; C. var obj = {}; D. var obj = //; 3、请选择结果为真的表达式:(c) A. null instanceof Object B. null === undefined C. null == undefined D. NaN == NaN 4、 foo 对象有at属性,那么获取att属性的值,以下哪些做法是可以的:(ACE)--多选 A. foo.att B. foo(“att”) C. foo[“att”] D. foo{“att”} E. foo[“a”+”t”+”t”] 5、如何显示没有下划线的超链接?A A. a {text-decoration:none} B. a {text-decoration:no underline} C. a {underline:none} D. a {decoration:no underline}
6、以下一段XHTML代码片段,它不符合W3C规范,请问出现了几处错误: ( 2)
最全最详细的PHP面试题(带有答案)
1 php面试题及答案(原创)收藏 基础题: 1.表单中get与post提交方法的区别? 答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息. 2.session与cookie的区别? 答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放 cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。 两者都可通过时间来设置时间长短 3.数据库中的事务是什么? 答:事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成, 事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。 简述题: 1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)**************** 答:echo date('Y-m-d H:i:s', strtotime('-1 days')); 2、echo(),print(),print_r()的区别(3分) 答:echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) print()只能打印出简单类型变量的值(如int,string) print_r()可以打印出复杂类型变量的值(如数组,对象) echo 输出一个或者多个字符串 3、能够使HTML和PHP分离开使用的模板(1分) 答:Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate 5、使用哪些工具进行版本控制?(1分) 答:cvs,svn,vss; 6、如何实现字符串翻转?(3分) 答:echo strrev($a); 7、优化MYSQL数据库的方法。(4分,多写多得) 答: 1、选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL,例如'省份,性别',最好设置为ENUM 2、使用连接(JOIN)来代替子查询: 3、使用联合(UNION)来代替手动创建的临时表 4、事务处理:
php笔试题及答案
T1 一、填空题 1.PHP是用什么语言编写的? :脚本语言 2. LAMP的全称是? :LINUX 、APACHE、MYSQL、PHP 3. PHP的三种注释方式? :#、//、/**/ 4. PHP使用什么符号定义变量? :$ 二、简答题 1. 请列出PHP的8种数据类型。? :整型、浮点型、字符串、数组、逻辑、对象、NULL、资源型 :资源RESOURCE是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。 2. 写出如下程序的输出结果? $TEST = ‘AAAAAA’; $ABC = & $TEST; UNSET($TEST); ECHO $ABC; ?> :AAAAAA 3. 4.$I=2,编程实现判断$I是否为整型,是则输出$I,不是则输出“非整型变量”? $L=2 IF(IS_INT($L)){ ECHO $L; }ELSE{ ECHO “非整型变量”; } IS_ARRA Y IS_BOOL I S_CALLABLE IS_DOUBLE IS_FLOA T IS_ALONG IS_NUMBERIC IS_OBJECT IS_RESOURCE IS_STRING T2 PHP基础部分 1. 以下PHP代码的输出结果? $I=10; $N = $I++; ECHO $N, $I++, ++$I :10,11,13 2. INCLUDE与REQUIRE的区别? :REQUIRE 的使用方法如REQUIRE("MYREQUIREFILE.PHP"); 。这个函数通常放在PHP 程序的最前面,PHP 程序在执行前,就会先读入REQUIRE 所指定引入的文件,使它变成PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。INCLUDE 使用方法如INCLUDE("MYINCLUDEFILE.PHP"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到INCLUDE 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。 他们两个的用途是完全一样的,不一定非得哪个放在最前面哪个放在中间。他们最根本的区
10个提问频率最高的PHP面试题
10个提问频率最高的PHP面试题10个提问频率最高的PHP面试题汇总 问题:请用最简单的语言告诉我PHP是什么? 回答:PHP全称:HypertextPreprocessor,是一种用来开发动态网站的服务器脚本语言。 问题:什么是MVC? 回答:MVC由Model(模型),View(视图)和Controller(控制器)组成,PHPMVC可以更高效地管理好3个不同层的PHP代码。 Model:数据信息存取层。 View:view层负责将应用的数据以特定的方式展现在界面上。 Controller:通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。 问题:在页面中引用CSS有几种方式? 回答:在页面中使用CSS有3中方式: 引用外部CSS文件 内部定义Style样式 内联样式 问题:PHP支持多继承吗? 回答:不可以。PHP类只能继承一个父类,并用关键字“extended”标识。 问题:请问PHP中echo和print有什么区别?
这两个看起来很相似,因为它们都是将一些值打印在屏幕上。但是echo和print的本质区别在于:echo用来输出字符串,显示多 个值的时候可以用逗号隔开。只支持基本类型,print不仅可以打 印字符串值,而且可以打印函数的`返回值。 问题:请问GET和POST方法有什么区别? 回答:我们再网页上填写的表单信息都可以通过这两个方法将数据传递到服务器上,当我们使用GET方法是,所有的信息都会出现 在URL地址中,并且使用GET方法最多只能传递1024个字符,所以 如果在传输量小或者安全性不那么重要的情况下可以使用GET方法。说到POST方法,最多可以传输2MB字节的数据,而且可以根据需要 调节。 问题:PHP中获取图像尺寸大小的方法是什么? 回答:getimagesize()获取图片的尺寸 Imagesx()获取图片的宽度 Imagesy()获取图片的高度 问题:PHP中的PEAR是什么? 回答:PEAR也就是为PHP扩展与应用库(PHPExtensionandApplicationRepository),它是一个PHP扩展 及应用的一个代码仓库。 问题:如何用PHP和MySQL上传视频? 回答:我们可以在数据库中存放视频的地址,而不需要将真正的视频数据存在数据库中。可以将视频数据存放在服务器的指定文件 夹下,上传的默认大小是2MB,但是我们也可以在php.ini文件中 修改max_filesize选项来改变。 问题:PHP中的错误类型有哪些? 回答:PHP中遇到的错误类型大致有3类。
PHP架构师面试题目和答案
一、MySQL相关知识 1、请列举mysql优化方式 选取最适用的字段属性、事务、锁定表、使用外键、使用索引、优化的查询语句 使用连接(JOIN)来代替子查询(Sub-Queries) 使用联合(UNION)来代替手动创建的临时表 2、请列举分库分表的常用方法 有一个1000多万条记录的用户表members,查询起来非常之慢 "; echo "INSERT INTO members{$i} SELECT * FROM members WHERE mid%100={$i}
"; } ?> 3、 Mysql+如何做双机热备和负载均衡 1.主服务器授权 2.数据复制 3.配置主服务器 4.重启master 5.配置slave 6.重启slave 7.查看master的状态与设置的是否一致 8.查看slave 4、数据表类型有哪些 MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等 MyISAM:成熟、稳定、易于管理,快速读取。一些功能不支持(事务等),表级锁。InnoDB:支持事务、外键等特性、数据行锁定。空间占用大,不支持全文索引等。 5、防sql注入的方法? mysql_escape_string(strip_tags($arr["$val"]));
6、mysql把一个大表拆分多个表后,如何解决跨表查询效率问题 [php]view plaincopy 1./** 2.* 函数名称:post_check() 3.* 函数作用:对提交的编辑内容进行处理 4.* 参数:$post: 要提交的内容 5.* 返回值:$post: 返回过滤后的内容 6.*/ 7.function post_check($post){ 8.if(!get_magic_quotes_gpc()){// 判断magic_quotes_gpc是否为打 开 9.$post = addslashes($post);// 进行magic_quotes_gpc没有打开的 情况对提交数据的过滤 10.} 11.$post = str_replace("_","\_", $post);// 把'_'过滤掉 12.$post = str_replace("%","\%", $post);// 把'%'过滤掉 13.$post = nl2br($post);// 回车转换 14.$post = htmlspecialchars($post);// html标记转换 15.return $post; 16.} 7、索引应用 7.1什么情况下考虑索引 7.2什么情况不适合索引 7.3一个语句是否用到索引如何判断
php程序员面试题(c卷 附答案)
PHP经典面试题(连载4) 1 请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用? 答:传值只是把某一个变量的值传给了另一个变量,而引用则说明两者指向了同一个地方。 2 在PHP中error_reporting这个函数有什么作用? 答: The error_reporting() function sets the error_reporting directive at runtime. PHP has many levels of errors, using this function sets that level for the duration (runtime) of your script. 3 请用正则表达式(Regular Expression)写一个函数验证电子邮件的格式是否正确。 答:
} } else { ?>