php复习题
第2章数据与变量
1. 写出相关PHP代码的输出结果。
(1)
$a = "hello";
$b = &$a;
$b = 100;
echo $a;
答案:100
(2)
$test = ‘aaaaaa’;
$abc = &$test;
unset($test);
echo $abc;
答案:aaaaaa
(3)
$var1 = 5;
$var2 = 1;
function get_value(){
global $var2;
$var1 = 0;
return $var2++;
}
get_value();
echo $var1, $var2;
答案:52
(4)
function get_count(){
static $count = 2;
return $count++;
}
$count = 5;
get_count();
echo get_count();
答案:3
(5)
$num =10;
function multiply(){
$num =$num *10;
}
multiply();
echo $num;答案:10
第3章运算符与控制流程
1. 写出相关PHP代码的输出结果。
(1)
$str1 = null;
$str2 = false;
var_dump($str1==$str2);
答案:bool(true)
(2)
$str1 = 0;
$str2 = ‘0’;
var_dump($str1===$str2);
答案:bool(false)
(3)
$a2 = false;
echo empty($a2) ? ‘true’ : ‘false’;
答案:true
(4)
$a4 = ”;
echo empty($a4) ? ‘true’ : ‘false’;
答案:true
(5)
$a6 = ‘null’;
echo empty($a6) ? ‘true’ : ‘false’;
答案:false
(6)
$a8 = array(array());
echo empty($a8) ? ‘true’ : ‘false’;
答案:false
(7)
$i=10;
$n = $i++;
echo $n, $i++, ++$i;
答案:101113
2. 简答题
(1) include与require的区别。
答案:
require 的使用方法如require("MyRequireFile.php"); 。这个函数通常放在PHP 程序的最前面,PHP 程序在执行前,就会先读入require 所指定引入的文件,使它变成PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。
include 使用方法如include("MyIncludeFile.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。
include()与require()的功能也基本相同(包含),但在用法上也有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面代码中,如果变量$a为真,则将包含文件a.php:
if($a){
include("a.php");
}
而require()则和include()不同,不管$a取何值,下面的代码将把文件a.php包含进文件里:
if($a){
require("a.php");
}
require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误
include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。
(2) “===”是什么?试举一个“==”是真但“===”是假的例子。
答案:“===”是既可以返回布尔值“假”,也可以返回一个不是布尔值但却可以赋与“假”值的函式,strpos() 和strrpos() 便是其中两个例子。
if (strpos("abc", "a") == true){
// 这部分永不会被执行,因为"a" 的位置是0,换算成布尔值“假”
}
if (strpos("abc", "a") === true){ // 这部份会被执行,因为“===”保证函式strpos() 的送回值不会换算成布尔值.}
第4章PHP函数
1. 写出相关PHP代码的输出结果。
(1)
function m($val){
++$val;
}
$val = 10;
m($val);
echo $val;
答案:10
(2)
function get_arr($arr){
unset($arr[0]);
}
$arr1 = array(1, 2);
get_arr($arr1);
echo count($arr1);//count个数
答案:2
(3)
function sum(...$numbers) {
$acc = 0;
foreach ($numbers as $n) {
$acc += $n;
}
return $acc;
}
echo sum(1, 2, 3, 4, 5);
答案:15
2. 写代码、编程序
(1) 编写用户定义函数is_leap,用于测试参数($year)指定的年份是否是闰年,并返回一个布尔型的值。参数($year)的默认值是2000。
答案:
function is_leap($year){
if($year%100==0){//判断世纪年
if ($year%400==0&&$year%3200!=0){
return "世纪年".$year."是闰年!";//世纪年里的闰年
}
else{
return "世纪年".$year."不是闰年!";
}
}
else{//剩下的就是普通年了
if($year%4==0&&$year%100!=0){
return "普通年".$year."是闰年!";//普通年里的闰年
}
else {
return "普通年".$year."不是闰年!";
}
}
}
?>
3. 简答题
(1) php中函数传递参数的方式有哪两种?两者有什么区别?
答案:
GET方式:url.php?id=1 得到方式$_GET['id']
POST方式:在form表单里面把action="url.php" ,然后在url.php里面用$_POST['id']去得到
第5章处理字符串
1. 写出相关PHP代码的输出结果。
(1) 假设程序代码使用UTF-8编码。
$str = "您好hello"; //汉字在utf-8里占3个
echo strlen($str);
答案:11
(2)
$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");
usort($arr1, "strcmp");
print_r($arr1);
答案:Array ( [0] => img1.png [1] => img10.png [2] => img12.png [3] => img2.png ) (3)
$str = "Java语言Java语言";
$str1 = "av";
echo strpos($str, $str1, 2);
答案:11
(4)
$str = "Java语言Java语言";
$str1 = "av";
echo strrpos($str, $str1, -10);
答案:1
(5)
$s = '12345';
$s[$s[1]] = '2';
echo $s;答案:12245
(6)
$search = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);
答案:F
(7)
$str = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$str1 = nl2br($str);
$str2 = htmlspecialchars($str1);//用实体来表示
echo $str2;
答案:Line 1
Line 2
Line 3
Line 4
(8)
$a = preg_match("/111[^abc]999/", "other111a999");//不能有a,b,c
$b = preg_match("/111[\w\D]999/", "111w111,999");
echo $a.$b;
答案:01
(9)
preg_match('/(?:red|white) (king|queen)/', 'the white queen', $result);
print_r($result);
答案:Array ( [0] => white queen [1] => queen )
(10)
$a = preg_match ('/^[a-zA-Z_]\w*$/', "^awww");//w单词字符
$b = preg_match ('/^[a-zA-Z_]\w*$/', "_123_");
echo $a.$b;
答案:01
2. 写代码、编程题
(1) 给定一个用逗号分隔一组值的字符串$str,请写php代码把每个独立的值放入一个新创建的数组$arr中。
(2) 有如下数组:
$arr = array('james', 'tom', 'symfony');
请写PHP代码将$arr数组的各元素值用逗号连接合并成一个字符串并输出。
(3) 写出一个能匹配身份证号码(18位)的正则表达式。
3. 简答题
(1) 以下代码是判断字符串中是否存在#符号,请问是否正确?若错误,请修改之。
if(strpos($str, "#")) { … }//如果是第一个找到,返回0.则是fulse,不符合,改成!=fulse
第6章MySQL与PHP
一. 根据要求写代码
1. 在MySQL监视器命令行状态下,创建一个名为mydb的数据库,数据库的默认字符集为utf8,排序规则为utf8_bin。
答案:creste database mydb character set=utf8 collate=utf8_bin
2.对数据库mydb中所有表的结构和数据进行备份,备份产生的sql脚本文件mydb.sql保存在当前目录下。假设用户名为root,无密码。
答案:mysqldump -u root -p mydb > mysql.sql
3.假设与数据库的连接已经建立,连接对象是$mysqli。现在请写出代码:执行查询语句"SELECT * FROM student",然后输出查询结果的行数。
答案:$result=$mysqli->query(“SELECT * FORM student”);
Echo $result->num_rows;
4. 假设下面代码已经成功执行,其中mysqli表示与数据库的连接对象:
$result = $mysqli->query("SELECT * FROM student");
现在请写代码,要求是:获取查询结果第3行的数据并放入数组$row中。
答案:$result->data_seek(2);
$row=$result->fetch_array();
5. 下面PHP代码执行一条预处理的SQL SELECT语句,并显示查询结果。其中,$mysqli是一个已经创建的数据库连接对象。请根据注释完善代码。
$stmt = $mysqli->stmt_init();
$sql = "select sn,password,name,gender from student where gender = ?";
$stmt->prepare($sql);
$var1 = "男";
____$stmt->bind_param(“s”,$var1);__ // 将变量$var1绑定至预处理语句中的参数
$stmt->execute();
____$stmt->bind _result($sn,$password,$name,$gender);__ // 将查询结果各列绑定至变量
while($row = $stmt->fetch()) {
echo $sn.” “.$password.” “.$name.” “.$gender.”
”;
}
二、简答题
1. 在PHP中,如何利用mysqli类实现与MySQL数据库的连接?
答案:
function connect() {
@ $mysqli = new mysqli('localhost', 'root', '123', 'elective_manage');
return $mysqli;
}
function executeSql($mysqli, $sql) {
$mysqli->set_charset('UTF8');
$result = $mysqli->query($sql);
return $result;
}
第7章表单与会话
一、读代码写结果
1. 有pahe1.html和page
2.php两个页面,代码如下:
page1.html:
page2.php:
$content1 = $_POST['c1'];
echo "content1:$content1";
?>
现在page1.html页面已经打开,如果在其中的文本域中输入:true,那么按递交按钮后窗口将显示?答案:content1:
2. 运行以下代码将显示什么值?假设代码运行时的URL 是:testscript.php?c=25。function process($c, $d = 25) {
global $e;
$retval = $c + $d - $_GET['c'] - $e;//5+25-25=5
return $retval;
}
$e = 10;//全局变量,整个文件中有效,但函数中无效!!!
echo process(5);
答案:5
二. 根据要求写代码
1. 已知$f_name是一个使用utf-8编码的字符串,请将其转换成使用gbk编码的字符串。答案:$f_name=iconv(“utf-8”,”GBK”,$f_name);
2.假设$o_name是一个上传文件的文件名(含路径)。使用PHP代码将该上传文件移至新的
位置。$d_name是目标位置和文件名。
答案:move_uploafed_file................................。
三、简答题
1. 哪一个php函数可以把浏览器转向到另一个页面?请举例说明。
答案:header,header("Location: index1.php");
2. $_FILES是几维数组?第一维和第二维的索引下标分别是什么?
答案:二维数组,第一位是上传文件主键name属性值。。。,第二位是。。。。。
$_FILES[‘file1’][‘error’],$_FILES[‘file1’][‘tmp_name’],
第8章使用数组
一、读代码写结果
1.
define("myvalue", "10");
$myarray[10] = "Dog";
$myarray[] = "Human";
$myarray["myvalue"] = "Cat";
$myarray["Dog"] = "Cat";
print $myarray[myvalue];
答案:Dog
2.
$myarray = array("aaa","bbb","ccc");
foreach ($myarray as $key => $value) {
$myarray[$key] = $value."-123";
}
print $myarray[1];
答案:bbb-123
3.
define("STOP_AT", 1024);
$result = array();
for($idx=1; $idx $result[] = $idx; } print_r($result[8]); 答案:256 4. $a = array("a" => "apple", "b" => "banana"); $b = array("a" => "pear", "b" => "strawberry", "c" => "cherry"); print_r(array_merge($a, $b)); 答案:Array ( [a] => pear [b] => strawberry [c] => cherry ) 二、根据要求写代码 1. 测试数组$arr中是否包含键为"x"的元素,若存在输出该元素的值。 Chap8.ppt----p6,p7,p8--wy稻草人 一、是非题:(每题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. 专 班级 姓名 学号 注意:广州轻工职业学校(大源校区) 2015-2016学年第二学期《PHP 动态网站开发》期末考试试卷 注 意 事 项 1、请首先按要求在试卷的标封处填写您的专业、姓名、学号和所在的班级名称; 2、请仔细阅读各种题目的回答要求,在规定的位置填写您的答案; 3、不要在试卷上乱写乱画,不要在标封区填写无关内容。 4、请将答案填写到答题卡的相应位置。 使用对象:13计算机应用班 考试时间:90分钟 考试方式:考试 (一)客观题部分 一、不定项选择题(每小题3分,共计75分): 1.以下( )内容是HTML 文件的头部内容所包括的。 A .作者信息、网页描述 B .锚点 C .自动刷新 D .新注释、表单域 2.以下( )内容是HTML 文件的头部内容所包括的。 A .网页标题、关键字 B .作者信息、网页描述、基础地址 C .注释、表单域 D .自动刷新、CSS 样式 3.( )的设置有助于搜索引擎在因特网上搜索到网页。 A. 关键字 B. META C. 说明 D. 图片的尺寸 4.关于HTML 语言下列说法正确的是( )。 A .HTML 是(HyperText Markup Language )的首字母缩写,中文被称作“超文本标签语 言” B .HTML 文件中可以插入图形、声音、视频等多媒体信息 C .在HTML 文件中,用户可以建立与其他超文本的链接 D .HTML 是纯文本类型的语言,可以使用任何文本编辑器打开,查看、编辑 5. 超级链接是网页中最重要的组成元素,关于创建链接叙述正确的是( )。 A .选中文本,在其属性栏就会出现链接框,输入文件地址即可创建 B .选中文本或图像,选择右键菜单中的“创建链接”命令 C .一幅图片可以创建多个超级链接 D .也可以给空格创建超级链接 6.如果要在网页上加入跳转到页面顶部之类的链接,可以使用的操作有( )。 A .执行菜单命令“插入/表单对象/跳转菜单” B .执行菜单命令“插入/命名锚记” C .执行菜单命令“插入/超级链接” D .点击对象面板常用面板组下的“命名锚记”按钮 7.使用Dreamweaver8 创建网站的叙述,不正确的是( )。 A .站点的命名最好用英文或英文和数字组合 B .网页文件应按照分类分别存入不同文件夹 C .必须首先创建站点,网页文件才能够创建 D .静态文件的默认扩展名为.htm 或.html 8.下列( )是Dreamweaver 8中样式表文件的扩展名。 A ..dwt B ..css C ..lbi D ..cop 9.下列( )不能在网页的“页面属性”中进行设置。 A .网页背景图及其透明度 B .背景颜色、文本颜色、链接颜色 C .文档编码 D .跟踪图像及其透明度 10.点击某个设置了超链接的文字,希望在当前网页所在的页面中打开网页,目标选项应设置为( )。 A ._blank B ._self C ._http D ._URL 11.为链接定义目标窗口时,_blank 表示的是( )。 A .在上一级窗口中打开 B .在新窗口中打开 C .在同一个帧或窗口中打开 D .在浏览器的整个窗口中打开,忽略任何框架 12.在Dreamweaver 8中,设置超级链接的属性,目标设置为_top 时,表示( )。 A .新开一个浏览窗口来打开链接 B .在当前框架打开链接 C .在当前框架的父框架中打开链接 D .在当前浏览器的最外层打开链接 13.要在页面上创建一个指向上一级目录中文件picture1.htm 的链接,在属性检查器的链接栏中应该输入( )。 A . / picture1.htm B . ../ picture1.htm C . picture1.htm D . mailto: picture1.htm 14.如果要为一段文字添加一个电子邮件链接,可以执行的操作是( )。 A .选中文字,在属性面板的“链接”栏内直接输入mailto:电子邮件地址 B .选中文字,在属性面板的“链接”栏内直接输入email:电子邮件地址 C .选中文字,在属性面板的“链接”栏内直接输入tomail:电子邮件地址 D .无法为文字添加电子邮件链接 15.关于在Dreamweaver 中插入Flash 文本,说法错误的是( )。 A .通过插入Flash 文本,用户可以直接创建一个Flash 文本对象的动画 B .可以设置Flash 文本的字体、字号、文本颜色、鼠标转滚颜色等属性 PHP网络编程期中考试试题 一、单项选择题(每题3分共计30分) 1、在HTML中嵌入PHP代码,有以下几种方法,其中错误的是()。 A. 以” 选择题 1.对于采用虚拟主机方式部署的多个站点,域名和IP地址是()的关系。 A.一对多 B.一对一 C.多对一 D..多对多 2.网页的本质是()文件 A.图像 B.纯文本 C.可执行程序 D..图像和文本的压缩 3.以下哪种技术不是服务器端动态网页技术?() 4.配置MySQL服务器时,需要设置一个管理员帐号,其名称是() A.admin B.root C.sa D.Administrator A.E:\localhost\admin\admin.php B.E:\eshop\admin\admin.php C.E:\eshop\admin.php D.E:\eshop\localhost\admin\admin.php 6.HTML中最大的标题元素是(C)。 A.PHP试题带答案
《PHP实操试题》(A卷)
PHP网络编程 期中考试试题及答案
php课后习题及答案
D.
7 用HTML标记语言编写一个简单的网页,网页最基本的结构是()。 A … … B
B. C. D.