PHP学习笔记(3)

一、正则表达式

正则表达式是由普通字符和特殊字符组成的字符串,描述了一类字符串的特征,然后通过这个特征可以配合一些特定的函数,来完成对字符串更加复杂的一系列操作!

例如: / a / 就是一个正则表达式

二、定界符

一般习惯使用正斜线/作为定界符

除了字母、数字、和反斜线以外的字符都可以作为定界符,如:
#
!
{}
|

定界符要放在表达式的起始位置,前后一致

三、普通字符

如:a-z、A-Z、单引号,双引号

四、元字符

元字符是指正则表达式中有特殊含义的字符

常见的一些元字符:

\d 	匹配任意一个十进制数字,等价于0-9

\D 	匹配任意一个除十进制数字以外的字符

\s 	匹配任意一个空白字符,如:换页符、换行符、回车符、制表符、垂直制表符

\S 	匹配除空白字符以外的任意一个字符

\w 	匹配任意一个数字或字母或下划线

\W 	匹配除数字或字母或下划线的任意一个字符

. 	匹配除换行符以外的任意一个字符

* 	匹配0次、或1次、或多次其前面的字符
* 
+ 	匹配1次或多次其前面的字符
+ 
? 	匹配0次或1次其前面的字符

{n} 	表示其前面的字符恰好出现n次

{n,} 	表示其前面的字符出现的次数不少于n次

{n,m}	 表示其前面的字符至少出现n次,最多出现m次

.*配合使用,默认情况下是贪婪匹配(尽可能多的去匹配字符)

.*后面加一个 ? 可以解决贪婪匹配的问题,懒惰匹配

^ 或 \A 匹配字符串开始位置(该符号应放在开头)(目标字符串在开头时才能匹配到)

$ 或 \Z 匹配字符串结束位置(该符号应放在末尾)(目标字符串在末尾时才能匹配到)

^和$配合使用 只能匹配到^和$中间的字符串

| (或),可以匹配到|连接的任意一个字符串

[] 可以匹配括号中任意的一个字符

[^] 可以匹配除括号中的字符以外的任意一个字符 

() 把括号中的内容作为一个整体以便获取

在末尾加\\数字,\\数字代表第几个括号里的内容

五、模式修正符

模式修正符是放在正则表达式的定界符之后的,用于增强正则表达式的处理能力,可多个搭配使用。

常见模式修正符

i 匹配时不分大小写

 m 多行匹配
 	
 	使用条件:
 		1)目标字符串中必须包含"\n"(字符串中的"\n"表示新一行的开始)
 		2)正则表达式中必须出现^或$
 	
 	基础知识:
 		Windows中的换行是通过(\r\n)来实现的
 		Linux中的换行是通过(\n)来完成的
		
s 可以让 . 匹配所有字符包括换行符(\n)

U 禁止贪婪匹配	

六、与正则表达式配合的函数

1、preg_match()//执行一次正则表达式匹配(只要匹配到第一个符合要求的,就结束匹配)
第一个参数:正则表达式
第二个参数:目标字符串
第三个参数(可选):如果传入则会被填充为搜索结果
第四个参数(可选):可以传PREG_OFFSET_CAPTURE进入
第五个参数(可选):可以传一个数字,来表示从目标字符串的哪个位置开始搜索(从0开始数)

2、preg_match_all()//执行一个全局表达式匹配(从字符串开头匹配到末尾,把符合的要求的全都匹配出来)

3、preg_replace()//执行一个正则表达式的搜索和替换
第一个参数:正则表达式
第二个参数:要替换成的字符串
第三个参数:目标字符串
第四个参数(可选):默认是-1,就是替换所以符合特征的部分
第五个参数(可选):可以放一个变量在里面,将会被填充为完成的替换次数

七、时间和日期

1、设置时区

deta_default_timezone_set('Asia/Shanghai');

2、获取当前Unix时间戳

time();//返回自从Unix纪元(格林威治时间1970年1月1日00:00:00到当前时间的秒数

3、获得指定时间点的时间戳

mktime($hour,$minute,$second,$month,$day,$year);

4、从Unix时间戳取得时间日期信息

date()//格式化一个本地时间/日期

第一个参数(必填):写上你需要的时间日期格式

data('Y-m-d G:i:s')

5、获取Unix时间和微妙数

microtime()//返回当前Unix时间戳和微妙数

八、图像处理

1、创建图像

1)新建一个图像

imagecreatetruecolor($width,$height)//新建一个真彩色图像

width:图像的宽

height:图像的高

2)打开服务器或网络文件中已经存在的GIF,PNG,JPEG,WBMP

imahecreatefromjpeg();

imahecreatefrompng();

imahecreatefromgif();

imahecreatefromwbmp();
创建或打开失败时会返回空字符串,并且输出一条错误信息

imahesx()//输出画布宽度

imahesy()//输出画布高度

getimagesize()//取得图像大小

2、绘制图像

绘图函数:

1)imagecolorallocate($img,$red,$green,$blue)//分配颜色

2)imagefill()//区域填充

3)imagesetpixel()//画一个单一像素

4)imageline()//画一条线段

5)imagerectangle()//画一个矩形

6)imagestring()//水平低画一行字符串

7)imagettftext()//用TrueType文字所占区域

8)imagettfbbox()//计算TrueType文字所占区域

9)imagecopy()//拷贝图像的一部分

10)imagecopymere()//拷贝并合并图像的一部分

11)imagecopyresampled()//从采样拷贝部分图像并调整大小

3、生成图像

header('Content-type:image/jpeg');(在此函数之前不能输出任何内容,该函数放在开头,告诉浏览器以image/jpeg的方式来读)

imagegif()

imagejpeg($img,'图像要保存的名字')(还可以写要保存的路径)

imagepng()

imagewbmp()

4.释放资源

imagedestroy($img)

九、文件与目录操作

1、判断文件和目录

1)is_file()//判断给等文件名是否为一个正常文件

2)is_dir()//判断给定文件名是否是一个目录

2、文件属性

1)file_exists()//检查文件或目录是否存在

2)filesize()//取得普通文件大小

3)is_readable()//判断给定文件名是否可读

4)is_writable()//判断给定文件名是否可写

5)filectime()//获取文件的创建时间

6)filemtime()//获取文件的修改时间

7)fileatime()//取得文件的上次访问时间

8)stat()//获取文件大部分属性值

3、目录的基本操作

1)basename()//返回路径中的文件名部分

2)dirname()//返回路径中的目录部分

3)pathinfo()//返回文件路径的信息

4)opendir()//打开目录句柄

5)readdir()//从目录句柄中读取条目,返回目录中下一个文件的文件名

6)rewinddir()//倒回目录句柄

7)closedir()//关闭目录句柄

8)mkdir()//新建目录

9)rmdir()//删除指定的空目录

10)scandir()//列出指定路径中的文件和目录

4、文件的基本操作

1)fopen()//打开文件或URL

2)fread()//读取文件

3)fgets()//从文件指针中读取一行

4)feof()//测试文件指针是否到了文件结束位置

5)fwrite()//写入文件

6)rewind()//倒回文件指针的位置

7)flock()//轻便的咨询文件锁定

8)ftruncate()//将文件截断到给定的长度

9)fclose()//关闭一个已打开的文件指针

10)file()//把整个文件读入一个数组中

11)copy()//拷贝文件

12)unlink()//删除文件

13)file_get_contents()//将整个文件读入一个字符串

14)file_put_contents()//将字符串写入文件中

15)rename()//重命名一个文件或目录

16)readfile()//读入一个文件并写入到输出缓冲

五、文件上传

1、与上传有关的php配置选项(php.ini)

file_uploads(默认为on):确定服务器上的PHP脚本是否可以接受HTTP文件上传

memory_limit:设置脚本可以分批的最大内存量(防止失控的脚本独占服务器内存)

upload_max_filesize:限制上传文件的最大值,此值必须小于post_max_size的值

post_max_size:限制通过POST方法可以接受的最大信息量

upload_tmp_dir(默认为NULL):上传文件存放的临时路径

2、$_FILES多维数组,用于存储各种与上传有关的信息

$_FILES['file']['name']  文件的原名称,拓展名

$_FILES['file']['size']  上传文件的大小

$_FILES['file']['tmp_name']  文件上传后的临时名称

$_FILES['file']['error']    文件上传时产生的错误
0:没有错误
1:上传文件的大小超出了upload_max_filesize的值
2:上传文件的大小超出了html表单中MAX_FILE_SIZE的值
3:文件只被部分上传
4:没有上传文件
$_FILES['file']['type']//获取上传文件的MIME类型

3、有关php文件上传处理的函数

1)is_upload_file()判断文件是否是通过POST上传的

2)move_upload_file()文件上传后,可以使用该函数将文件移动到指定位置

4、文件上传

文件的上传是通过html标签中的from标签来实现的

<?php
header('Content-type:text/html;charset=utf-8');
var_dump($_FILES);
?>
<!DOCTYPE html>
<html>
<head>
	<title>文件上传</title>
	<meta charset="utf-8" />
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
	<input type="file" name="myfile" />
	<input type="submit" name="submit" value="文件上传" />
</form>
</body>
</html>

六、文件下载

<?php
$file='';//里面填下载的文件的名称

$fileinfo=finfo_open(FILEINFO_MIME_TYPE);

$mineType=finfo_file($fileinfo, $file);

finfo_close($fileinfo);

header('Content-type:'.$mineType);//发生指定的文件MIME类型的头信息

header('Content-Disposition:attachement;filename='.basename($file));//指定下载文件的描述

header('Content-Length:'.filesize($file));//指定文件的大小

readfile($file);//读取文件内容至输出缓冲区,返回这个文件
?>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值