PHP基础知识

数组处理函数:
创建数组:
range(low, high);
数组排序函数:
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序
 
其他函数:
array_keys() 函数返回包含数组中所有键名的一个新数组。
array_values() 函数返回一个包含给定数组中所有键值的数组,但不保留键名
in_array() 函数搜索数组中是否存在指定的值。
array_search() 函数在数组中搜索某个键值,并返回对应的键名。
array_key_exists() 函数检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false 
array_pop() 函数删除数组中的最后一个元素,并且返回该元素
array_push(array, var) 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
array_shift() 函数删除数组中第一个元素,并返回被删除元素的值
array_unshift() 函数用于向数组插入新元素。新数组的值将被插入到数组的开头。
array_unique() 函数移除数组中的重复的值,并返回结果数组。
unset(var)  清除变量的地址空间
array_slice(array, offset,length)函数在数组中根据条件取出一段值,并返回
array_merge() 函数把一个或多个数组合并为一个数组。
array_chunk() 函数把数组分割为新的数组块。
array_splice() 函数从数组中移除选定的元素,并用新元素取代它。该函数也将返回包含被移除元素的数组。
1.php数字操作函数
    rand(min,max);  返回一个随机数;
    mt_rand(min,max);  返回一个随机数;(相比于rand速度快4倍)
    abs(); 返回绝对值;
    min(); 返回最小值9;参数可以为数组
    round(); 四舍五入
    floor();向下取整;
    ceil();向上取整;
    fmod();取 余
    pow(底数,幂数); 幂运算
    sqrt(); 返回平方根
    sin(弧度);正弦值   sin() 函数返回的数值介于 -1 和 1 之间。
    cos();    余弦值   cos()函数返回的数值介于 -1 和 1 之间。
    tan();  正切值
    pi();    圆周率
    案例:点名
 
2.php日期和时间操作函数
    date_default_timezone_set("Asia/Shanghai");设置时区
    date_default_timezone_get();获取时区
    time();  获取当前时间戳
    date();   将时间戳转换成日期和时间
    mktime()  将给定的时间转换成时间戳mktime(时,分,秒,月,日,年)
    getdate();  获取日期信息
 
    格式:
    d   月份中的第几天,有前导零的 2 位数字 01 到 31
    D   星期中的第几天,文本表示,3 个字母  Mon 到 Sun
    m   数字表示的月份,有前导零   01 到 12
    M   三个字母缩写表示的月份 Jan 到 Dec
    Y   4 位数字完整表示的年份    例如:1999 或 2003
    y   2 位数字表示的年份  例如:99 或 03
    h   小时,12 小时格式,有前导零 01 到 12
    H   小时,24 小时格式,有前导零 00 到 23
    i   有前导零的分钟数    00 到 59>
    s   秒数,有前导零 00 到 59>
3.php文件处理
    fopen(filename, mode)   打开文件 filename 文件路劲   mode 文件打开方式
    mode 的几种方式:
        r   打开文件为只读。文件指针在文件的开头开始。
        r+  打开文件为读/写、文件指针在文件开头开始。
        w   打开文件为只写。删除文件的内容或创建一个新的文件,如果它不存在。文件指针在文件的开头开始。
        w+  打开文件为读/写。删除文件内容或创建新文件,如果它不存在。文件指针在文件开头开始。
        a   打开文件为只写。文件中的现有数据会被保留。文件指针在文件结尾开始。创建新的文件,如果文件不存在。
        a+  打开文件为读/写。文件中已有的数据会被保留。文件指针在文件结尾开始。创建新文件,如果它不存在。
        x   创建新文件为只写。返回 FALSE 和错误,如果文件已存在。
        x+  创建新文件为读/写。返回 FALSE 和错误,如果文件已存在。
 
"x"创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,
        并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。
 
 
    fclose(handle)  handle 是通过fopen打开的文件
 
    readfile(filename)  读取一个文件,失败返回false,成功返回文件的字节数
    file(filename)   读取一个文件,返回值是一个数组,每一行是一个元素
    file_get_contents(filename)  将文件内容读入一个字符串中,可以设置offset和maxlen的参数,
                表示在offset位置读取maxlen字节的内容。
 
    fgets(handle)  读取一行字符 handle是打开的文件,先打开文件,再读取文件
    fgetss(handle)  读取一行字符 handle是打开的文件,先打开文件,再读取文件,过滤HTML和PHP标记
    fgetc(handle)  读取一个字符 handle是打开的文件,先打开文件,再读取文件
    fread(handle, length) 读取一定长度的字符,handle是打开的文件,先打开文件,再读取文件,length是长度
 
    fputs(handle,string,length)  写入文件内容,handle是打开的文件,先打开文件,再写入文件,string 写入内容,
    length 最多写入length个字节     例将“aaaa”写入但是length=3,则只能写入三个
    fwrite(handle, string,length) 同fputs函数用法一样
    file_put_contents(filename, string,flag)  写入内容,不用打开文件。filename写入数据的文件,
        string 写入内容,flag可选参数:FILE_USE_INCLUDE_PATH 表示include目录里搜索并打开filename,
        FILE_APPEND 如果filename已经存在,则追加数据而不覆盖数据,LOCK_EX 在写入时获得一个独占锁。
 
    文件指针:
        rewind(handle)  将指针移动到开头
        feof(handle)   判断是否到了文件结束的位置
        fseek(handle, offset,[whence])  移动指针到指定位置,移动成功返回0,移动失败返回1
            whence 表示以偶定的相对位置,默认值为SEEK_SET,设定位置等于offset字节;SEEK_CUR表示相当于
        当前位置加上offset;SEEK_END 表示在文件末尾加上offset;如果要移动指针到文件末尾之前的位置,
        offset必须是一个负数。
    文件操作函数:
        copy(source, dest)  从source复制到dest
        unlink(filename)   删除filename
        rename(oldname, newname)  重命名
        filesize(filename)   获取文件大小
        fileatime(filename)   获取上次访问时间
        filemtime(filename)   获取上次修改时间
        realpath(path)   获取规范化绝对路径
        stat(filename)  获取文件统计信息
        pathinfo(path)   获取 地址 信息
 
    目录操作:
        opendir(path)   打开目录
        closedir()    关 闭目录
        scandir(directory,[sort_order]) 浏览目录, directory要浏览的目录,sort_order 表示输出数组的排序,
        默认按照字母升序排序,1表示按照字母降序排序,浏览失败返回false
        目录操作函数:
            mkdir(pathname)  创建目录
            rmdir(dirname)   删除空目录
            getcwd(oid)    获取当前工作目录,用于相对路径
            chdir(directory)  修改当前工作目录
            disk_free_space(directory)  返回磁盘可用字节数
            disk_total_space(directory) 返回磁盘总字节数
            readdir() 返回目录中下一个文件的文件名
            rewinddir() 将文件的resource指针重置到目录的开头
            is_dir(filename)  判断是否是目录
 
4.php图形处理
    imagecreatetruecolor(width, height)  创建画布
    header("Content-type:image/png")  规定画布格式
    imagepng(画布源)  输出图像
    imagejpeg(画布源)  输出图像
    imagegif(画布源)  输出图像
    imagedestroy(画布源)  销毁画布
    
    imagecolorallocate(image, red, green, blue) 分配颜色
    imagefill($img, 0, 0, $bgcolor);填充颜色
 
    imagettftext(image, size, angle, x, y, color, fontfile, text);填充文本
    imagestring(image, font, x, y, string, color)填充文本
 
    // 填充图形
    imageline(image, x1, y1, x2, y2, color)     直线
    imagerectangle(image, x1, y1, x2, y2, color) 图形
    imagearc(image, cx, cy, width, height, start, end, color)hu'du
    
    imagesetpixel(image, x, y, color)  添加干扰点
 
    imagedestroy($img);销毁画布
 
    imagecreatefromjpeg()  导入外部图像jpeg格式
    imagecreatefrompng()   导入外部图像png格式
    imagecreatefromgif()   导入外部图像gif格式
 
 
    getimagesize()    获取图像大小
    imagecopymerge(dst_im, src_im, dst_x, dst_y, src_x, src_y, src_w, src_h, pct);将两张图片粘到一起
    
    realpath()获取文件的绝对地址
 
    
5.文件上传
    
    文件上传的参数设置:
        file_uploads=ON   打开文件上传开关,默认开启
        upload_tmp_dir=   上传文件的临时目录,如果不设置,系统默认临时文件夹
        upload_max_filesize=2M  设置上传文件的最大值,默认2M
        max_file _uploads=20   设置一次请求可以上传的最大文件数量
    $_FILES 接收文件上传的数据
        name  上传的文件名
        type  上传文件的类型
        tmp_name 上传文件的临时存储目录
        error  上传结果,0表示上传成功
        size 上传文件的大小
    is_uploaded_file(filename)    判断文件是否是通过http的post上传的,是返回true,不是返回false;
    move_uploaded_file(filename, destination)  将上传文件移动到指定的目录
        filename  临时目录
        destination  指定目录
 
6.会话机制
cookie是一种在远程客户端存储数据并用这些数据来跟踪和识别用户机制,
    cookie是web服务器暂时存储在用户硬盘上的一个文本文件,它包含了有关用户的信息,目的是无论何时用户连接到服务器,
        服务器都可以通过读取cookie文件来做出迅速的响应。cookie通常用于三个方面:
        记录用户的信息,如上次登录的用户名;
        页面直接传递参数;
        将HTML页面存储在cookie中,提高浏览速度
        创建cookie:setcookie(name, value, expire, path, domain);
        name:cookid的名称 必选
        value:cookie的值 必选
        expire:cookie的有效期 可选
        path:cookie的服务器的有效路劲,默认当前 可选
        domain:cookie的域名  可选
        在浏览器中查看cookie信息:Chrome://settings/content/cookies -> 查看cookie->localhost
    读取cookie:$_COOKIE  用isset()检测cookie是否存在
    删除cookie:将cookie值设为空,并且将存储时间设为过期setcookie("name","",time()+1)
session:session 是指一个终端用户与交互系统进行通信的时间间隔,通常指用户从注册进入系统到注销退出系统所经过
  的时间。PHP可以主动退出session。没个用户都有自己的session,用session_id表示,session_id 存储于cookie中。
    修改session的存储目录
        php.ini  session.save_path="路径";
    启动session:
        session_start();
    读取session:
        $_SESSION
 
    销毁session:
        session_destroy()
        unset($_SESSION['user']);
 
7.$_POST和$_GET
    $_POST 接收post传输的数据,ajax传输方式是post
    $_GET  接收get传输的数据,或者接收地址栏接收的数据,ajax传输方式是get
ajax书写格式:
    $.ajax({
                type:"传输方式post或者get",
                url:"a.php", //接收数据的地址
                data:"u="+$user+"&p="+$pwd, // 传输的数据,一个数据和一个数据&符号链接
                success:function(ee){  //客户端向服务端请求数据,成功后服务端返回给客户端的数据
                    alert(ee);
                }
            })
8.文件引用:
    include "文件路径"
    include_once "文件路径"
    
 
    require "文件路径"
    require_once "文件路径"
    require和include的区别:如果引入的文件发生严重错误,那么include还会进行往下执行脚本,而require就是停止执行脚本。
 
注意: _once表示只引入一次,即之前已经引入过的不再引入。
9.类
声明类:class 类的名称{ 类的代码  } 
类命名:字母数字下划线组合,不能以数字开头。
类的属性:实际上就是类里面的变量,所属于这个类。
    类里有属性和方法:类的属性就是类里的变量,类的方法就是类里的函数
php普通中怎么声明常量:define("常量名","常量值")
类声明常量:const 常量名称(大写,不能有$,声明即赋值)
类声明静态变量:static 
类中静态变量主要是用于单态(单例)模式编程。
类里的方法:类里面声明的 函数。
        普通方法和静态方法,构造方法,析构方法
对象:对类的实例化,对象就可以调用类里面的普通的公有的属性和方法
对象声明:对象名称 = new 类名称()
对象访问普通的属性和方法:对象->属性名称或者对象->方法名称()
类外部访问常量:
        类的名称::常量名称 对象::常量名称
类的外部访问静态变量:
        类的名称::$静态变量名称 对象::$静态变量名称 
类的关键字:$this 实际上即使代表类的本身
类里面访问普通变量:
    $this->变量名称
类的内部访问常量:
      类的名称::常量名称 $this::常量名称
      self::常量名称
类的内部访问静态变量:
     类的名称::$静态变量名称  $this::$静态变量名称 
     self::$静态变量名称
类的外部访问方法:
        普通方法:对象->方法名称()
        静态方法:对象::方法名称()   类名称::方法名称()
类的内部访问方法:
        普通方法:$this->方法名称()  self::方法名称() 类的名称::方法名称()
        静态方法:$this::方法名称()  self::方法名称() 类的名称::方法名称()
    $this 和 self 都是代表类本身的
 
构造方法:__construct()  说明:构造方法在php类中都是存在的,可以不写,也可以写通常情况类的构造方法,主要的作用是给类里面的属性传递参数,类的构造方法,在类进行实例化的时候会自动调用。    
析构方法:__destruct()  说明:析构方法在php类中都是存在的,可以写,也可以不写析构方法在类运行截止的时候,调用的,主要用来释放内存资源的。 
Unset(资源)
类的三大特性:封装,继承,多态
封装:公共的(public),受保护的(protected),私有的(private)
public,protected,private 都是修饰属性和方法的
public 公共的:在类的内部外部都可以访问,同时也可以被子类继承。
继承:就是一个类继承另一个类,子类拥有父类被public和protected修饰的方法和属性
多态:指在面向对象中能够对同一个接口做出不同的实现。
    重写:在子类中重写父类的方法,具有相同的方法名字、相同的参数表和相同的返回类型,常见于子类构造方法的重写。
    重载:通常指一个类中的多个方法具有相同的名字,但是这些方法具有不同的参数列表。PHP不支持直接重载,但可以通过可变参数改变参数数量来实现重载
关键字:
    final
        1、被final修饰的类不能被继承。
        2、被final修饰的类方法不能被重写。
        3、final 只能修饰类和方法不能修饰属性
    static 
        被static修饰的方法和属性,称为静态方法和静态属性,静态方法和静态属性都不需要类的实例对象就可以访问或调用,使用  类名::  的方式的调用
    abstract  
        利用abstract 进行声明的类,抽象类不能被实例化。
        抽象方法:被abstract 修饰的就是抽象方法,抽象方法只能被用于抽象类和接口,普通类不能有抽象方法。
    interface 
        利用interface声明接口,接口也不能被实例化,需要普通类继承,将里面的抽象方法进行具体化,以实现逻辑功能。
    注意:继承接口用implements,类继承类用的是extends
魔术方法:
    __set()   当对一个对象的未定义的属性,进行“赋值”时,此时会自动调用类中预先定义好的魔术方法:__set(属性名,属性值);
    __get() 当对一个对象的未定义的属性,进行“取值”时,此时会自动调用类中预先定义好的魔术方法:__get(属性名);
    ___call()   调用不存在的方法是用的
    __toString()  对象被当成字符串输出调用
    __clone()   用clone关键字是调用的
 
 
posted @ 2020-09-09 20:30  虎头鲨&&  阅读(140)  评论(0)    收藏  举报