PHP笔试题
1.表单中 get与post提交方法的区别?
答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.
2.session与cookie的区别?
答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放
cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。两者都可通过时间来设置时间长短
3.数据库中的事务是什么?
答:事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。
4. HTTP协议中几个状态码的含义
500——服务器产生内部错误
501——服务器不支持请求的函数
502——服务器暂时不可用,有时是为了防止发生系统过载
503——服务器过载或暂停维修
400——错误请求,如语法错误
401——请求授权失败
403——请求不允许
200——交易成功
201——提示知道新文件的URL
202——接受和处理、但处理未完成
203——返回信息不确定或不完整
204——请求收到,但返回信息为空
205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件
206——服务器已经完成了部分用户的GET请求
300——请求的资源可在多处得到
301——删除请求数据
302——在其他地址发现了请求数据
5.Include require include_once require_once 的区别.
include() 、require()语句包含并运行指定文件。这两结构在包含文件上完全一样,唯一的区别是对于错误的处理。require()语句在遇到包含文件不存在,或是出错的时候,就停止即行,并报错。include()则继续即行。
include_once()和require_once()一样,应该用于在脚本执行期间同一个文件有可能被包含超过一次的情况下,想确保它只被包含一次以避免函数重定义,变量重新赋值等问题。这就是include_once()和require_once()与include() 和require()的主要区别。
6.写出一些php魔幻方法
__construct 初始化构造函数
__destruct 卸载析构函数
__autoload 自动加载函数
__call 调用不存在的类的函数的时候得处理方法,__call 失败,就调用父类方法,依此类推__get 获取属性值
__set() 设置属性值
__isset() 测定变量是否设定用的函数,传入一个变量作为参数,如果传入的变量存在则传回true,否则传回false
__unset() 删除指定的变量且传回true,参数为要删除的变量。
__clone(); 克隆对象
__toString(); 进行对象的类型转换
__sleep();
__wakeup();
当一个对象被串行化,PHP会调用__sleep方法(如果存在的话). 在反串行化一个对象
后,PHP 会调用__wakeup方法. 这两个方法都不接受参数. __sleep方法必须返回一个数组,包含需要串行化的属性.
一些编译php时的configure 参数
7.echo count(“abc”); 输出什么?
答案:1
count —计算数组中的单元数目或对象中的属性个数
int count ( mixed$var [, int $mode ] ), 如果 var 不是数组类型或者实现了 Countable 接口的对象,将返回1,有一个例外,如果 var 是 NULL 则结果是 0。
对于对象,如果安装了 SPL,可以通过实现 Countable 接口来调用 count()。该接口只有一个方法 count(),此方法返回 count() 函数的返回值。
8.有一个一维数组,里面存储整形数据,请写一个函数,将他们按从大到小的顺序排列。要求执行效率高。并说明如何改善执行效率。(该函数必须自己实现,不能使用php函数)
function BubbleSort(&$arr)
{
$cnt=count($arr);
$flag=1;
for($i=0;$i<$cnt;$i++)
{
if($flag==0)
{
return;
}
$flag=0;
for($j=0;$j<$cnt-$i-1;$j++)
{
if($arr[$j]>$arr[$j+1])
{
$tmp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$tmp;
$flag=1;
}
}
}
}
$test=array(1,3,6,8,2,7);
BubbleSort($test);
var_dump($test);
?>
9. php class中static,public,private,protected的区别?
static 静态,类名可以访问
public 表示全局,类内部外部子类都可以访问;
private表示私有的,只有本类内部可以使用;
protected表示受保护的,只有本类或子类或父类中可以访问;
10.请写一个函数,实现以下功能:
字符串“open_door” 转换成“OpenDoor”、”make_by_id”转换成”MakeById”。
方法1:
function str_explode($str){
$str_arr=explode(“_”,$str);$str_implode=implode(” “,$str_arr); $str_implode=implode (“”,explode(” “,ucwords($str_implode)));
return $str_implode;
}
$strexplode=str_explode(“make_by_id”);print_r($strexplode);
方法2:$str=”make_by_id!”;
$expStr=explode(“_”,$str);
for($i=0;$i { echo ucwords($expStr[$i]); } 方法3:echo str_replace(… …,”,ucwords(str_replace(…_?,? …,?open_door?))); PHP核心课程测试题一.单选题( 1’ x 50 = 50’ ) 1. PHP是哪一种类型的语言( ) A.编译型 B.解释性 C.两者都是 D.两者都不是 2. 在用浏览器查看网页时出现404错误可能的原因是( ) A.页面源代码错误 B.文件不存在 C.与数据库连接错误 D.权限不足 3. 若x,y为int类型变量,则执行以下语句后,y的值为( ) A.1 B.2 C.3 D.0 4.下列代码执行后,输出结果正确的是( ) A.1 B.2 C.运行错误 D.都不对 5. 执行完以下代码后,变量$num的值为( ) A.10 B.20 C.30 D.显示错误 6. 以下程序运行结果为( ) A.5 + 3 + 1 = 9 B.1 + 5 + 3 =9 C.提示错误,并有显示:+ 3 + 1 = 4 D.9 7. 下面的脚步运行以后,$array数组所包含的值是( ) $v){ $v = 2 } ?> A.arra y (…2?, ?2?) B.array (1, 1) C.array (2, 2) D.array (null,null) 8. 查询名字中第2个字为“阳”的学生的姓名和学号,正确的是( ) A.Select Sname,Sno from student where Sname like ‘_阳%’; B.Select Sname,Sno from student where Sname like ‘阳%’; 一、是非题:(每题1分,共10分) (说明:认为陈述正确的在括号内打“√”;否则在括号内打“×”) 1.PHP 中变量名“$_abc ”不是合法的。( ) 2.PHP 只能使用Mysql 数据库。( ) 3.PHP 中的数组键必须为数字,且从“0”开始。( ) 4.全等运算符“===”在比较时,只有在两者的数据类型和值都相同时才返回True 。( ) 5.“mysql_connect( )”与“@mysql_connect( )”没有任何区别。( ) 6.使用continue 语句可以实现PHP 程序的跳转。( ) 7.HTML 中的Form 表单数据必须使用Submit 按钮才可以提交。( ) 8.PHP 中的die()和exit()都可以实现程序中止退出功能。( ) 9.PHP 程序中可以随时嵌入HTML 代码和JS 代码。( ) 10.PHP 中的Session 功能可以完全不受制于客户端的Cookie 设置。( 二、填空题:(每空1分,共10分) 1.HTML 的Form 表单中定义单选按钮需要使用INPUT 的 类型,定义复选按钮需要使用INPUT 的 类型。 2.PHP 表达式10%值为 ,表达式10/值为 。 3.Mysql 数据库服务默认开放的端口号是 ,默认管理员为 。 4.为了能够避免SQL 注入,你需要坚持 。 5.表达式“'Testing'.'3'+'5'.'12'”的值为 。 6.PHP 函数中可以利用 向外返回一个值,可以使用 声明一个 全局变量。 三、单选题:(每题2分,共30分) (说明:将认为正确答案的字母填写在每小题后而的括号内) 1. 比较基础的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.一个函数的参数不能是对 姓名:__________ 面试时间:___________ 1、使用过哪些版本控制器 2、使用过哪些框架 3、从上家公司离职的原因 一、基础技能题 1、实现中文字串截取无乱码的方法 2、php5的构造函数和析构函数及具体作用。 3、HTTP协议中几个状态码的含义:503 500 401 403 404 200 301 302。 4、Include require include_once require_once 的区别 5、请写出0/false/null之间的关系 二、计算题 6、 $count = 5; function get_count() { static $count = 0; return $count++; } ++$count; echo get_count(); echo get_count(); 7、 echo count(null); echo count(false); 8、 $a = 3; $b = 5; if($a = 5 || $b = 7) { $a++; $b++; } echo $a . " " . $b; 9、 function get_arr($arr){ unset($arr[0]); } $arr1 = array(1, 2); $arr2 = array(1, 2); get_arr(&$arr1); get_arr($arr2); echo count($arr1); echo count($arr2); 三、程序编写题 1、使用PHP描述冒泡排序算法,对象可以是一个数组 2、使用PHP描述快速排序算法,对象可以是一个数组 3、如何实现字符串翻转(注* 不可使用内置字符串翻转函数) 四、扩展题 1、请谈谈你对php动态抓取的认识。 2、你做过最得意的项目是什么做这个项目中都遇见了哪些问题后来是怎么解决的 … 评卷人得分分)1分,共10一、是非题:(每题)(说明:认为陈述正确的在括号内打“√”;否则在括号内打“×” )$_abc”不是合法的。(1.PHP中变量名“)数据库。(2.PHP只能使用Mysql)”开始。(3.PHP中的数组键必须为数字,且从“04.全等运算符“===”在比较时,只有在两者的数据类型和值都相同时才返回True。() 5.“mysql_connect( )”与“@mysql_connect( )”没有任何区别。() 6.使用continue语句可以实现PHP程序的跳转。() 7.HTML中的Form表单数据必须使用Submit按钮才可以提交。() 8.PHP中的die()和exit()都可以实现程序中止退出功能。() 9.PHP程序中可以随时嵌入HTML代码和JS代码。() 10.PHP中的Session功能可以完全不受制于客户端的Cookie设置。() 评卷人得分 二、填空题:(每空1分,共10分) 1.HTML的Form表单中定义单选按钮需要使用INPUT的类型,定义复选按钮需要使用INPUT的类型。 2.PHP表达式10%值为,表达式10/值为。 3.Mysql数据库服务默认开放的端口号是,默认管理员为。4.为了能够避免SQL注入,你需要坚持。 5.表达式“”的值为。'Testing'.'3'+'5'.'12'6.PHP 函数中可以利用向外返回一个值,可以使用声明一 个全局变量。 评卷人得分30分)三、单选题:(每题2分,共(说明:将认为正确答案的字母填写在每小题后而的括号内) 1. 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? $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.wendangku.net/doc/d212854730.html, ,以下哪项能把字符串转化成 https://www.wendangku.net/doc/d212854730.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.以下哪些函数能用来验证字符串的完整性?(三选) php 笔试大全面试题答案解析 2009-09-23 13:31 选择题 1、如何产生带有数字列表符号的列表?(c) A. PHP面试题
PHP试题带答案
比较基础的php面试题及答案
PHP中级面试题
PHP试题带答案
PHP笔试题+答案
php面试题及答案
php_笔试大全_面试题_答案_解析
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)
问题 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程序设计》上机期末考试试题 一、调试下列各小题的输入结果(每题10分,共34分) 1、 } $table .= "
"; unset($arr[5]); print_r($arr); echo “
”; unset($arr); print_r($arr); > 调试答案:____________________________. 4、
"; > 调试答案:____________________________. 5、"; for($j=1;$j<=$n;$j++){ $table .= " "; } $table .= ""; echo $table; > 调试答案:____________________________. 6、m:$i, n:$j ";
"; gzclose($id);$id=gzopen("","w"); gzputs($id,"
"; gzpassthru($id); echo "
"; gzclose($id); > 调试答案:____________________________. 二、编程题及程序调试(每题20分共计40分) 1、有一个数组$a=array(4,3,8,9,2),将其重新排序并输入结果,按从小到大的顺序排列。 1、
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、事务处理:
1.以下哪种类型是B/S构架的正确描述?(C) A. 需要安装客户端的软件 B. 不需要安装就可以使用的软件 C. 依托浏览器的网络系统 D. 依托outlook等软件的邮件系统? 2.PHP中,单引号和双引号所包围的字符串有什么区别?(AD)(选择两项) A. 单引号速度快,双引号速度慢 B. 双引号速度快,单引号速度慢 C. 两者没有速度差别 D. 双引号解析其中以$开头的变量,而单引号不解析 3.下面哪个不是合法的SQL的归类函数?(E) A. AVG B. SUM C. MIN D. MAX E. CURRENT_DATE() 4.若y , x为int型变量,则执行以下语句后,y的值为(B) x=1; ++x; y = x++; A、1 B、2 C、3 D、0 5.以下代码执行结果为:(A) $num=”24linux”+6; echo $num; ?> A 30 B 24linux6 C 6 D 30linux 6.PHP是一种什么型的语言:(C) A、编译型 B、解释型 C、两者都是 D、两者都不是 7.下列描述正确的是(B) A、JavaScript是一种编译型语言 B、JavaScript是一种基于对象和事件驱动的编程语言 C、JavaScript中变量声明采用强定义类型 D、JavaScript采用静态联编 8.要想在网页中输出”<”正确的方法是(B) A: & B: < C: > D: ” 9.创建一个滚动菜单的HTML代码是?(D) A.
B. C.