考试题型
- 选择题:40分
- 填空题:20分
- 简答题:25分
- 程序填空题:15分
考点
-
前端
- 网页的基本结构
<html> <head> <title>网页的标题</title> </head> <body> 网页显示的内容 </body> </html>
- 表格标记
<table 属性="值"…> <caption>表格标题文字</caption> <tr 属性="值"….> <th>第1个列表头</th> <th>第2个列表头</th>…<th>第n个列表头</th> </tr> <tr> <td 属性=“值”…>第1行第1列数据</td> <td>第1行第2列数据</td>…<td>第1行第n列数据</td> </tr> </table>
- 表单标记
<form 定义> 表单标记 <input 定义> 表单输入控件标记 <textarea 定义> 滚动文本框标记 <select 定义> 下拉菜单标记 <button 定义> 按钮标记 </form>
- 超链接标记
<a href="http://www.qq.com">腾讯</a> <a href=“HTML/index.html">链接到index.html文件</a> <a href="image/test.jpg">链接到图片</a>
- 网页的基本结构
-
PHP基础
-
数据类型
- PHP的变量无需声明,值的类型即为变量的类型。PHP支持六种基本数据类型。
-
运算符
- 主要掌握基本运算符,特别注意字符串运算符“.”,用于字符串拼接
-
变量命名规则
- 变量只能是下划线或字母开头,_abc、abc
-
流程控制语句
- 分支
// if分支 if ($a != 1){ ... } // if-else 分支 if ($a != 1){ ... } else { .... } // switch分支 switch(表达式){ case 常量1: 语句1; [break;] case 常量2:语句2; [break;] …… [default:<语句>;] }
- 循环
// 用遍历数组的方式来复习循环,顺带也复习了遍历数组 $data = array( 'a' => "AA", 'b' => "BB", 'c' => "CC" ); $indexData = array( "AA", "BB", "CC" ); //第一种遍历方式,只适用于索引数组。PHP数组在没有指明key的情况下,默认是索引数组 for ($i = 0; $i < sizeof($indexData); $i++) { echo $indexData[$i] . "1" . "<br>"; } //第二种遍历方式。可同时用于索引数组和关联数组,取出key和value foreach ($data as $key => $value) { echo $value . "2" . "<br>"; } //第三种遍历方式,可同时用于索引数组和关联数组,只取出value。(会改变数组当前指针) foreach ($data as $value) { echo $value . "3" . "<br>"; } //第四种遍历方式.可同时用于索引数组和关联数组,取出key和value(会改变数组当前指针) //因$data数组的指针在第三种方式中已经指向了数组尾部,故换一个数组 while (list($key, $value) = each($indexData)) { echo $value . "4" . "<br>"; }
- 转移(跳出循环、结束)break、return
- 分支
包含文件的方法include()、include_once()、require()、require_once()
-
数据处理
- 数组的创建和初始化:键名、range()
- 创建数组可以使用array()函数,语法格式如下:
array array([$keys=> ]$values,…)
说明:如果省略了键名,会自动产生从0开始的整数作为键名。如果只对某个给出的值没有指定键名,则取该值的健名为前面最大的整数键名加1 - range()函数:使用range()函数可以自动建立一个值在指定范围的数组,语法格式如下:
array range(mixed $low, mixed $high [, number $step ])
$low为数组开始元素的值,$high为数组结束元素的值。$step是单元之间的步进值,如果未指定则默认为1。
- 创建数组可以使用array()函数,语法格式如下:
- 键名和值的操作:list(),list()函数。使用list()函数可以将数组中的值赋给指定的变量。这样就可以将数组中的值显示出来了。例如:
$arr=array("红色","蓝色","白色"); list($red,$blue,$white)=$arr; //将数组$arr中的值赋给3个变量 echo $red; //输出"红色" echo $blue; //输出"蓝色" echo $white; //输出"白色"
- 数组的遍历的三种方法(考察编程):while循环、for循环、foreach,参照上面的循环
- 数组的排序(重点,考察程序填空题):sort() asort() ksort() rsort() arsort()的区别
- sort():按照数组值从低到高重新索引。不仅对数组进行排序,同时删除了原来的键名,并重新分配自动索引的键名,例如:
$array1=array("a"=>5, "x"=>3, 5=>7, "c"=>1); if(sort($array1)) print_r($array1); //输出:Array ([0] => 1 [1] => 3 [2] => 5 [3] => 7 ) else echo "排序\$array1失败"; //不输出
- asort()函数。asort()函数也可以对数组的值进行升序排序,但使用asort()函数排序后的数组还保持键名和值之间的关联,例如:
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple"); asort($fruits); print_r($fruits); //输出:Array ( [c] => apple [b] => banana [d] => lemon [a] => orange )
- ksort()函数。ksort()函数用于对数组的键名进行排序,排序后键名和值之间的关联不改变,例如:
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple"); ksort($fruits); print_r($fruits); //输出:Array ( [a] => orange [b] => banana [c] => apple [d] => lemon )
- 前面介绍的sort()、asort()、ksort()这3个函数都是对数组按升序排序。而它们都对应有一个反向排序的函数,可以使数组按降序排序,分别是rsort()、arsort()、krsort()函数。
- sort():按照数组值从低到高重新索引。不仅对数组进行排序,同时删除了原来的键名,并重新分配自动索引的键名,例如:
- 数组的计算:数组元素个数的计算->count()、sizeof()
- 字符串操作:计算字符串长度strlen(),将字符串改变大小写,字符串的比较(是否区分大小写),str_replace()的使用,字符串转数组explode()
- str_replace()函数使用新的字符串$replace替换字符串$subject中的$search字符串。$count是可选参数,表示要执行的替换操作的次数。例如:
$str=“我是东软学院的学生"; $str=str_replace(“学生”,“老师”,“我是东软学院的学生”) ; //用字符串替换函数补充此句 echo $str; //输出“我是东软学院的老师"
- explode()函数可以用指定的字符串分割为一个数组。例如:
$str="使用 空格 分割 字符串"; $array=explode(" ", $str); print_r($array); //输出Array ( [0] => 使用 [1] => 空格 [2] => 分割 [3] => 字符串 )
- str_replace()函数使用新的字符串$replace替换字符串$subject中的$search字符串。$count是可选参数,表示要执行的替换操作的次数。例如:
- 数组的创建和初始化:键名、range()
-
目录与文件(考察选择题):要明白各个函数的作用
-
操作目录和文件的函数
-
-
图像处理函数:向浏览器输出图形的函数 使用imagegif()可以将图形以GIF格式输出到浏览器或文件,imagejpeg()将图形以JPEG格式输出,imagepng()函数将图形以PNG格式输出等。语法格式如下:
bool imagepng(resource $image [, string $filename ]) bool imagegif(resource $image [, string $filename ]) bool imagejpeg(resource $image [, string $filename [, int $quality ]])
-
-
PHP高级
-
函数:自定义函数(简答题)
// 例如计算a+b的函数 function sum($a, $b){ return $a+$b; }
-
类:创建类、属性和方法,创建类的实例,通过类调用类中的方法,类的三种访问控制权限public private protected
- public。声明为公用的属性和方法,可以在类的外部或内部进行访问。public是默认选项。
- private。声明为私有的属性和方法,只可以在类的内部进行访问。私有的属性和方法将不会被继承。
- protected。声明为被保护的属性和方法,只可以在类的内部和子类的内部进行访问。
- 类的创建、实例化、方法调用(一个简单地例子)
// 类的创建 class Cstu { public $number; protected $name; private $phone; public function Stuinfo(){ echo "学生信息"; } } // 类的实例化 $object=new Cstu; // 访问属性或方法 $object->number="081101"; echo $object->number; //输出"081101" $object->Stuinfo(); //输出"学生信息" $object->phone="84565879"; //本语句出错,访问权限不够
-
静态方法和属性的关键字static,访问静态属性和方法时需要使用到范围解析符“::”,格式如下:
class Cteacher{ public $num="tom"; public static $name=""; public static function setname($name){ Cteacher::$name=$name; } public static function getname(){ echo Cteacher::$name; } } Cteacher::setname("王林"); //访问setname()方法 Cteacher::getname(); //输出"王林" echo Cteacher::$name; //输出"王林"
-
定义一个抽象类的关键字abstract,它是一种特殊的类,使用关键字abstract来定义,不能被实例化。一个抽象类中至少包含一个抽象方法,抽象方法也是由abstract关键字来定义。抽象方法只提供了方法的声明,不提供方法的具体实现。例如:
<?php abstract class AbstractClass{ // 强制要求子类定义这些方法 abstract protected function getValue(); abstract protected function prefixValue($prefix); // 普通方法(非抽象方法) public function printOut() { print $this->getValue() . "\n"; } } // 子类1,继承上述抽象类 class ConcreteClass1 extends AbstractClass{ protected function getValue() { return "ConcreteClass1"; } public function prefixValue($prefix) { return "{$prefix}ConcreteClass1"; } } // 子类2,继承上述抽象类 class ConcreteClass2 extends AbstractClass{ public function getValue() { return "ConcreteClass2"; } public function prefixValue($prefix) { return "{$prefix}ConcreteClass2"; } } // 实例化子类1 $class1 = new ConcreteClass1; $class1->printOut(); echo $class1->prefixValue('FOO_') ."\n"; //实例化子类2 $class2 = new ConcreteClass2; $class2->printOut(); echo $class2->prefixValue('FOO_') ."\n"; ?> // 以下是输出结果 // ConcreteClass1 // FOO_ConcreteClass1 // ConcreteClass2 // FOO_ConcreteClass2
-
-
PHP动态网站
- 表单(不含简答题), 表单数据的提交方法主要分为两种:POST方法和GET方法。POST方法是在HTTP请求中嵌入表单数据;GET方法则将表单数据附加到请求该页的URL中。提交表单时要将表单标记<form>的属性method设为post或get,post表示使用POST方法提交,get表示使用GET方法提交。属性action指定表单提交后跳转到的URL地址,提交后页面将跳转到这个地址。例如:
<form method= "GET" action= "test.php“>
- 获取URL参数(不含简答题),URL通常的格式为:“url?参数1=值1&参数2=值2&参数3=值3…”。
在页面中使用“$_GET[‘参数’]”即可获得具体参数的值。例如:<a href=“index.php?num=11041280&name=张三”>超链接</a> 在index.php中: <?php echo $_GET[‘num’]; echo $_GET[‘name’]; ?>
- 页面跳转的方式(编程题),以下共列出6种页面跳转的方式,都有对应的代码实现。
- header()函数,只要在header()函数的参数中使用“Location:xxx”即可实现页面跳转功能。例如:
<?php $var1="sa"; $var2="sa"; if($var1==$var2) { header("Location: http://www.baidu.com"); } else echo "页面不能跳转"; ?>
- 表单,最常用的跳转页面的方法是提交表单,将<form>标记的action属性设置为要跳转到的页面,提交表单后就跳转到该页面。例如:
<form method="post" action="index.php"> <input type="text" name="test"> <input type="submit" name="bt" value="提交"> </form>
- 超链接,使用HTML的超链接标记<a>也能够实现跳转页面的功能,例如:
<?php echo “<a href=http://www.qq.com“>腾讯</a>"; ?>
- 使用按钮,使用按钮也可以进行页面跳转,只需要在按钮控件的onclick方法中设置执行的代码即可,例如:
<?php echo '<input type="button" name="bt" value="页面跳转” onclick=window.location=“index.php">'; ?>
- 使用<meta>标记,5秒之后跳转到百度页面。content属性中数字5表示5s之后跳转,url选项可以指定要跳转到的页面。如果要刷新本页面,则可以省略url选项
<!--含有URL--> <meta http-equiv="refresh" content="5;url=http://www.baidu.com”> <!--不含URL--> <meta http-equiv="refresh" content="5">
- 使用客户端脚本,在PHP中还可以使用客户端脚本实现页面的跳转,例如,在PHP中使用JavaScript跳转到index.php页面的代码如下:
<?php echo "<script>if(confirm('确认跳转页面?')) "; echo "location='index.php'</script>"; ?>
- header()函数,只要在header()函数的参数中使用“Location:xxx”即可实现页面跳转功能。例如:
- 会话管理session、注册会话变量、cookie
- 简介:Web应用通过HTTP协议进行数据传输,客户端和服务器的每次对话都被当作一个单独的过程。用户从第一个网页跳转到第二个时,信息将不被保存。
但是,假如一个需要用户输入用户名和密码的系统,在进行页面跳转时,这种信息不被保存的情况将带来麻烦。
会话管理的思想就是指在网站中通过一个会话跟着用户,记录下用户的信息,实现信息在页面间的跳转。
session:session_start(),该函数将检查SessionID是否存在,如果不存在则创建一个,并且能够使用预定义数组变量$_SESSION进行访问。如果启动会话成功则函数返回TRUE,否则返回FALSE。会话启动后就可以载入该会话已经注册的会话变量以便使用。
-
注册会话变量,会话变量保存在预定义数组$_SESSION中,所以可以以直接定义数组单元的方式来定义一个会话变量,格式如:$_SESSION["键名"]="值";定义后该会话变量保存为$_SESSION数组的一个单元,例如:
<?php $name="david"; session_start(); $_SESSION["name"]=$name; echo $_SESSION["name"]; //输出"david" // 以上代码运行后,定义的会话变量在$_SESSION数组中的键名为“name”,值为“david”。 ?>
<?php // 在一个脚本文件中访问 session_start(); if(isset($_SESSION["name"])) { echo $_SESSION["name"]; } else echo “会话变量未注册”; ?>
-
cookie:cookie有效期(秒为单位) 考题考查把秒转换为小时
<?php setcookie("user", "administrator"); //设置Cookie的名称和值 setcookie("password", "123456", time()+3600); //设置一个Cookie,1小时后失效 setcookie("name", "david", time()+3600, "\php5" ); //创建只在php5目录下有效的Cookie ?>
- 简介:Web应用通过HTTP协议进行数据传输,客户端和服务器的每次对话都被当作一个单独的过程。用户从第一个网页跳转到第二个时,信息将不被保存。
- 表单(不含简答题), 表单数据的提交方法主要分为两种:POST方法和GET方法。POST方法是在HTTP请求中嵌入表单数据;GET方法则将表单数据附加到请求该页的URL中。提交表单时要将表单标记<form>的属性method设为post或get,post表示使用POST方法提交,get表示使用GET方法提交。属性action指定表单提交后跳转到的URL地址,提交后页面将跳转到这个地址。例如:
-
数据库
- 基础:增删查改四条语句
- 创建数据库
CREATE DATABASE IF NOT EXISTS db_name;
- 删除数据库
DROP DATABASE IF EXISTS db_name
- 创建表(随便举的例子)
create table Student( StudentID char(12) not null primary key, StudentName char(8) not null, Sex char(2) not null, Birth data not null, HomeAddr varchar(80), EntranceTIme datetime default now(), ClassID char(8), foreign key(ClassID) references Classes(ClassID) );
- 删除表
USE db_name; DROP TABLE IF EXISTS tbl_name [, tb2_name]
- 向表中插入数据(根据不同的表结构决定插入什么样的数据或插入多少个数据)
USE db_name; INSERT INTO tb_name VALUES('xxx', 'xxx' , x, 'xxx', 'xxx', x, xx);
- 修改记录,UPDATE语句,基本格式如下:
UPDATE tb_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]
- 删除表中的记录
USE db_name; DELETE FROM tb_name WHERE where_definition;
- 查询记录,这里没什么好说的,更具题意查询就行了,基本结构如下:
USE db_name; SELECT column_name,column_name ,column_name... FROM tb_name;
- 创建数据库
- PHP操作数据库,一步步的代码说明,从连接到关闭连接
- 连接数据库
<?php $conn=mysql_connect(‘localhost’,‘root’,‘123456’); if($conn) echo "连接成功"; else echo "连接失败"; ?>
- 选择数据库
<?php $conn=mysql_connect ('localhost', 'root', '123456') or die('数据库服务器连接失败:'.mysql_error()); if(mysql_select_db(' db_pursey ', $conn)) echo '选择数据库成功'; ?>
- 执行SQL语句
<?php $conn= mysql_connect('localhost','root','123456') or die('连接失败'); mysql_select_db('PXSCJ', $conn) or die('选择数据库失败'); $sql="select * from XSB"; $result=mysql_query($sql); if($result) echo "SQL 语句执行成功!"; ?>
- 处理返回结果,mysql_fetch_row()函数,随便举例说明:
<?php $conn=mysql_connect('localhost','root','123456') or die('连接失败'); mysql_select_db('PXSCJ', $conn) or die('选择数据库失败'); mysql_query("SET NAMES gb2312"); $sql="select * from XSB where 学号= '081101'"; $result=mysql_query($sql); // 数组的键名默认以数字顺序分配,偏移量从0开始。 // mysql_fetch_assoc() // 获取结果集中的一行记录并保存到数组中,数组的键名为相应的字段名。 // mysql_fetch_array() // 除了将数据以数字作为键名存储在数组中外,还使用字段名作为键名存储。 // mysql_fetch_object()函数 // 从结果集中取出一行数据并保存为对象,使用字段名即可访问对象的属性。 if($row=mysql_fetch_row($result)) print_r($row); //输出:Array ([0] => 081101 [1] => 王林 [2] => 1 [3] => 1990-02-10 [4] => 计算机 [5] => 50 [6] =>) ?>
- 关闭数据库
<?php $conn=mysql_connect('localhost','root','123456') or die('连接失败'); mysql_select_db('PXSCJ', $conn) or die('选择数据库失败'); mysql_query("SET NAMES gb2312"); $sql="select * from XSB where 学号= '081101'"; $result=mysql_query($sql); // 数组的键名默认以数字顺序分配,偏移量从0开始。 // mysql_fetch_assoc() // 获取结果集中的一行记录并保存到数组中,数组的键名为相应的字段名。 // mysql_fetch_array() // 除了将数据以数字作为键名存储在数组中外,还使用字段名作为键名存储。 // mysql_fetch_object()函数 // 从结果集中取出一行数据并保存为对象,使用字段名即可访问对象的属性。 if($row=mysql_fetch_row($result)) print_r($row); //输出:Array ([0] => 081101 [1] => 王林 [2] => 1 [3] => 1990-02-10 [4] => 计算机 [5] => 50 [6] =>) mysql_close($conn) // 关闭数据库连接 ?>
- 连接数据库
- 基础:增删查改四条语句
老师复习课讲的内容
- echo strcmp("Abc","abc")
- cookie有效期为____小时
- rang(0,50,10):返回包含 "0" 至 "50" 之间并以 10 递增的元素的数组
- 注册会话变量:#_SESSION["PWD"] = $pwd;