预定义的超全局数组:
$_GET、$_POST、_REQUEST、$_FILES、$_COOKIE、$_SESSION、$_ENV、$_SERVERS、$GLOBALS
$_ENV和计算机的环境相关的变量:
COMPUTERNAME 计算机名称
Path 环境变量
OS 操作系统
SystemRoot 系统根目录
$_SERVER和服务器相关的变量:
DOCUMENT_ROOT 服务器根路径
SERVER_ADDR 服务器的IP地址
SERVER_NAME 服务器端的主机名
REMOTE_ADDR 浏览当前页面的用户的IP地址
REMOTE_HOST 浏览当前页面的用户的主机名
SERVER_PORT Web服务器使用的端口
数组键、值相关的函数:
Array_values() 返回数组中所有的值,并返回数字索引
Array_keys() 返回数组中所有的键名,如果指定第二个参数,只返回该值的键名;如果指定第三个参数 为true,则进行全等比较
In_array() 判断数组中是否存在某个值,如果有第三个参数代表全等匹配
Array_key_exists 检查给定的键名或索引是否存在于数组中
Array_flip() 交换数组中的键和值
Array_reverse() 返回一个顺序相反的数组
数组统计函数:
count() 别称sizeof() 获得数组的元素个数;count 如果有第二个参数,递归的返回元素个数
Array_unique() 移除数组中重复的值
使用回调函数过滤数组:
array_filter() 用回调函数过滤数组中的单元
array_walk() 对数组的每个成员应用用户函数(引用传参)
array_map() 对数组的每个元素身上做处理之后再返回新的值,第一个参数是回调函数;第二个参数为数组
数组排序函数:
sort() 对数组的值进行排序
rsort() 对数组进行逆向排序
usort() 用用户自定义的比较函数对数组中的值进行排序
asort() 对数组的元素按照值排序
arsort() 对数组的元素值按照逆向排序
uasort() 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
ksort() 对数组的元素按照键名进行排序
krsort() 对数组的元素按照键名进行逆向排序
uksort() 使用用户自定义的比较函数对数组中的键名进行排序
natsort() 保持原有的键/值 关联
natcasesort() 对数组进行不区分大小写的排序
注意以上排序函数中 除了 sort的 字母
a:结果中 键值关联
k:按照键排序
r:反序
u:用户自定义排序
拆分、合并、分解的数组函数:
array_slice() 从数组中取出一段
array_splice() 把数组的一部分去掉并用其他值取代
array_combine() 合并数组,用一个数组的值作为其键名,另一个数组的值作为其值
array_merge() 合并数组,将一个数组的值附加在另一个数组的后面
array_intersect() 计算数组的交集:包含在第一个数组并且也在第二个数组中的元素,注意保留键名
array_diff() 计算数组的差集:保留了所有在第一个数组,但是不在其他数组中的值
数组和数据结构函数:
1. 使用数据实现 堆栈(先进后出)
array_push()
array_pop()
2. 使用 队列 (先进先出)
array_shift()
array_unshift()
3. 其他数据相关的函数
array_rand() 随机获得数组下标
shuffle() 打乱数组
array_sum()
range() range(‘a’,‘z’)a-z的所有字母
unset()
数组和数据结构函数:
array_push和array_pop 操作的是数组的尾部
array_shift 和array_unshift是在数组的头部进行操作
魔术方法:
__call() 当调用一个对象中不存在的方法时,会自动的调用
__toString(): 当尝试将对象转化成字符串时(输出对象时),会自动调用
__clone(): 是在克隆对象时,自动调用的方法
__autoload(): 当在一个页面中使用到一个类,但是找不到时,会自动调用它。
注意:其他魔术方法都是在类中起作用,除了autoload
__sleep(): 序列化时自动调用
__wakeup(): 反序列化时自动调用
Clone() 克隆
常用的字符串输出函数:
print() 效率比echo低,用的少
print_r() 打印关于变量的易于理解的信息。
die() exit() exit;直接退出,die()输出一些文字再退出
格式化输出:返回格式化的字符串
printf() 打印格式化后的文字
sprintf() 返回格式化的文字,但不打印
字符串格式化函数:
trim() 去除字符串首尾处的空白字符
ltrim() 删除字符串开始的空白字符
rtrim() 删除字符串结束的空白字符 -----别名:chop()
字符串填充函数:
stringstr_pad( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )
str_pad() 如果可选的 pad_string 参数没有被指定,input 将被空格字符填充,否则它将被 pad_string 填充到指定长度
可选的 pad_type 参数的可能值为 STR_PAD_RIGHT,STR_PAD_LEFT 或 STR_PAD_BOTH。如果没有指定 pad_type,则假定它是 STR_PAD_RIGHT。
大小写转换的函数:
strtoupper() 将字符串全部转化为大写
strtolower() 将字符串全部转化为小写
ucfirst() 字符串首字母大写
ucwords() 每个单词的首字母大写
HTML标签相关的字符串:
nl2br() 在字符串所有新行之前插入HTML换行标记
strip_tags() 过滤html标签
Strrev() 字符串翻转函数
Md5() 加密函数
字符串比较函数:
strcmp() 如果第一个数大于第二个返回正数,如果小于返回负数,如果相等返回0
strcasecmp() 忽略大小写之后再做比较
strnatcmp() 按照自然排序
字符串分割函数:
explode() 参数1,分隔符;参数2,待分割的字符串
implode() 将数组元素连接成字符串
chunk_split() 将字符串分割成小串
split() 用正则表达式将字符串分割到数组中
preg_split() 通过一个正则表达式分隔字符串
str_split() 将字符串转换成数组
字符串查找函数:
strrchr — 查找指定字符在字符串中的最后一次出现
string strrchr( string $haystack , mixed $needle )
正则表达式语法:
1) 定界符 / /
2) 原子: \s 是正则表达式匹配的最基本单位
3) 元字符: * + ? 特殊意义的字符
4) 模式修正符 i u
表示范围的原子:
\d 匹配任意一个十进制数字
\D 除了十进制数字之外的任意字符
\s 匹配任意一个空白字符 空格、回车、换行
\S 匹配任意非空白字符
\w 匹配任意一个字 a-z A-Z _ 0-9
\W 字母数字下划线之外的任意一个字符
\b 表示一个边界
\B 表示一个非边界
[] 自定义一个原子表,匹配方括号中的任意一个原子
- 表示一个范围
^ 表示取反,除了原子表中的都可以(必须在[]内,第一个字符处出现)
{} 自己定义前面的原子出现的次数
匹配原子出现的数量 * + ?:
* 匹配原子出现0、1或多次
+ 匹配原子出现 1或多次
? 匹配原子出现 0次或1次
特殊的元字符:
. 匹配除了换行符外的任意字符
^ 在正则表达式的第一个字符出现,表示以 xx 开始
$ 在正则表达式的最后一个字符出现,表示以 xxx结束
| 表示或的关系,由于优先级最低所以最后才考虑他
如果^放在[]的首位,意思是取反
()括号:
1.改变优先级
2. 作为子模式匹配,将全部匹配作为一个大模式,放到数组的第一个元素中,每个()作为一个子模式,依次放到数组中
3.反向引用
可以在模式中将子模式直接取出,再作为正则表达式模式的一部分使用
\1 取第一个子模式
\2 取第二个子模式
模式修正符:i u m U
i 忽略大小写
m 将字符串以多行状态下进行匹配
s 将\n当做换行符看待
U 正则表达式默认贪婪式,有几个就匹配几个,U非贪婪模式
文件处理函数:
文件类型:
is_dir() 判断是否是一个目录
is_executable() 判断文件是否可执行
is_file() 判断给定的是否是一个文件
is_link() 判断给定的是否是一个符号连接
is_readable() 判断给定的是否是可读的
is_writable() 判断文件是否可写
文件属性:
file_exists() 文件是否存在
filesize() 文件大小
filectime() 文件创建时间
filemtime() 文件修改时间
fileatime() 文件最后访问时间
路径相关的函数:
Basename() 获得文件名
Dirname() 获得目录名
Pathinfo() 获得文件详细信息(返回数组)
文件操作相关函数:
创建文件 touch();
删除文件 unlink()
移动文件 rename(‘当前路径名’,’目标文件名’);
复制文件 copy(‘当前文件’,’目标文件名’);
重命名文件 rename()
文件的读写操作:
File_get_contents() 获得一个文件所有的内容
File_put_contents() 写入内容;如果没有第三个参数()的话,向文件写内容的时候会覆盖之前的
File() 将文件中的内容作为数组的一个元素
fopen() 返回值为资源
feof() 判断文件指针是否到了文件末尾
fread(“指针”,长度)读取文件内容
fwrite() 写入文件
fclose() 关闭文件资源
fgetc() 一次读取一个字符
fgets() 一次读取一行字符
文件权限:
r 可读 用4表示
w 可写 用2表示
x可执行 用1表示
chmod ("test.txt",777); 改变文件模式
chown("test.txt","root");改变文件所有者
文件内部移动指针:
ftell() 返回当前文件指针的位置
fseek() 在文件指针中定位
fseek($file,15,SEEK_CUR); 设定位置为当前位置加上 offset
SEEK_SET- 设定位置等于 offset 字节。
SEEK_CUR- 设定位置为当前位置加上 offset。
SEEK_END- 设定位置为文件尾加上 offset。(要移动到文件尾之前的位置,需要给 offset 传递一个负值。)
rewind($file) 回到文件头部
文件上传:
必须要增加 enctype=”multipart/form-data” 属性
Is_uploaded_file() 判断文件是否是通过 HTTP POST 上传的
Move_uploaded_file() 将上传的文件移动到新位置
获得日期和时间的函数:
Date()
getdate() 获得日期/时间函数;返回值为一个数组
日期和时间的格式化输出:
将用户输入的时间,转换成时间戳,然后再保存到数据库
mktime()返回一个日期的UNIX时间戳,参数为日期 参数依次为:时分秒月日年
图片相关函数:
$src_file = imagecreatefromjpeg($src_filename); 在内存中创建一个原图资源
$size = getimagesize($src_filename); //获得图片的信息
$dst_file = imagecreatetruecolor($dst_width,$dst_height); 在内存中穿件一个目标图片资源
imagecopyresampled(目标图片资源、原来图片资源、目标图片左上角举行的x轴、目标图片左上角矩形y轴、原图左上角矩形的x轴、原图左上角矩形的y轴、目标图片资源的宽度、目标图片资源的高度、原图资源的宽度、原图资源的高度);
magejpeg($dst_file,'dst.jpg'); 输出或者是保存
保存什么格式的图片,如果只有一个参数,表示只是显示,如果提供第二个参数表示保存成一个文件
imagedestroy($src_file); 释放内存资源
缩略图:
Imagecopy()拷贝图像的一部分:
boolimagecopy( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )
imagecolorallocate — 为一幅图像分配颜色
intimagecolorallocate( resource $image , int $red , int $green , int $blue )
绘制图形:
Imagefill() — 区域填充:
boolimagefill( resource $image , int $x , int $y , int $color )
imagefilledarc — 画一椭圆弧且填充:
boolimagefilledarc( resource $image , int $cx , int $cy , int $w , int $h , int $s , int $e , int $color , int $style )
imagefilledellipse — 画一椭圆并填充:
boolimagefilledellipse( resource $image , int $cx , int $cy , int $w , int $h , int $color )
imagefilledpolygon — 画一多边形并填充:
boolimagefilledpolygon( resource $image , array $points , int $num_points , int $color )
imagefilledrectangle — 画一矩形并填充
boolimagefilledrectangle( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )
imagerectangle — 画一个矩形(只有边框)
imagesetpixel — 画一个单一像素
boolimagesetpixel( resource $image , int $x , int $y , int $color )
imageline — 画一条线段:
boolimageline( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )
水印文本:
imagestring — 水平地画一行字符串:
boolimagestring( resource $image , int $font , int $x , int $y , string $s , int $col )
imagestringup — 垂直地画一行字符串
boolimagestringup( resource $image , int $font , int $x , int $y , string $s , int $col )
设置文本:
imagettfbbox — 取得使用 TrueType 字体的文本的范围
arrayimagettfbbox( float $size , float $angle , string $fontfile , string $text )
随机数:
mt_rand — 生成更好的随机数
intmt_rand([ int $min ], int $max )