PHP复习.docx
- 文档编号:11090172
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:21
- 大小:25.83KB
PHP复习.docx
《PHP复习.docx》由会员分享,可在线阅读,更多相关《PHP复习.docx(21页珍藏版)》请在冰豆网上搜索。
PHP复习
PHP复习
注:
特意总结了PHP会考的内容仅供参考。
希望大家都不挂科~
希望有其他科目复习总结的能共享一下~
但请别打小抄,手下留情啊TVT,不然老好人以后真的当不起啊
一、问答题
(1)PHP的配置文件
配置文件的修改:
在记事本中打开PHP配置文件,所在目录为./wamp/php中的php.ini文件,它记录了PHP的配置信息,通过修改其中的代码,会影响PHP有关功能的运行。
基本操作是将off改为on,使相关的配置打开。
例:
查找“display_errors=Off”所在的单独的一行,将“display_errors=Off”修改为“display_errors=On”,这样PHP代码产生错误时会将错误显示在浏览器上,有助于错误调试。
确认修改后,保存配置文件,重启Apache服务,以上设置就会生效。
(2)页面跳转
常用的页面跳转方法有三种:
使用header()函数、使用HTML标记和使用客户端脚本实现。
使用这些方法能够使页面跳转到目标页面。
1.使用header()函数
header()函数的参数中使用“Location:
xxx”即可实现该功能。
例:
header(“Location:
”);
或者本地文件
header(“Location:
index.php”);
2.使用HTML标记
●最常用的跳转页面的方法是提交表单,将
●使用HTML的标记也能够实现页面跳转功能。
例:
php
echo“
?
>
●使用按钮也可以进行页面的跳转,只需要在按钮控件的onclick方法中设置执行的代码即可。
例:
php
echo“
?
>
●使用HTML实现页面跳转的另外一种方法是使用标记。
例:
//以上代码作用是5s之后跳转到index.php页面。
Content属性中数字改为0则表示立即跳转,url选项可以指定要跳转的页面。
如果要刷新本页,可省略url选项。
3.使用客户端脚本
在PHP中使用JavaScript跳转到index.php页面
php
echo“”;
?
>
(3)单引号与双引号的区别
单引号定义的字符串中出现的变量和转义序列(转义序列就是\n、\t等)不会被变量的值代替,而双引号中使用的变量名在显示时会显示变量的值。
(4)COOKIE的用法
Cookie是用户浏览网站时,客户端存放在用户机器中的一个文本文件,其中保存了用户访问网站的私有信息。
当用户下次访问网站时,网站的脚本文件就可以读取这些信息了。
普通用户的Session在浏览器关闭后就失效了,而保存在Cookie中的Session允许在Cookie的有效期内保留。
1.创建Cookie
boolsetcookie(stringname[,stringvalue[,intexpire[,stringpath[,stringdomain[,boolsecure]]]]])
例:
php
setcookie("user","administrator");//设置Cookie的名称和值
setcookie("password","123456",time()+3600);//设置一个Cookie,1小时后失效
setcookie("name","david",time()+3600,"\php5");//创建只在php5目录下有效的Cookie
setcookie("number","001",time()+3600,"","");//创建在有效的Cookie
?
>
表格1.setcookie()参数详解
参数
说明
举例
name
Cookie的名字。
使用$_COOKIE['cookiename']调用名为cookiename的cookie。
value
Cookie的值。
此值保存在客户端,不要用来保存敏感数据。
假定name是'cookiename',可以通过$_COOKIE['cookiename']取得其值。
expire
Cookie过期的时间。
这是个Unix时间戳,即从Unix纪元开始的秒数。
换而言之,通常用time()函数再加上秒数来设定cookie的失效期。
或者用mktime()来实现。
time()+60*60*24*30将设定cookie30天后失效。
如果未设定,cookie将会在会话结束后(一般是浏览器关闭)失效。
path
Cookie在服务器端的有效路径。
如果该参数设为'/'的话,cookie就在整个domain内有效,如果设为'/foo/',cookie就只在domain下的/foo/目录及其子目录内有效,例如/foo/bar/。
默认值为设定cookie的当前目录。
domain
该cookie有效的域名。
要使cookie能在如域名下的所有子域都有效的话,该参数应该设为''。
虽然.并不必须的,但加上它会兼容更多的浏览器。
如果该参数设为的话,就只在www子域内有效。
细节见Cookie规范中的tailmatching。
secure
指明cookie是否仅通过安全的HTTPS连接传送。
当设成TRUE时,cookie仅在安全的连接中被设置。
默认值为FALSE。
0或1
2.访问Cookie
通过setcookie()函数创建的Cookie是作为数组的单元,存放在预定义变量$_COOKIE中的。
也就是说,直接对$_COOKIE数组单元进行赋值也可以创建Cookie。
但$_COOKIE数组创建的Cookie在会话结束后就会失效。
例:
php
setcookie("name","王林");
$_COOKIE["number"]="081101";
print_r($_COOKIE);
//输出:
Array([name]=>王林[number]=>081101)
?
>
(5)时间戳
1.UNIX时间戳
在了解日期和时间类型的数据时需要了解UNIX时间戳的意义。
在当前大多数的UNIX系统中,保存当前日期和时间的方法是:
保存格林尼治标准时间从1970年1月1日零点起到当前时刻的秒数,以32为整列表示。
1970年1月1日零点也称为UNIX纪元。
在Windows系统下也可以使用UNIX时间戳,简称为时间戳,但如果时间是在1970年以前或2038年以后,处理的时候可能会出现问题。
PHP在处理有些数据,特别是对数据库中时间类型的数据进行格式化时,经常需要先将时间类型的数据转化为UNIX时间戳再进行处理。
另外,不同的数据库系统对时间类型的数据不能兼容转换,这时就需要将时间转化为UNIX时间戳,再对时间戳进行操作,这样就实现了不同数据库系统的跨平台性。
2.时间转化为时间戳
如果要将用字符串表达的日期和时间转化为时间戳的形式,可以使用strtotime()函数。
语法格式如下:
intstrtotime(string$time[,int$now])
例:
php
echostrtotime('2009-03-05');//输出1236211200
echostrtotime('2009-03-0510:
24:
30');//输出1236248670
echostrtotime("10September2000");//输出968544000
?
>
注意:
如果给定的年份是两位数字的格式,则年份值0~69表示2000~2069,70~100表示1970~2000。
另一个取得日期的UNIX时间戳的函数是mktime()函数,语法格式如下:
intmktime([int$hour[,int$minute[,int$second[,int$month[,int$day[,int$year]]]]]])
说明:
$hour表示小时数,$minute表示分钟数,$second表示秒数,$month表示月份,$day表示天数,$year表示年份,$year的合法范围是1901~2038之间,不过此限制自PHP5.1.0起已被克服了。
如果所有的参数都为空,则默认为当前时间。
例:
php
$timenum1=mktime(0,0,0,8,12,2007);//2007年8月12日
$timenum2=mktime(3,20,0,9,20,98);//1998年9月20日3时20分
?
>
(6)发布方式
如需局域网内其他计算机访问,首先单击Wamp的图标,于弹出的菜单中选择PutOnline;其他计算机访问时,将localhost替换为服务器IP地址即可。
(7)正则表达式
PHP支持两种风格的正则表达式语法:
POSIX和Perl(在书P107-114)
1.功能
●测试字符串的某个模式:
数据有效性验证
●替换文本:
可以在文档中使用一个正则表达式来标志特定字符串,然后可以全部将其删除,或者替换为别的字符串
●根据模式匹配从字符串中提取一个子字符串:
可以用来在文本或输入字段中查找特定字符串
2.实验题
写出匹配身份证号码、QQ号码、中文的正则表达式。
答:
身份证:
^[0-9]{17}([0-9]|X|Y)$
QQ号码:
^[1-9][0-9]{4,}$
中文:
[u4e00-u9fa5]
Email:
^[a-zA-Z0-9\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$
(这种题自己去网上搜一些吧,我觉得考这种题的可能性比较大……POSIX和Perl两种格式的最好都搜一下)
(8)修改端口
找到Apache安装目录下conf目录下的httpd.conf文件。
打开它,找到“Listen”,紧接着Listen的数字就是端口号,默认状态下为“Listen80”。
在安装配置Apache时会遇到端口与IISHTTP端口冲突的问题,因为IISHTTP端口默认也为80。
那么我们就可以在这里改变Apache的端口,从而避免冲突,比如可以改成:
Listen8011。
改好之后重起Apache服务使得配置生效。
(9)时间函数
1.获取日期和时间
●date()函数
PHP中最常用的日期和时间函数就是date()函数,该函数的作用是将时间戳按照给定的格式转化为具体的日期和时间字符串,语法格式如下:
stringdate(string$format[,int$timestamp])
说明:
$format指定了转化后的日期和时间的格式,$timestamp是需要转化的时间戳,如果省略则使用本地当前时间,即默认值为time()函数的值。
time()函数返回当前时间的时间戳。
例:
echotime();//输出当前时间的时间戳
date函数的$format参数。
例如:
php
echodate('jS-F-Y');//输出5th-March-2009
echodate('Y-m-d');//输出2009-03-05
echodate('lM',strtotime('2008-08-08'));//输出FridayAug
echodate("l",mktime(0,0,0,7,1,2000));//输出Saturday
echodate('U');//输出当前时间的时间戳
?
>
●2.getdate()函数
使用getdate()函数也可以获取日期和时间信息,语法格式如下:
arraygetdate([int$timestamp])
说明:
$timestamp是要转化的时间戳,如果不给出则使用当前时间。
函数根据$timestamp返回一个包含日期和时间信息的数组,数组的键名和值如下表所示。
键名
说明
值的例子
seconds
秒的数字表示
0~59
minutes
分钟的数字表示
0~59
hours
小时的数字表示
0~23
mday
月份中第几天的数字表示
1~31
wday
星期中第几天的数字表示
0(表示星期天)~6(表示星期六)
mon
月份的数字表示
1~12
year
4位数字表示的完整年份
例如:
1999或2003
yday
一年中第几天的数字表示
0~365
weekday
星期几的完整文本表示
Sunday~Saturday
month
月份的完整文本表示
January~December
0
自UNIX纪元开始至今的秒数
系统相关,典型值从2147483648~2147483647
2.日期和时间的计算
由于时间戳是32位整型数据,所以通过对时间戳进行加减法运算可计算两个时间的差值。
例如:
php
$oldtime=mktime(0,0,0,9,24,2008);
$newtime=mktime(0,0,0,10,12,2008);
$days=($newtime-$oldtime)/(24*3600);//计算两个时间相差的天数
echo$days;//输出18
?
>
二、读程序
也许包括但不限于这些。
(1)echo()
●例题1
在PHP程序中,间隔字符,如换行(回车)、空格和tab(制表符),都被认为是空格。
在HTML中空格字符将被忽略,在PHP中同样如此。
多个空格显示时只显示一个空格,例如:
php
echo"Hello";
echo"world";
?
>
上面代码输出的结果为“Helloworld”
●例题2
单引号定义的字符串中出现的变量和转义序列(转义序列就是\n、\t等)不会被变量的值代替,而双引号中使用的变量名在显示时会显示变量的值。
php
$str="加油";
echo'中国$str!
';//输出:
中国$str!
echo"中国$str!
";//输出:
中国加油!
?
>
●例题3
字符串的连接:
使用字符串连接符“.”可以将几个文本连接成一个字符串,前面已经用过。
通常使用echo命令向浏览器输出内容时使用这个连接符可以避免编写多个echo命令。
例如:
php
$str="PHP变量";
echo"连接成"."字符串";//字符串与字符串连接
echo$str."连接字符串";//变量和字符串连接
?
>
输出:
连接成字符串
输出:
PHP变量连接字符串
(2)print()
●例题1
echo()函数和print()函数并不是完全一样,二者还存在一些区别:
print()具有返回值,返回1,而echo()则没有,所以echo()比print()要快一些,也正是因为这个原因,print()能应用于复合语句中,而echo()则不能。
例如:
$return=print"test";
echo$return;//输出1
另外,echo可以一次输出多个字符串,而print则不可以。
例如:
echo"I","love","PHP";//输出"IlovePHP"
print"I","love","PHP";//将提示错误
(3)alert()
●例题1
php
echo"";
?
>
(4)array()&print_r()
●例题1
php
$array=array("a"=>5,"b"=>10,20);
print_r($array);
/*输出结果为:
Array([a]=>5[b]=>10[0]=>20)
*/
?
>
●例题2
php
$array=array(1,1,1,1, 1,8=>1, 4=>1,19,3=>13);
print_r($array);
/*输出结果为:
Array([0]=>1[1]=>1[2]=>1[3]=>13[4]=>1[8]=>1[9]=>19)
*/
?
>
●例题3
php
$array1=array("黄色","蓝色","黑色");
echo$array1[1];//输出"蓝色"
$array2=array("a"=>5,"b"=>10,"c"=>15);
echo$array2["b"];//输出10
?
>
●例题4
php
$array=array(
"color"=>array("红色","蓝色","白色"),
"number"=>array(1,2,3,4,5,6)
);//定义二维数组$array
echo$array["color"][2];//输出数组元素,输出结果为"白色"
print_r($array);//打印二维数组
/*输出结果为:
Array([color]=>Array([0]=>红色[1]=>蓝色[2]=>白色)
[number]=>Array([0]=>1[1]=>2[2]=>3[3]=>4[4]=>5[5]=>6))
*/
?
>
(5)foreach()
●例题1
php
$color=array("a"=>"red","blue","white");
foreach($coloras$value)
{
echo$value."
";//输出数组的值
}
foreach($coloras$key=>$value)
{
echo$key."=>".$value."
";//输出数组的键名和值
}
?
>
/*第一个foreach输出结果:
red
blue
white
*/
/*第二个foreach输出结果:
a=>red
0=>blue
1=>white
*/
(6)list($key,$value)
●例题1
while循环、list()和each()函数结合使用就可以实现对数组的遍历。
list()函数的作用是将数组中的值赋给变量,each()函数的作用是返回当前的键名和值,并将数组指针向下移动一位。
例如:
php
$arr=array(1,2,3,4,5,6);
while(list($key,$value)=each($arr))//直到数组指针到数组尾部时停止循环
{
echo$value;//输出123456
}
?
>
●例题2
如果数组是多维数组(假设为二维数组),则在while循环中多次使用list()函数。
例如:
php
$t_array=array(
array("081101","王林","计算机"),
array("081102","程明","计算机"),
array("081210","李红庆","通信工程")
);
//以表格形式输出数组的值
echo" ";学号 姓名 专业
while(list($key,$value)=each($t_array))
{
list($XH,$XM,$ZY)=$value;//将二维数组中的单个数组中的值用变量替换
//输出变量的值
echo"
}
echo"";//输出表格结尾
?
>
/*输出结果为表格形式,单元格内输出如下:
081101王林计算机
081102程明计算机
081210李红庆通信工程
*/
(7)fopen()、fwrite()、fclose()
●例题1
php
$handle=fopen("D:
/data/index.txt","w+");//打开index.txt文件,不存在则先创建
$num=fwrite($handle,"北京2008奥运会",10);
if($num)
{
echo"写入文件成功
";
echo"写入的字节数为".$num."个";//成功写入的字符个数为10个
fclose($handle);//关闭文件
}
else
echo"文件写入失败";
?
>
/*输入到文件中的结果为
北京2008奥
*/
(8)fread()
●例题1
php
$handle=fopen("","rb");//打开一个远程文件
$content="";//将字符串$content初始化为空
while(!
feof($handle))//判断是否到文件末尾
{
$data=fread($handle,8192);//读取文件内容
$content.=$data;//将读取到的数据赋给字符串
}
echo$content;//输出内容
fclose($handle);//关闭文件
?
>
(9)session_start()、isset()
●例题1
php
session_start();
if(isset($_SESSION["name"]))
{
echo$_SESSION["name"];
}
else
echo"会话变量未注册";
?
>
(10)strlen()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP 复习
![提示](https://static.bdocx.com/images/bang_tan.gif)