当前位置:文档之家› 【正则表达式】和【php对文件操作】知识点

【正则表达式】和【php对文件操作】知识点

第一单元
1.php简单概述
2.b/s与c/s简单比较,区别
--a、运行环境不同(广域网、局域网)
--b、安全级别不同(低/高)
--c、用户群不同(全部用户/局部用户)
--d、系统升级不同(无缝升级/整体升级)
--e、用户开启不同(浏览器/特制软件)
--f、软件界面特点不同(信息流/用户体验)
3.php是什么:运行在服务器端的脚本语言
--Hypertext Preprocessor
--personal home page
4.php语言能做什么
--图形化用户界面程序
--服务器端运行脚本程序
5.简单特点:
--a、大小写(自己定义的类名和函数名是不区分的)
--b、分号
--c、空白符和换行符
--d、程序的注释

第二单元
1.变量的定义
--美元符号"$"加上变量名称,例如$str。
--变量名称命名规则:是由字母和下划线开始,后接任意数量的字母、数字、下划线
2.可变变量
例如:
$a = "hello";
则$$a 和 $hello 同理
3.数据类型:
四个标量类型(int,string,float,boolean)
两个符合类型(array,object)
两个资源类型(resource,NULL)
4.什么是常量
常量的值是固定的,不能随便变化的,例如圆周率、系统里边的用户名、密码等等。
5.常量名的命名规则
没有美元符号"$",名字的命名规则和变量名一样,按照习惯都是大写的
6.常量的定义
define('CIRCLE',3.14159);
7.常量的使用,直接引用
例如可以这样使用上边的变量echo CIRCLE;
还可以使用php系统里边自带的常量例如
echo __FILE__;
echo __LINE__;
8.变量和常量的区别
a.常量前面没有美元符号($);
b.常量只能用 define( ) 函数定义,而不能通过赋值语句;
c.常量可以不用理会变量范围的规则而在任何地方定义和访问;
d.常量一旦定义就不能被重新定义或者取消定义;
e.常量的值只能是标量类型。
9.php外部变量$_POST[]、$_GET[];

第三单元
1.自定义函数
2.变量的能见度
3.函数参数传递(两种)
4.代码重用(include,require,include_once,require_once)
5.递归调用
6.运算符(算术、递增/递减、比较、逻辑、位、其他)
特殊运算符
'.'是连接符
".="是连接赋值
"@"屏蔽错误信息 $link=@mySQl_connect(主机,用户名,密码)
7.流程控制(顺序、选择、循环)
8.作业,自己写一个函数,输入年份判断出当前输入参数是否是闰年

第四单元
1.数组按照键名分索引和关联
2.数组赋值方式(一维、二维)
3.遍历数组方式:foreach while/list/each
4.数组和栈的操作
array_push(目标数组,字符串)将字符串压入数组的最后
array_pop(目标数组)将数组最后的元素弹出并返回
5.数组和队列的操作
array_unshift(目标数组,字符串)将字符串放到数组的开始位置
array_shift(目标数组)删除数组的第一个元素并返回
6.数组和指针的操作
7

.数组常用函数count()、array_sum()、in_array()、extract()、
array_unique()、sort()、rsort()、array_flip() print_r()
isset()检查变量是否被定义
empty()检查变量是否为空
unset()删除变量
8.了解函数array_change_key_case(目标数组,型态常数)
会将目标数组索引值中所有字符串索引的英文字母转换为大写或小写CASE_UPPER/CASE_LOWER
array_chunk()分隔数组 以指定的个数分割
array_count_values()计算目标数组中各值出现次数
array_filter()利用指定的函数挑选数组元素
数组的合并array_merge() Array_merge_recursive()
差集Array_diff() Array_diff_assoc()
交集array_intersect() Array_intersect_assoc()
9.预定义数组($_GET $_POST $_FILES $_COOKIE $_SESSION)
10.get、post用法


第五单元
1.字符串的三种定义方式(单引号、双引号、定界符)
---单引号定义(转义\' \\)【单引号和反斜线】
---双引号定义(转义\n \r \t \$ \\ \")
---定界符方法<<
2.函数部分
explode/implode
substr()
str_replace/trim/ltrim/rtrim

strchr(str, search)获得指定字符串最开始出现到字符串最后的内容strstr
strrchr(str, search)获得指定字符串最后出现到最后的内容
strpos(str, search)获得指定字符串最开始出现的位置
strrpos(str, search)获得指定字符串最后出现的位置
ucfirst(str)将字符串第一个字母大写
ucwords(str)将字符串的每个单词的第一个字母大写
strlen(str)获得字符串长度
strcmp(str1, str2)比较两个字符串大小,
返回负数表示 str1 小于 str2;
返回正数表示 str1 大于 str2;
返回零表示二字符串相同
strtr()字符串翻译
--strtr(str, mode, replace)
--strtr(str,array)

urlencode(str)替换所有非字母数字(-_.)的字符,变为%后面跟两位16进制数,空格变为+号
urldecode(str)对已%##编码的URL进行解析还原
parse_url(str)解析完整的url转变为为数组
parse_str(str,out)解析请求字符串转变为数组
htmlspecialchars()转换html代码为实体代码
printf/sprintf %b %d %c %x %s %f %X


第六单元
1.正则表达式的组成
原子
元字符
模式修正符
2.正则表达式的作用
--从字符串中析取信息
--文本替换
--将字符串拆分为更小的信息块(explode)
3.正则的简单语法:两个反斜线"//"之间定义
4.两套正则表达式匹配函数库
--- 一套是由PCRE(Perl Compatible Regular Expression)库提供的。
使用“preg_”为前缀命名的函数
--- 一套由POSIX(Portable Operation System interface)扩展提供的。
使用以“ereg_”为前缀命名的函数
用preg_打头的即可(效率高、速度快)

5.转义字符(原子)
【\d \D \w \W \s \S \n \r \t】
\d 匹配一个数字;等价于[0-9]
\D 匹配除数字以外任何一个字符;等价于[^0-9]
\w 匹配一个英文字母、数字或下划线

;等价于[0-9a-zA-Z_]
\W 匹配除英文字母、数字和下划线以外任何一个字符;等价于[^0-9a-zA-Z_]
\s 匹配一个空白字符;等价于[\f\n\r\t\v]
\S 匹配除空白字符以外任何一个字符;等价于[^\f\n\r\t\v]
\n 匹配一个换行符;等价于 \x0a 或 \cJ
\r 匹配一个回车符等价于\x0d 或 \cM
\t 匹配一个制表符;等价于 \x09\或\cl
6.元字符
【* + ? . | ^ $ \b \B [] [^] () {m} {m,n} {m,}】
--- * 0次、1次或多次匹配其前的原子
--- + 1次或多次匹配其前的原子
--- ? 0次或1次匹配其前的原子
--- . 匹配任何一个字符(换行符\n外的任何字符)
--- | 匹配两个或多个选择
--- ^或\A 配字符串串首的原子
--- $或\Z 匹配字符串串尾的原子
--- \b 匹配单词的边界
--- \B 匹配除单词边界以外的部分
--- [] 匹配方括号中的任一原子---------原子表
--- [^] 匹配除方括号中的原子外的任何字符
--- () 整体表示一个原子-------------模式单元
--- {m} 表示其前原子恰好出现m次
--- {m,n} 表示其前原子至少出现m次,至多出现n次(n>m)
--- {m,} 表示其前原子出现不少于m次
7.重复使用的模式单元
8.模式匹配优先级
- ()------------------模式单元
- ?*+{}---------------重复匹配
- ^ $ \b \B ----边界限制
- | ------------------模式选择
9.模式修正符(i大小 m多行 s单行 x忽略空白 U就近匹配 e)
10.函数部分
preg_match
preg_match_all
preg_replace
preg_split(模式,目标内容)
preg_grep(模式,目标数组)
11.练习1-266 正则表达式
12.作业,自己写一个模式,可以匹配ip地址(1-223.0-255.0-255.0-255)

第七单元
date(format,[timestamp])
格式化时间信息,并返回

mktime(hour,minute,second,month,day,year)
mktime(小时,分钟,秒,月,天,年)
取得一个日期的 Unix 时间戳

header()发送http头信息
-header("content-type:text/html; charset=utf-8");-------------------//当前页面输出内容是html,编码为utf-8格式
-
-header("content-type:image/png");----------------------------------//当前页面输出内容的格式是图片
-header("refresh:5;url=https://www.doczj.com/doc/5a8677938.html,/five/string.php");--//页面5秒后要跳转到新网址
-header("location:https://www.doczj.com/doc/5a8677938.html,/five/string.php");-----------//页面重定向
mt_rand(65,94)获得随机数
chr(mt_rand(65,94))随机获得字母
ord(chr(mt_rand(65,94)))将字母转化为数字
basename(路径名)获得路径中文件名部分
strtolower转换小写
strtoupper转换大写

第八单元
*mysql_connect(主机,用户名,密码) 打开一个到 MySQL 服务器的连接
*mysql_select_db(数据库,连接数据库资源) 选择 MySQL 数据库
*mysql_query("set names utf8");设定字符集
*mysql_close() 关闭 MySQL 链接

*mysql_query(语句) 发送并执行一条sql语句
mysql_fetch_row(结果资源)从结果集中取得一行结果(索引数组)
mysql_fetch_assoc(结果资源)从结果集中取得一行结果(关联数组)
*mysql_fetch_array(结果资源)从结果集中取得一行结果(索引/关联数组)
mysql_fetch_object(结果资源)从结果集中取得一行结果(对象数组)

mysql_errno()返回错误号码
*mysql_error()返回错误信息
*mysql_num_rows(结果资源)用于计算查询结果中所得行的数目
*mysql_affected_rows()获得受影响的结果数目
*mysql_insert_id()传回最后一次使用 INSERT 指令产生的自动增长 ID 值

mysql_result(结果集,索引行,字段)指定获取结果
mysql_free_result(结果资源)释放结果集
mysql_num_fields(结果资源)用于计算查询结果中所得列的数目
mysql_fetch_field(结果资源)从结果集中取得列的结果,以对象形式返回

mysql_pconnect()永久连接数据库
作业:
1.建立一个数据库user
2.数据库里边建立一个数据表student
id int 主键、自增
name varchar 姓名
addr varchar 地址
sex varchar 性别
3.实现通过html表单写入数据到数据库
id name addr sex
1 张三 北京 男
2 李四 上海 男
3 王五 天津 女
4.(自选)将写入的数据展现到页面

第九单元
fopen(文件,打开模式)打开文件
-fopen(filename,'r')--------------------只读方式打开,指针指到文件头
-fopen(filename,'r+')-------------------读写方式打开,指针指到文件头
-fopen(filename,'w')--------------------读写方式打开,清空文件,不存在会创建
-fopen(filename,'w+')-------------------读写方式打开,清空文件,不存在会创建
-fopen(filename,'a')--------------------追加写方式打开,指针指到文件尾,不存在会创建
-fopen(filename,'a+')-------------------追加读写方式打开,指针指到文件尾,不存在会创建
-fopen(filename,'x')--------------------以创建写方式打开,文件存在会报错
-fopen(filename,'x+')-------------------以创建读写方式打开,文件存在会报错
fclose(文件指针)--------------------------关闭文件
fread(文件指针,读取长度)--------------------文件的读取
fwrite(文件指针,字符串,[写入字符串长度])--------往文件写入内容
rewind(文件指针)--------------------------恢复指针的位置(重置) reset

feof(文件指针)----------------------------测试文件指针是否到了文件结束位置
ftell(文件指针)---------------------------返回文件指针读/写位置[偏移量]
opendir(目录路径)-------------------------打开目录
readdir(目录资源)-------------------------从目录中读取信息
file(文件名称)---------------------------把整个文件读入一个数组,数组中每个单元都是文件中的一行(不需要用fopen)
readfile(

文件名称)-----------------------输出一个文件(不需要用fopen)
copy(源文件,目的文件)----------------------拷贝文件
unlink(文件名称)--------------------------删除文件
rename(旧文件名,新文件名)-------------------给文件改名字

chmod(文件名称,权限常数)-------------------修改文件的权限 777 064 444
-->chmod 777 filename
4 2 1
rwx r-x r-- 754
拥有者 组 其他用户
chown(文件名称,使用者)--------------------改变文件的所有者/群组
-->chown 拥有者.所属组 filename
chgrp(文件名称,群组名称)-------------------改变文件的所属组
-->chgrp 所属组 filename
fileowner(文件名称)-----------------------取得文件的所有者

filectime(文件名称)-----------------------取得文件的创建时间
filemtime(文件名称)-----------------------取得文件的修改时间
fileatime(文件名称)-----------------------取得文件上次访问时间
mkdir(目录名)----------------------------创建文件夹
rmdir(目录名)----------------------------删除文件夹
pathinfo(文件名称)------------------------以数组方式返回文件路径信息
file_get_contents(文件名)----------------将整个文件读入一个字符串
file_put_contents(文件名,data)-----------将一个字符串写入文件

以下函数较简单
file_exists(文件名称)---------------------检查文件或目录是否存在
filesize(文件名称)------------------------取得文件大小
filetype(文件名称)------------------------取得文件类型
is_dir(名称)-----------------------------判断给定文件是否是一个目录
is_executable(名称)----------------------判断文件是否可以执行 r w x 4 2 1
is_file(文件名称)-------------------------判断文件名是否是一个正常文件
is_link(文件名称)-------------------------判断文件是否是一个符号链接 ln
is_readable(文件名称)---------------------判断文件是否可读
is_writable(文件名称)---------------------判断文件是否可以写

fseek(文件指针,偏移量,参考位置)-------------在文件中设定指针位置
参考位置:
-SEEK_SET 以起始位置为参考
-SEEK_CUR 以当前位置为参考
-SEEK_END 以尾位位置为参考

第十单元
上传
upload.html
upload.php
enctype="multipart/form-data"
$_FILES 接收上传附件信息
具体接收到的信息有:
$_FILES['userfile']['name']附件原名字
$_FILES['userfile']['type']附件类型
$_FILES['userfile']['error']附件错误信息
1.大小超过php.ini限制
2.大小超过MAX_FILE_SIZE限制
3.只上传了部分文件
4.没有上传文件
$_FILES['userfile']['tmp_name']附件临时路径名
$_FILES['userfile']['size']附件大小
附件上传函数
move_uploaded_file(附件临时路径名,附件新的路径名)

下载
1、普通连接下载
下载附件

2、专业下载
header("Content-Type: application/octet-stream");//输出类型是八进制流
header("Accept-Ranges:bytes");//接收范围最小单位是字节
header("Content-Disposition:attachment;filename="下载文件起新名字);//给下载文件起名字
readfile(要下载的文件);

附加内容:
bbs系统开发---留言板

bbs(数据库)
leave_word(留言表)
字段 类型
id int
title varchar(30)
content text
itime datetime

back_word(回复表)
字段 类型
id int
leave_id int
content text
btime datetime

添加留言,添加留言表单、接收表单数据的处理页面
留言列表显示
留言的详细展示,在首页制作一个“详细”按钮,通过get方式在按钮上传递留言id
留言回复,利用隐藏域传递留言id
回复列表显示

修改留言,在首页制作一个“修改”按钮,通过get方式在修改按钮上传送被修改留言的id
修改表单和逻辑页面可以利用隐藏域传送留言id
删除留言,利用get方式传送被删除留言的id
客服代表则"客服代表"四个字在一行显示不换行

相关主题
文本预览
相关文档 最新文档