常用PHP函数(数组、字符串、文件、日期、图像)

预定义的超全局数组:

  $_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_pusharray_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_RIGHTSTR_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    表示一个非边界

    []  自定义一个原子表,匹配方括号中的任意一个原子

    - 表示一个范围

表示取反,除了原子表中的都可以(必须在[]内,第一个字符处出现)

{} 自己定义前面的原子出现的次数

匹配原子出现的数量 * + 

    * 匹配原子出现01或多次

    + 匹配原子出现  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()拷贝图像的一部分:

boolimagecopyresource $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 )

 

 

 

你可能感兴趣的:(字符串,日期,文件,图像,数组,php,正则表达式,图片)